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