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. -------------------- ~~#~~. Korzystając z podręcznika systemowego do programu ''bash'', podaj komendę która usunie alias ''la''. ~~#~~. Podaj czego dotyczy strona z nazwą ''random'' z czwartej sekcji podręcznika systemowego. ~~#~~. Jedna ze stron podręcznika systemowego mających tytuł ''signal'' tłumaczy czym jest sygnał ''SIGILL''. Znajdź ten fragment i podaj wyjaśnienie (komentarz). ~~#~~. 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%% ~~#~~. Podaj komendę, którą zalogujesz się po SSH jako użytkownik ''nethack'' na serwer znajdującym się pod adresem ''alt.org''. ~~#~~. 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 komendy((komendę możesz przetestować z serwera polluks)). ~~#~~. Podaj komendę, która wyświetli katalog roboczy. ~~#~~. 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). ~~#~~. 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ś). ~~#~~. Podaj jedną komendę, która wyświetlisz zawartość katalogów ''.config'' oraz ''.local'' znajdujących się w twoim katalogu domowym. ~~#~~. Podaj komendę, którą wyświetlisz wszystkie pliki (tzn. łącznie z ukrytymi plikami) w katalogu ''/tmp''. ~~#~~. Podaj komendę, którą wyświetlisz pliki w katalogu ''/usr/lib64/python/'' wraz z rozmiarami tych plików. ~~#~~. Podaj ile MB ma plik ''/usr/bin/gdb'' i podaj jaką komendą uzyskałeś tą informację. ~~#~~. Podaj komendę, którą wyświetlisz zawartość katalogu ''szkola podstawowa'' z podkatalogu ''stare zdjecia'' (oba katalogi mają spację w nazwie). ~~#~~. Podaj nazwę pliku z najnowszą datą modyfikacji w katalogu ''/var/log'' i podaj jaką komendą uzyskałeś tą informację. ~~#~~. Podaj jedną komendę, którą stworzysz katalog ''2024'' w katalogu ''data'', jednocześnie tworząc katalog ''data'' w razie gdyby ten nie istniał. ~~#~~. Podaj jedną komendę, którą stworzysz katalogi o nazwach ''moje obrazy'' i ''moja muzyka''. ~~#~~. Podaj komendę, którą usuniesz pusty katalog ''Downloads''. ~~#~~. Podaj komendę, którą utworzysz (twarde) dowiązanie o nazwie ''commandHistory'' do pliku ''.bash_history''. ~~#~~. Podaj jedną komendę, którą utworzysz (twarde) dowiązanie do plików ''~/.config/mimeapps.list'' i ''.config/htop/htoprc'' w katalogu domowym. ~~#~~. 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. ~~#~~. Podaj komendę, którą utworzysz dowiązanie symboliczne o nazwie ''up'' wskazujące na katalog nadrzędny względem bieżącego. ~~#~~. Podaj komendę, którą skopiujesz wszystkie pliki z rozszerzeniem ''.jpg'' z katalogu ''pictures'' do katalogu ''/tmp/a''. ~~#~~. Podaj komendę, którą skopiujesz katalog ''.local'' wraz z zawarością z twojego katalogu domowego na pulpit((zwykle katalog ''Desktop'' w katalogu domowym)) pod nazwę ''lokalne''. ~~#~~. 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ł. ~~#~~. Podaj komendę którą przeniesiesz wszystkie pliki z rozszerzeniem ''*.txt'' z twojego katalogu domowego do katalogu ''notatki''. ~~#~~. Podaj komendę którą zmienisz nazwę pliku ''mysia wierza.png'' na ''mysia_wieza.png''. ~~#~~. Podaj komendę którą poprawisz nazwę katalogu ''soembdoy'' znajdującego się w katalogu ''/tmp'' na ''somebody''. ~~#~~. 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. ~~#~~. 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''. ~~#~~. 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''. ~~#~~. Podaj komendę, którą usuniesz plik ''plik tymczasowy'' z katalogu ''/tmp'' ~~#~~. Podaj komendę, która usunie całą zawartość katalogu ''.cache'' znajdującego się w twoim katalogu domowym (pozostawiając sam folder ''.cache'' na swoim miejscu). ~~#~~. Podaj komendę, która usunie zabezpieczony przed zapisem plik ''readOnly'' bez wyświetlania pytania o potwierdzenie. ~~#~~. Podaj komendę, która usunie wszystkie pliki z rozszerzeniami ''.toc'', ''.nav'' i ''.aux'' z bieżącego katalogu. ~~#~~. Podaj komendę, która usunie wszystkie pliki których nazwa zaczyna się od ''try'' i kończy na ''.c'' z katalogu ''programming''. ~~#~~. Podaj komendę, która wyświetli twoją nazwę użytkownika. ~~#~~. Podaj komendę, która wyświetli do jakich grup należy bieżący użytkownik. ~~#~~. Podaj komendę, która wyświetli do jakich grup należy użytkownik ''root''. ~~#~~. Podaj kiedy ostatnio logował się użytkownik ''root''. Podaj komendę, którą to sprawdziłeś. ~~#~~. Podaj komendę którą sprawdzisz jacy użytkownicy są w tej chwili zalogowani na bieżącym komputerze. ~~#~~. Podaj do jakiego użytkownika i jakiej grupy należy plik ''/dev/console'' oraz jakiej komendy użyłeś żeby się tego dowiedzieć. ~~#~~. Podaj do jakiego użytkownika i jakiej grupy należy katalog ''/var/spool/clientmqueue''((taki katalog istnieje na serwerze polluks)) oraz jakiej komendy użyłeś żeby się tego dowiedzieć. ~~#~~. 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. ~~#~~. 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 polluks((to zadanie może być podchwytliwe)). ~~#~~. 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. ~~#~~. Podaj którzy użytkownicy mogą wyświetlić zawartość pliku ''.bash_history'' w twoim katalogu domowym. ~~#~~. Podaj komendę, którą odbierzesz osobom niebędącym w twojej grupie możliwości przeczytania pliku ''nasze tajne dane.txt''. ~~#~~. 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'')((Pliki które na serwerze polluks zostaną umieszczone w podkatalogu ''public_html'' katalogu domowego użytkownika //username// są dostępne pod adresem %%https://sirius.cs.put.poznan.pl/~%%//username//%%/%%.)). ~~#~~. 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). ~~#~~. 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. ~~#~~. 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''. ~~#~~. 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. ~~#~~. Podaj kiedy ostatnio była modyfikowana zawartość pliku ''/etc/sudoers''. ~~#~~. Podaj kiedy ostatnio były zmieniane metadane pliku ''/etc/sudoers''. ~~#~~. Podaj kiedy został utworzony plik ''/var/log/wtmp''((zadanie można zrobić jeśli użyty system plików przechowuje daty utworzenia plików; na serwerze polluks zadanie można wykonać)). ~~#~~. Podaj komendę, która zmieni datę ostatniej modyfikacji pliku ''treaty'' na ''1992-2-7 11:55'' ~~#~~. Podaj komendę, która uruchomi program ''lsof'' i zmierzy czas jego działania. ~~#~~. Podaj jaki identyfikator ma sesja powłoki w której pracujesz i jaką komendą to ustaliłeś. ~~#~~. Podaj jak nazywa się proces będący rodzicem procesu ''X'' (''X'' to nazwa programu odpowiedzialnego za 'okienka' w [[http://x.org/|X Window System]]). Jeżeli wykonujesz to zadanie na polluksie, poszukaj rodzica procesu ''pickup''. ~~#~~. Podaj listę argumentów z jakimi został uruchomiony program ''ntpd'' na twoim komputerze. ~~#~~. Podaj który użytkownik uruchomił program ''rpcbind'' na twoim komputerze. ~~#~~. Podaj który program zajmuje najwięcej miejsca w RAMie swoimi prywatnymi plikami (tzn. licząc //__res__ident set size//). Podaj jaką komendą to ustaliłeś. ~~#~~. 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ę. ~~#~~. Uruchom w jednej konsoli program ''sleep 1h''. Podaj komendę, którą z drugiej konsoli zakończysz działanie tego programu. ~~#~~. Uruchom w jednej konsoli program ''mkpasswd''. Podaj komendę, którą z drugiej konsoli wyślesz do tego programu sygnał ''FPE''. ~~#~~. 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''. ~~#~~. Podaj skrót klawiszowy który zwyczajowo przerwie i zakończy działanie procesu pierwszoplanowego. ~~#~~. Podaj skrót klawiszowy który zwyczajowo zatrzyma (tzn. uśpi) działanie procesu pierwszoplanowego. ~~#~~. 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). ~~#~~. Podaj komendę, którą uruchomisz w tle polecenie ''perl -e "system'fortune'while sleep 5"''. ~~#~~. Podaj komendę, którą przeniesiesz uruchomione w tle zadanie w tryb pierwszoplanowy. ~~#~~. Uruchom w tle program ''mkpasswd'' oraz program ''sleep 50''. Podaj komendę którą przywołasz na pierwszy plan program ''mkpasswd''. ~~#~~. Podaj komendę, którą wpiszesz listę procesów działających w tle w bieżącym terminalu. ~~#~~. Podaj komendę, którą uruchomisz z najniższym możliwym priorytetem program ''yes'' z argumentem ''boo''. ~~#~~. Podaj komendy, które zmniejszą priorytet (//niceness//) bieżącej powłoki do 5. ~~#~~. Podaj komendę, która wyświetli zawartość pliku ''/etc/protocols'' numerując wiersze. ~~#~~. Podaj komendę, która wyświetli zawartość pliku ''/etc/fstab'' formatując wynik jako tabelę. ~~#~~. Podaj komendę, która wyświetli wartości kolejnych bajtów w pliku ''/usr/bin/yes'' jako liczby szesnastkowe. ~~#~~. Podaj komendę, która używając przekierowań stworzy plik ''message'' z zawartością ''Premission denined''. ~~#~~. 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. ~~#~~. Podaj komendę która wyświetli zawartość plików z poprzedniego zadania obok siebie. ~~#~~. Podaj jedną komendę która wyświetli zawartość plików z poprzedniego zadania jeden pod drugim. ~~#~~. Podaj komendę która wykona i zmierzy czas wykonania polecenia ''lsof'' oraz wynik polecenia ''lsof'' umieści w pliku ''lsof.log'' ~~#~~. Podaj komendę która doda na koniec pliku ''lsof.log'' bieżącą datę. ~~#~~. Podaj komendę która wykona polecenie ''find /var'' i wyrzuci do śmieci komunikaty o błędach. ~~#~~. 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''. ~~#~~. 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". ~~#~~. Podaj komendę która wykona polecenie ''wc'' wstawiając jako standardowe wejście treść pliku ''/etc/resolv.conf''. ~~#~~. 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)''.