Narzędzia użytkownika

Narzędzia witryny


so:test2_cwiczenia

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

so:test2_cwiczenia [2024/04/15 00:55] (aktualna)
jkonczak utworzono
Linia 1: Linia 1:
 +**~~#~~.** Podaj komendę, która w katalogu ''/​sys'' ​ wyszuka wszystkich plików o nazwie ''​cpu''​.
 +
 +**~~#~~.** Podaj komendę, która w katalogu ''/​sys'' ​ wyszuka wszystkich plików zawierających w nazwie ''​threshold''​.
 +
 +**~~#~~.** Podaj komendę, która w katalogach ''​.config''​ oraz ''​.local''​ znajdujących się w twoim katalogu domowym wyszuka pliki których nazwa kończy się na ''​rc''​
 +
 +**~~#~~.** Podaj nazwę pliku istniejącego w katalogu ''/​usr/​include''​ którego nazwa zawiera ''​message''​ i w ścieżce do którego jest katalog ''​json''​.
 +
 +**~~#~~.** Podaj komendę, która w katalogu ''/​usr/​share''​ wyszuka wszystkich symlinków których nazwa zawiera ''​fullscreen''​.
 +
 +**~~#~~.** Podaj komendę, która w twoim katalogu domowym wyszuka pliku zmodyfikowanie między 7 a 5 dni temu.
 +
 +**~~#~~.** Podaj komendę, która w twoim katalogu domowym wyszuka pliki z rozszerzeniem ''​txt''​ i pokaże dla każdego znalezionego pliku jego pierwszą linię.
 +
 +**~~#~~.** Podaj komendę, która w twoim katalogu domowym wyszuka pliki z rozszerzeniem ''​txt''​ i spakuje je do archiwum o nazwie ''​pliki_txt.tar.xz''​. \\
 +<​small>​(Tworzenie takiego archiwum to komenda ''​tar cJf pliki_txt.tar.xz //lista plików//''​. Komendą ''​tar tf pliki_txt.tar.xz''​ sprawdzisz zawartość archiwum.)</​small>​
 +
 +**~~#~~.** Podaj komendę, która w katalogu ''/​usr/​include/''​ wyszuka pliki których nazwa zaczyna się od ''​std''​ i następnie wypisze ilość wierszy w każdym z tych plików.
 +
 +**~~#~~.** Podaj komendę (używającą potoku) która powtórzy poprzednie zadanie, ale zwróci wyniki posortowane po ilości linii w plikach.
 +
 +-------------------------------
 +
 +**~~#~~.** **W teście będzie jedno polecenie z treścią:​** \\
 +Skopiuj podany plik <​small>​(np. ''/​home/​jkonczak/​so/​old_mcdonald_mistyped.txt''​ na serwerze polluks)</​small>​ w dowolne miejsce, następnie wykonaj podaną komendę która pokaże co masz poprawić w pliku <​small>​(np. ''/​home/​jkonczak/​so/​old_mcdonald_check.sh //​nazwa_twojej_kopii//''​ na serwerze polluks)</​small>​. Popraw plik, następnie podaj sumę kontrolną MD5 poprawionego pliku.
 +\\ Sumę kontrolną liczy się komendą ''​md5sum < //​nazwa_twojej_kopii//''​. \\ (Na maszynie do testów nie ma graficznych edytorów tekstowych.)
 +
 +-------------------------------
 +
 +// Pamiętaj o ćwiczeniach z potoków na podstronie [[so:​potoki_cwiczenia]] z przykładowymi rozwiązaniami [[so:​potoki_cwiczenia:​solutions|tutaj]]. //
 +
 +**~~#~~.** Podaj komendę (lub potok) który policzy ile procesów ma uruchomionych użytkownik student.
 +
 +**~~#~~.** Podaj komendę (potok) które wyświetli wszystkie grupy do których należy jakiś plik bądź katalog w katalogu ''/​dev''​. ​
 +
 +**~~#~~.** Podaj komendę (potok) które wyświetli pięć największych plików w katalogu ''/​usr/​lib''​ które nie mają ustawionego prawa do wykonywania. ​
 +
 +**~~#~~.** Podaj komednę (potok), która wykorzysując komendę ''​find -ls''​ znajdzie największy plik w twoim katalogu domowym.
 +
 +<​html><​div style="​margin:​0"></​html>​
 +**~~#~~.** Podaj komendę (potok), która z pliku ''​pan-tadeusz.txt''​ <​small>​(wziętego np. stąd: %%https://​wolnelektury.pl/​media/​book/​txt/​pan-tadeusz.txt%%)</​small>​ wyciągnie linie poprzedzające linie w których znajduje się słowo ''​Gerwazy''​. \\
 +<​small>​Np:</​small>​
 +<​html>​
 +<pre style="​margin:​0;​ font-size:​75%;​ line-height:​1em">​
 +┌            plik wejściowy ​                          ┬ → ┬              ma zostać ​                     ┐
 +│ Dech wciągnął,​ brzuch i piersi ścisnął co najwężéj:​ │ → │  Jak wąż głowę i ogon gdy chowa w przeguby, │
 +│ Aż jednym razem kurczy, wydyma się, pręży; ​         │ → │                                             │
 +│ Jak wąż głowę i ogon gdy chowa w przeguby, ​         │ → │                                             │
 +│ Tak Gerwazy z długiego stał się krótki, gruby; ​     │ → │                                             │
 +│ Rozciągnęły się, nawet skrzypnęły powrozy, ​         │ → │                                             │
 +│ Ale nie pękły! Klucznik ze wstydu i zgrozy ​         │ → │                                             │
 +</​pre>​
 +</​html>​
 +<​html></​div></​html>​
 +
 +
 +**~~#~~.** Podaj komendę (potok), która z pliku ''​study-in-scarlet.txt''​ (<​small>​wziętego np. stąd: %%https://​www.gutenberg.org/​ebooks/​244.txt.utf-8%%</​small>​) wyciągnie 100 najczęściej powtarzających się słów o długości co najmniej 6 liter i posortuje te słowa alfabetycznie. Komenda ma ignorować wielkość znaków (tzn. zliczać '​however'​ i '​However'​ jako to samo słowo).
 +
 +**~~#~~.** Podaj komednę (potok) który policzy ile plików z rozszerzeniem ''​.jpg''​ w twoim katalogu domowym ma nieunikalną nazwę.
 +
 +**~~#~~.** Podaj komendę wyświetlającą z pliku ''/​etc/​ssh/​sshd_config''​ wszystkie linie które nie są puste i nie są komentarzami (tzn. nie zaczynają się od '#'​). ​
 +
 +<​html><​div style="​margin:​0"></​html>​
 +**~~#~~.** Na serwerze polluks w katalogu ''/​home/​jkonczak/​so''​ jest plik o nazwie ''​last.txt''​ <​small>​(będący wynikiem wykonania komendy ''​last -w >​ last.txt''​ na innym komputerze)</​small>​. ​
 +Podaj komendę (potok), który z informacji zawartych w tym pliku wyświetli dla każdego użytkownika ile razy logował się z którego adresu IP. Posortuj wyniki tak, by najpierw były posortowane nazwą użytkownika,​ a potem ilością logowań.
 +\\
 +<​html>​
 +<​small>​
 +Podpowiedź:​ tylko linie w których jest adres IP mają trzy kropki.<​br>​
 +Fragment przykładowego wyniku:
 +</​small>​
 +<pre style="​font-size:​75%;​ line-height:​1em">​
 +1    hanna       ​83.8.150.248
 +1    hanna       ​83.8.211.93
 +3    jakub       ​89.64.42.11
 +1    jakub       ​77.254.245.5
 +4    jan         ​89.64.60.247
 +64   ​julia ​      ​194.4.62.88
 +25   ​julia ​      ​77.254.245.5
 +8    julia       ​178.43.46.50
 +</​pre>​
 +</​div></​html>​
 +
 +**~~#~~.** Na serwerze polluks w pliku ''/​home/​jkonczak/​so/​sshd.log''​ znajdują się logi serwera SSH.
 +Zawierają one między innymi wpisy o próbach logowania botów szukających słabo zabezpieczonych serwerów SSH.
 +\\
 +Linie zawierające treść:
 +\\
 +''​mar 29 12:10:54 hostname sshd[2702236]:​ Invalid user god from 159.223.192.57 port 45932''​
 +\\
 +wskazują, że taki bot próbował się zalogować jako użytkownik god.
 +\\
 +Podaj komendę (potok) którą znajdziesz 25 najczęściej próbowanych nazw użytkownika.
 +\\
 +<​small>​Uwaga:​ boty próbują też logować się zostawiając pustą nazwę użytkownika – taki wpis będzie też pojawiać się w wynikach.</​small>​
 +
 +-------------------------------
 +
 +**~~#~~.** <​small>​Żeby zrobić to zadanie, najpierw wykonaj: ''​eval "​$(echo Zm9yIFogaW4gYHNlcSAxMGAKZG8KZXZhbCBaJFo9JCgoUkFORE9NJTk5OTkpKQpkb25lCmV4cG9ydCBaNQpleHBvcnQgWjgK|base64 -d)"''</​small>​
 +\\
 +Z listy zmiennych: ''​Z1'',​ ''​Z2'',​ …, ''​Z10''​ ustawionych w powłoce dwie będą widoczne w programach uruchamianych przez tą powłokę. Podaj które.
 +
 +**~~#~~.** Podaj komendę lub komendy które ustawią zmienną ''​FOO''​ na wartość zmiennej ''​BAR''​ oraz ustawią żeby programy uruchamiane przez bieżącą powłokę widziały zmienną środowiskową ''​FOO''​.
 +\\
 +<​small>​
 +Domyślnie zmienna ''​BAR''​ nie istnieje, jeśli chcesz wykonać polecenie najpierw ją ustaw.
 +Możesz sprawdzić poprawność komend uruchamiając np. ''​%%perl -e '​print(($ENV{"​FOO"​}//"​Nie ma zmiennej FOO"​)."​\n"​)'​%%''​.
 +</​small>​
 +
 +**~~#~~.** Stwórz w swoim katalogu domowym katalog ''​bin''​ i ściągnij tam jakiś program (np. edytor [[https://​micro-editor.github.io/​|micro]]).
 +Podaj komendę która pozwoli uruchamiać programy z katalogu ''​bin''​ w twoim katalogu domowym bez podawania pełnej ścieżki do nich.
 +
 +**~~#~~.** Podaj komendę która ustawi wartość zmiennej ''​X''​ na iloczyn zmiennej ''​COLUMNS''​ i ''​LINES''​ oraz komendę która wyświetli tekst
 +''​Terminal ma rozmiar //​H//​x//​W//,​ więc mieści //X// znaków'',​ gdzie ''//​H//''​ ma być wartością zmiennej ''​LINES'',​ ''//​W//''​ ma być wartością zmiennej ''​COLUMNS''​ a ''//​X//''​ ma być wartością zmiennej ''​X''​.
 +
 +<​html><​div style="​margin:​0"></​html>​
 +**~~#~~.** Załóż, że w pliku ''​data_file_count''​ znajduje się liczba plików z danymi. Podaj komendy które:
 +  * umieszczą wynik polecenia ''​free''​ w pliku ''​data_//​N//'',​ gdzie ''​N''​ jest wartością o jeden większą niż liczba wpisana w pliku ''​data_file_count''​
 +  * zwiększą liczbę w pliku ''​data_file_count''​ o jeden
 +<​html></​div></​html>​
 +  ​
 +**~~#~~.** W pliku ''/​var/​run/​cron.pid''​ znajduje się identyfikator procesu ''​cron''​. Podaj komendę, która wyśle sygnał TERM do identyfikatora odczytanego z podanego pliku.
 +<​small>​Nie masz (i nie powinieneś mieć) uprawnień do zabicia crona. Jeśli chcesz przetestować to polecenie, wykonaj zamiast tego: ''​perl -e'​$SIG{TERM}=sub{die"​Ouch!"​};​use POSIX"​pause";​pause;'&​echo $!>​sleeper.pid''​ umieszczające identyfikator zabijalnego procesu w pliku ''​sleeper.pid''​.</​small>​
 +
 +**~~#~~.** Podaj polecenie, które wyświetli tekst ''​O godzinie //HH:MM// działało //N// procesów''​. Liczba procesów ma niewuzględniać procesów biorących udział w wyświetlaniu tego tekstu.
 +
 +**~~#~~.** Podaj komendę która poszuka w bieżącym katalogu plików o rozmiarze większym bądź równym rozmiarowi pliku ''/​usr/​bin/​man'',​ wiedząc że polecenie ''​stat -c%s //​nazwa_pliku//''​ wypisze rozmiar pliku w bajtach.
 +
 +**~~#~~.** Podaj komendę która poszuka w bieżącym katalogu plików o rozmiarze większym bądź równym rozmiarowi pliku ''/​usr/​bin/​man'',​ wiedząc że polecenie ''​du -b //​nazwa_pliku//''​ wypisze rozmiar pliku w bajtach i jego nazwę.
 +
 +**~~#~~.** Podaj komendę, która spróbuje utworzyć wcześniej nieistniejący katalog ''​data''​ i jeśli utworzenie katalogu się powiodło, to wejdzie do tego katalogu.
 +
 +**~~#~~.** Podaj komendę, która spróbuje wyświetlić tylko linie zaczynające się od ''​student ''​ z wyników komendy ''​ps -ef'',​ a jeżeli w wyniki komendy nie zawierają pasujących linii, to wypisze ''​Użytkownik student nie ma żadnych procesów''​.
 +
 +**~~#~~.** Podaj komendę która utworzy alias o nazwie ''​myps''​ który będzie wykonywać komendę ''​ps -HFu $LOGNAME''​.
 +
 +**~~#~~.** W twojej powłoce polecenie ''​grep''​ jest interpretowane jako alias. Podaj do jakiej komendy się rozwija.
  
so/test2_cwiczenia.txt · ostatnio zmienione: 2024/04/15 00:55 przez jkonczak