SK Zadanie 2From Łukasz Graczykowski(Difference between revisions)
Revision as of 10:28, 13 October 2016
Powłoka BashBash jest jedną z powłok systemowych, czyli programów, które pośredniczą między systemem operacyjnym a użytkownikiem. Użytkownik za pomocą powłoki uruchamia programy, jak i programy zwracają do powłoki wynik swojego działania, który następnie jest przekazywany użytkownikowi. Programy mogą komunikować sie z użytkownikiem również niezależnie (np. programy okienkowe). Każda powłoka zawiera polecenia, które wykonują podstawowe operacje w systemie operacyjnym (np. tworzenie folderów). Paletę domyślnych poleceń wzbogacają zewnętrzne programy, które wykonują operacje nie będące zawartymi poleceniami. Praktycznie każda dystrybucja Linuxa (z Androidem włącznie) zawiera powłokę Bash.
Powłoka Bash: PodstawyJednym z podstawowych poleceń jest echo foo foo W poleceniu echo możemy również stosować tzw. metaznaki. Przykładem takiego znaku jest cd / echo * bin boot dev etc home initrd.img initrd.img.old lib lib32 lib64 lost+found media mnt opt optl proc root run sbin selinux srv sys tmp usr var vmlinuz vmlinuz.old echo b* bin boot W powyższym przykładzie widzimy, że Bash rozwija znak Innym przykładem metaznaku jest echo ~ /home/jb
Zadanie 1Za pomocą polecenia
Powłoka Bash: Przekierowania i Potoki
Program cat nazwa_pliku
By przekierować standardowe wyjście programu do pliku należy użyć operatora cat plik1 plik2 >> polaczonepliki W wariancie z
Załóżmy, że mamy dwa polecenia: polecenieB i polecenieB i chcemy, aby polecenieB na swoje standardowe wejście przyjęło wynik działania polecenieA. W takim przypadku należy wpisać: polecenieA | polecenieB
Program tail okazuje koncówkę pliku cat /usr/share/romeo | tail -n 100
Program head pokazuje początek pliku
Każdy program ma podłączone dwa standardowe strumienie wyjściowe:
Rozróżnienie wynika z tego, aby wynik działania programu mógł być zwracany przez jeden strumień (np. polecenie tar zwróci spakowany folder), a informacje o ewentualnych błędach przez inny strumień. By przekierować standardowy strumień błędów należy użyć
> Zapisuje wynik działania do pliku. >> Dodaje wynik działania do pliku. 2> Przekierowuje strumień błędów. | Przesyła wynik działania (ang. output) programu na wejście (ang. input) drugiego programu. Więcej informacji: http://ryanstutorials.net/. Zadanie 2Proszę pobrać tekst Romeo i Julii po angielsku pg1112.txt wget http://www.gutenberg.org/cache/epub/1112/pg1112.txt Po kolei należy:
Pliki specjalneiPlik /dev/null to plik, który przyjmuje dowolne dane, które potem znikają. Jest on przydatny kiedy chcemy się pozbyć jakiegoś strumienia danych (np. komunikatów o błędach). polecenie 2> /dev/null Plik /dev/random oraz /dev/urandom zawierają nieskończone ciągi losowych liczb. Taka komenda pozwala na wpipsanie kilku losowych znaków: cat /dev/urandom | head -c 66 | base64 SygnałySygnały są metodą na komunikację między procesami w systemach Linux’owych. Pozwalają, na przykład, na: Poproszenie procesu o wyłączenie się Wymuszenie wyłączenia procesu Zatrzymanie wykonania procesu Do wysyłania sygnałów służą polecenia oraz pkill, kill. Polecenie kill przyjmuje id procesu, polecenie pkill wysyła sygnał do procesów, których nazwa zawiera ciąg znaków podanych w tym poleceniu. jb /tmp/bar $ ps -e | grep iceweasel 5020 ? 00:13:16 iceweasel kill 5020 To samo zadanie wykona: pkill iceweasel Domyślnie pkill i kill wysyłają sygnał TERM, który prosi proces by ten się wyłączył (proces może się na to nie zgodzić). Polecenia pkill -9 oraz kill -9 pozwalają na zabicie procesu (proces zawsze się wyłączy). Polecenie pkill --signal SIGSTOP spowoduje wstrzymanie wykonania procesu, a pkill --signal SIGCONT włączy go ponownie. Zadanie 3Proszę uruchomić przeglądarkę iceweasel, wstrzymać ją a następnie wznowić jej proces.
Zadania i informacje dodatkoweProszę wylistować użytkowników z pliku Note Polecenie |