Laboratorium 6 - Politechnika Lubelska
Transkrypt
Laboratorium 6 - Politechnika Lubelska
1. Zarządzanie procesami a) Do czego służą polecenia su, users, w, nice, ps, top? b) Wykonaj następujące instrukcje ls -a || users oraz ls -a && users. Jaka jest różnica pomiędzy „||” oraz „&&”? c) Wyświetl listę wszystkich procesów działających w systemie operacyjnym. d) Zamróź przy pomocy CTRL+Z wykonanie polecenie ls –R /. Wyświetl listę procesów użytkownika „student”. Przy pomocy polecenia kill wyślij do zamrożonego procesu sygnał oznaczony kodem „SIGTERM”, „SIGKILL”, „SIGCONT”. SIGTERM – poprawne zamknięcie procesu, SIGKILL – unicestwienie procesu co może powodować utratę wszystkich zawartych w nim danych (nie ma możliwości przechwycenia tego sygnału przez proces), SIGSTOP – zatrzymanie procesu bez utraty danych, SIGCONT – ponowne uruchomienie zatrzymanego procesu. pid - własny identyfikator PID, ppid - identyfikator swojego procesu macierzystego PPID, pgrp - identyfikator grupy procesów, do której należy, session - identyfikator sesji, do której należy. 2. Potoki1 Aby skopiować przy pomocy head i tail linie od 10 do 20 włącznie z pliku „/etc/passwd” do pliku tekstowego, można wykorzystać metody przedstawione poniżej. cat /etc/passwd | head –n 20 | tail -n 10 > test.txt Wynik pierwszego polecenia jest przekazywany do drugiego, które wybiera 20 pierwszych linii z otrzymanego rezultatu. Następnie tych 20 linii jest przekazywane do kolejnego polecenia, które wybiera z nich 10 ostatnich. Uzyskany w ten sposób przedział jest zapisywany do pliku. a) Do czego służą polecenia head, tail, wc, sort, uniq? b) Utwórz plik tekstowy o nazwie „zwierzaki” o treści: (pomiń w sprawozdaniu) Ala ma kota Ola ma psa Ala ma chomika Ala ma psa Piotr ma rybki Bartek ma konia Ala ma psa c) d) e) f) 1 Wyświetl linie pliku „zwierzaki” posortowane w porządku rosnącym i malejącym. Policz linie w pliku „zwierzaki”. Policz linie zawierające słowo „Ala”. Policz liczbę znaków ze wszystkich linii zawierających słowo „Ala”. Zadanie powstało z wykorzystaniem materiałów opracowanych przez dr inż. Grzegorza Kozieła © Kamil Żyła, Instytut Informatyki, Politechnika Lubelska 1 g) h) i) j) Wyświetl bez powtórzeń wiersze z pliku „zwierzaki”. Skopiuj do pliku „wz” 3 pierwsze i 2 ostatnie wiersze pliku „zwierzaki”. Wyświetl trzeci wiersz z pliku „zwierzaki” korzystając z head i tail. Policz zalogowanych użytkowników. 3. awk Aby skopiować przy pomocy awk linie od 10 do 20 włącznie z pliku „/etc/passwd” do pliku tekstowego, można wykorzystać metody przedstawione poniżej. awk ‘NR>=10 && NR<=20’ /etc/passwd > test.txt W awk: kolejność działań jest regulowana przez (), suma zbiorów - ||, iloczyn zbiorów- &&, znaki mniejszości i większości - <,>,>=,<=, == Przy pomocy awk jest możliwe uzyskiwanie fraz z tekstu spełniających określone warunki, np. : ls –l | awk –F ‘ ’ ‘{print $5}’ Celem jest wyświetlenie rozmiarów plików na podstawie tekstu zwróconego przez polecenie ls –l. Po parametrze –F określa się separator (w tym przypadku spacja), a następnie numer kolumny (w tym przypadku 5 kolumna zawiera rozmiary plików) oddzielonej określonym wcześniej separatorem. $0 oznacza cały wiersz. a) Skopiuj z pliku ‘/etc/passwd’ do pliku ‘test2’ linie [3,6] + [15,20] + {9}. b) Wyświetl trzeci wiersz z pliku ‘/etc/passwd’ korzystając z awk. c) Napisz polecenie określające na podstawie pliku ‘/etc/passwd’ liczbę użytkowników systemu korzystających z powłoki ‘bash’. d) Opisz działanie polecenia: e) Opisz działanie poleceń: echo "2 4" > n echo "3 6" >> n echo "5 2" >> n cat n | awk '$1 < $2 {print $0,"iloraz:", $1/$2}' > n2 f) Opisz działanie polecenia: ls n* | awk '{print "mv "$0" ./"$0".txt"}' g) Opisz działanie polecenia ls n* | awk '{print "mv "$0" ./"$0".txt"}' | bash Przydatne linki: http://sparky.rice.edu/~hartigan/awk.html http://www.gentoo.org/doc/pl/articles/l-awk1.xml http://www.gentoo.org/doc/pl/articles/l-awk2.xml http://www.gentoo.org/doc/pl/articles/l-awk3.xml © Kamil Żyła, Instytut Informatyki, Politechnika Lubelska 2