przejście do zawartości
Jan Kończak
Narzędzia użytkownika
Zaloguj
Narzędzia witryny
Narzędzia
Pokaż stronę
Poprzednie wersje
Odnośniki
Ostatnie zmiany
Menadżer multimediów
Indeks
Zaloguj
Ostatnie zmiany
Menadżer multimediów
Indeks
Jesteś tutaj:
start
»
so
»
test2_cwiczenia
so:test2_cwiczenia
Ta strona jest tylko do odczytu. Możesz wyświetlić źródła tej strony ale nie możesz ich zmienić.
**~~#~~.** 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
Narzędzia strony
Pokaż stronę
Poprzednie wersje
Odnośniki
Złóż / rozłóż wszystko
Do góry