Dydaktyka:
Feedback
Jeżeli do któregoś z zadań chcesz użyć interaktywnego programu (np. htop do zarządzania procesami), poza nazwą programu podaj jakie komendy, skróty klawiszowe lub działania należy użyć po uruchomieniu tego programu żeby osiągnąć cel.
Np. jeśli zadanie brzmi Podaj komendę która pozwoli już uruchomionemu procesowi expensiveComputations
używać tylko zerowego procesora, to prawidłowe odpowiedzi to zarówno
taskset -c 0 -p $(pgrep expensiveComputations)
, a także
uruchamiam htop
, wyszukuję proces expensiveComputations
używając skrótu /
, zmieniam przydział procesorów skrótem a
,
a nawet skrótowo zapisane htop
, /expensiveComputations
, a
.
Wykonanie niektórych ćwiczeń wymaga stworzenia wpierw wspomnianych w ćwiczeniu plików bądź katalogów.
1. Korzystając z podręcznika systemowego do programu bash
, podaj komendę która usunie alias la
.
2. Podaj czego dotyczy strona z nazwą random
z czwartej sekcji podręcznika systemowego.
3. Jedna ze stron podręcznika systemowego mających tytuł signal
tłumaczy czym jest sygnał SIGILL
. Znajdź ten fragment i podaj wyjaśnienie (komentarz).
4. Znajdź w podręczniku systemowym do programu yt-dlp
opcję która pobierze tylko audio z podanego linku, i podaj komendę która pobierze tylko audio z adresu https://www.youtube.com/watch?v=de2Hsvxaf8M
5. Podaj komendę, którą zalogujesz się po SSH jako użytkownik nethack
na serwer znajdującym się pod adresem alt.org
.
6. Podaj komendę, którą zalogujesz się po SSH na komputer slurm
ze swoja bieżącą nazwą użytkownika, nie podając jej w treści komendy1).
7. Podaj komendę, która wyświetli katalog roboczy.
8. Podaj komendę, którą przejdziesz do katalogu db
znajdującym się w katalogu var
znajdującym się bezpośrednio w głównym katalogu (root directory).
9. Podaj komendę, którą zmienisz katalog roboczy na katalog Documents
znajdujący się katalog wyżej niż jesteś (tzn. w katalogu w którym jest katalog w którym jesteś).
10. Podaj jedną komendę, która wyświetlisz zawartość katalogów .config
oraz .local
znajdujących się w twoim katalogu domowym.
11. Podaj komendę, którą wyświetlisz wszystkie pliki (tzn. łącznie z ukrytymi plikami) w katalogu /tmp
.
12. Podaj komendę, którą wyświetlisz pliki w katalogu /usr/lib64/python/
wraz z rozmiarami tych plików.
13. Podaj ile MB ma plik /usr/bin/gdb
i podaj jaką komendą uzyskałeś tą informację.
14. Podaj komendę, którą wyświetlisz zawartość katalogu szkola podstawowa
z podkatalogu stare zdjecia
(oba katalogi mają spację w nazwie).
15. Podaj nazwę pliku z najnowszą datą modyfikacji w katalogu /var/log
i podaj jaką komendą uzyskałeś tą informację.
16. Podaj jedną komendę, którą stworzysz katalog 2024
w katalogu data
, jednocześnie tworząc katalog data
w razie gdyby ten nie istniał.
17. Podaj jedną komendę, którą stworzysz katalogi o nazwach moje obrazy
i moja muzyka
.
18. Podaj komendę, którą usuniesz pusty katalog Downloads
.
19. Podaj komendę, którą utworzysz (twarde) dowiązanie o nazwie commandHistory
do pliku .bash_history
.
20. Podaj jedną komendę, którą utworzysz (twarde) dowiązanie do plików ~/.config/mimeapps.list
i .config/htop/htoprc
w katalogu domowym.
21. Podaj komendę, którą utworzysz dowiązanie symboliczne do pliku /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
pod nazwą cpu0_frequency
w bieżącym katalogu.
22. Podaj komendę, którą utworzysz dowiązanie symboliczne o nazwie up
wskazujące na katalog nadrzędny względem bieżącego.
23. Podaj komendę, którą skopiujesz wszystkie pliki z rozszerzeniem .jpg
z katalogu pictures
do katalogu /tmp/a
.
24. Podaj komendę, którą skopiujesz katalog .local
wraz z zawarością z twojego katalogu domowego na pulpit2) pod nazwę lokalne
.
25. Podaj komendę (wykonywaną z katalogu domowego), którą stworzysz kopię pliku .bashrc
pod nazwą .bashrc.bak
tak, by kopia miała tę samą datę modyfikacji co oryginał.
26. Podaj komendę którą przeniesiesz wszystkie pliki z rozszerzeniem *.txt
z twojego katalogu domowego do katalogu notatki
.
27. Podaj komendę którą zmienisz nazwę pliku mysia wierza.png
na mysia_wieza.png
.
28. Podaj komendę którą poprawisz nazwę katalogu soembdoy
znajdującego się w katalogu /tmp
na somebody
.
29. Podaj komendę, którą skopiujesz plik kitten
znajdujący się w folderze /var/tmp
na serwerze polluks.cs.put.poznan.pl
do katalogu tmp
na twoim komputerze.
30. Podaj komendę, którą skopiujesz razem z zawartością katalog Moje obrazy
z twojego katalogu domowego do swojego katalogu domowego na serwerze polluks.cs.put.poznan.pl
.
31. Podaj komendę, którą umieścisz lokalny plik x.sh
w katalogu Desktop
znajdującym się w twoim katalogu domowym na serwerze polluks.cs.put.poznan.pl
pod nazwą skrypt1.sh
.
32. Podaj komendę, którą usuniesz plik plik tymczasowy
z katalogu /tmp
33. Podaj komendę, która usunie całą zawartość katalogu .cache
znajdującego się w twoim katalogu domowym (pozostawiając sam folder .cache
na swoim miejscu).
34. Podaj komendę, która usunie zabezpieczony przed zapisem plik readOnly
bez wyświetlania pytania o potwierdzenie.
35. Podaj komendę, która usunie wszystkie pliki z rozszerzeniami .toc
, .nav
i .aux
z bieżącego katalogu.
36. Podaj komendę, która usunie wszystkie pliki których nazwa zaczyna się od try
i kończy na .c
z katalogu programming
.
37. Podaj komendę, która wyświetli twoją nazwę użytkownika.
38. Podaj komendę, która wyświetli do jakich grup należy bieżący użytkownik.
39. Podaj komendę, która wyświetli do jakich grup należy użytkownik root
.
40. Podaj kiedy ostatnio logował się użytkownik root
. Podaj komendę, którą to sprawdziłeś.
41. Podaj komendę którą sprawdzisz jacy użytkownicy są w tej chwili zalogowani na bieżącym komputerze.
42. Podaj do jakiego użytkownika i jakiej grupy należy plik /dev/console
oraz jakiej komendy użyłeś żeby się tego dowiedzieć.
43. Podaj do jakiego użytkownika i jakiej grupy należy katalog /var/spool/clientmqueue
3) oraz jakiej komendy użyłeś żeby się tego dowiedzieć.
44. Podaj i uzasadnij czy użytkownik infXYZ
należący do grupy students
może wyświetlić treść pliku /home/jkonczak/so/obscure/mooo
na serwerze polluks.
45. Podaj i uzasadnij czy użytkownik infXYZ
należący do grupy students
może wyświetlić treść pliku /home/jkonczak/so/obscure/joker
na serwerze polluks4).
46. Podaj i uzasadnij czy użytkownik foo
należący do grupy staff
może wyświetlić zawartość katalogu /home/jkonczak/so/dir
na serwerze polluks.
47. Podaj którzy użytkownicy mogą wyświetlić zawartość pliku .bash_history
w twoim katalogu domowym.
48. Podaj komendę, którą odbierzesz osobom niebędącym w twojej grupie możliwości przeczytania pliku nasze tajne dane.txt
.
49. Podaj komendę, którą zabronisz dostępu (odczytu, zapisu i wykonania) do swojego pliku ~/public_html/index.php
(należącego do grupy students
) innym studentom, ale nie zabronisz dostępu serwerowi www (który nie należy do grupy students
)5).
50. Podaj komendę, którą zmienisz grupę pliku access_log
na www-data
(prawdopodobnie nie będziesz mieć uprawnień do wykonania takiej komendy jako zwykły użytkownik).
51. Podaj jedną komendę, którą ustawisz uprawnienia dostępu do pliku access_log
tak, żeby grupa mogła tylko pisać do tego pliku, żebyś ty tylko mógł go odczytać, a pozostałe osoby nie miały do niego żadnego dostępu.
52. Podaj komendę, którą zmienisz uprawnienia dostępu do katalogu /tmp/myDir
tak, żeby użytkownicy nie będący tobą mogli przeczytać treść pliku /tmp/myDir/pub.txt
, ale nie mogli wyświetlić zawartości katalogu /tmp/myDir
.
53. Podaj komendę, która pozwoli użytkownikowi jkonczak
należącemu do grup staff
i lindev
na odczytanie i wykonanie pliku zadanie.sh
w twoim katalogu domowym na serwerze polluks, ale zabroni użytkownikowi inf111111
należącemu do grupy students
na odczytanie tego pliku.
54. Podaj kiedy ostatnio była modyfikowana zawartość pliku /etc/sudoers
.
55. Podaj kiedy ostatnio były zmieniane metadane pliku /etc/sudoers
.
56. Podaj kiedy został utworzony plik /var/log/wtmp
6).
57. Podaj komendę, która zmieni datę ostatniej modyfikacji pliku treaty
na 1992-2-7 11:55
58. Podaj komendę, która uruchomi program lsof
i zmierzy czas jego działania.
59. Podaj jaki identyfikator ma sesja powłoki w której pracujesz i jaką komendą to ustaliłeś.
60. Podaj jak nazywa się proces będący rodzicem procesu X
(X
to nazwa programu odpowiedzialnego za 'okienka' w X Window System). Jeżeli wykonujesz to zadanie na polluksie, poszukaj rodzica procesu pickup
.
61. Podaj listę argumentów z jakimi został uruchomiony program ntpd
na twoim komputerze.
62. Podaj który użytkownik uruchomił program rpcbind
na twoim komputerze.
63. Podaj który program zajmuje najwięcej miejsca w RAMie swoimi prywatnymi plikami (tzn. licząc resident set size). Podaj jaką komendą to ustaliłeś.
64. Uruchom w jednej konsoli program sleep 1h
a w drugiej program sleep 2h
. Podaj komendę którą z trzeciej konsoli sprawdzisz identyfikator procesu czekającego jedną godzinę.
65. Uruchom w jednej konsoli program sleep 1h
. Podaj komendę, którą z drugiej konsoli zakończysz działanie tego programu.
66. Uruchom w jednej konsoli program mkpasswd
. Podaj komendę, którą z drugiej konsoli wyślesz do tego programu sygnał FPE
.
67. Uruchom w jednej konsoli program mkpasswd
. Podaj komendy, które pozwolą tobie z drugiej konsoli wysłać sygnał HUP
do powłoki w której jest uruchomiony program mkpasswd
.
68. Podaj skrót klawiszowy który zwyczajowo przerwie i zakończy działanie procesu pierwszoplanowego.
69. Podaj skrót klawiszowy który zwyczajowo zatrzyma (tzn. uśpi) działanie procesu pierwszoplanowego.
70. Uruchom z terminala program xterm
. Zatrzymaj działanie programu odpowiednim skrótem. Podaj komendę, którą przywrócisz program xterm do działania jako proces w tle (tzn. tak byś dalej mógł używać i bieżącego terminala i programu xterm).
71. Podaj komendę, którą uruchomisz w tle polecenie perl -e "system'fortune'while sleep 5"
.
72. Podaj komendę, którą przeniesiesz uruchomione w tle zadanie w tryb pierwszoplanowy.
73. Uruchom w tle program mkpasswd
oraz program sleep 50
. Podaj komendę którą przywołasz na pierwszy plan program mkpasswd
.
74. Podaj komendę, którą wpiszesz listę procesów działających w tle w bieżącym terminalu.
75. Podaj komendę, którą uruchomisz z najniższym możliwym priorytetem program yes
z argumentem boo
.
76. Podaj komendy, które zmniejszą priorytet (niceness) bieżącej powłoki do 5.
77. Podaj komendę, która wyświetli zawartość pliku /etc/protocols
numerując wiersze.
78. Podaj komendę, która wyświetli zawartość pliku /etc/fstab
formatując wynik jako tabelę.
79. Podaj komendę, która wyświetli wartości kolejnych bajtów w pliku /usr/bin/yes
jako liczby szesnastkowe.
80. Podaj komendę, która używając przekierowań stworzy plik message
z zawartością Premission denined
.
81. Podaj komendy które używając przekierowań stworzą plik o nazwie 1
z liczbami od 1 do 5 w nowych wierszach, oraz plik o nazwie 5
z liczbami od 5 co 5 do 25 w nowych wierszach.
82. Podaj komendę która wyświetli zawartość plików z poprzedniego zadania obok siebie.
83. Podaj jedną komendę która wyświetli zawartość plików z poprzedniego zadania jeden pod drugim.
84. Podaj komendę która wykona i zmierzy czas wykonania polecenia lsof
oraz wynik polecenia lsof
umieści w pliku lsof.log
85. Podaj komendę która doda na koniec pliku lsof.log
bieżącą datę.
86. Podaj komendę która wykona polecenie find /var
i wyrzuci do śmieci komunikaty o błędach.
87. Podaj jak wykonać komendę strace -e 'openat' ls ~
tak, by wynik programu ls
trafił do pliku ls.out
a (wypisywane na standardowy błąd) komunikaty programu strace
trafiły do pliku ls.strace
.
88. Podaj komendę która uruchomi w tle program glxgears
i wrzuci wszystko co ten program produkuje na standardowym wejściu i wyjściu do "czarnej dziury".
89. Podaj komendę która wykona polecenie wc
wstawiając jako standardowe wejście treść pliku /etc/resolv.conf
.
90. Podaj komendę która uruchomi program bc
i przekaże temu programowi na standardowe wejście dwie linie: (4^4)^4
oraz 4^(4^4)
.
Desktop
w katalogu domowympublic_html
katalogu domowego użytkownika username są dostępne pod adresem https://sirius.cs.put.poznan.pl/~username/.