Uniwersytet w Białymstoku
Wydział Matematyki i Informatyki
Instytut Informatyki
Materiały bazowe do zajęć z przedmiotu:
Systemy operacyjne
Laboratorium nr 04
Temat:
Wyrażenia regularne. Pamięć i procesy
mgr Adam Bonda
Białystok 2008
Cel laboratorium: Zapoznanie się z narzędziami przetwarzającymi strumienie tekstowe obsługujące wyrażenia regularne. Zarządzanie przestrzenią dyskową i procesami w systemie.
Substytucja tekstów:
Czyli zastępowanie znaczenia określonych zmiennych powłoki wprowadzanych w linii poleceń. Wiemy np. że metaznaki traktowane są w specjalny sposób przez powłokę.
Zanim powłoka wykona polecenie, interpretuje znaczenie poszczególnych parametrów i nazw, a dopiero później przekazuje je wywołanemu poleceniu.
Jeżeli zamierzeniem użytkownika nie jest wykonywanie substytucja parametrów lub nazw to używa się symboli cytowania. Poszczególne cytowania mają jednak różne zastosowania.
\
– (backslash) – kasuje znaczenie znakowi występującemu po nim
'
– (apostrof) – blokuje znaki specjalne, aż do wystąpienia kolejnego apostrofu
"
– (cudzysłów) – blokuje specjalne znaczenie wszystkich znaków poza $ (który zarezerwowany jest dla określania zmiennych – substytucja zmiennych) ì (substytucja wyników poleceń)
`
– (akcent) – ciąg znaków otoczony akcentami jest traktowany jak komenda i jest wykonywany
Wyrażenia regularne:
c
– dopasowuje niespecjalny znak c.
\c
– dopasowuje dosłowny znak c.
.
– dopasowuje dowolny znak włącznie ze znakiem nowej linii.
^
– dopasowuje początek łańcucha.
$
– dopasowuje koniec łańcucha.
[abc...]
– lista znaków, dopasowuje dowolny ze znaków abc....
[^abc...] – zanegowana lista znaków, dopasowuje wszystkie znaki poza abc....
r1|r2
– alternatywa: dopasowuje albo r1 albo r2.
r1r2
– konkatenacja: dopasowuje r1, a następnie r2.
r+
– dopasowuje jeden lub więcej r-ów.
r*
– dopasowuje zero lub więcej r-ów.
r?
– dopasowuje zero lub jeden r.
(r)
– grupowanie: dopasowuje r.
r{n}
r{n,}
r{n,m}
– Jedna lub dwie liczby w nawiasach klamrowych opisują wyrażenie
powtarzane. Jeżeli w nawiasach jest jedna liczba, to poprzedzające
wyrażenie regularne r powtarzane jest n razy. Jeżeli użyto dwu rozdzielonych przecinkiem liczb, to r powtarzane jest od n do m razy. Jeżeli w nawiasach jest jedna liczba, z następującym po niej przecinkiem to r powtarzane jest co najmniej n razy. Wyrażenia powtarzane dostępne są tylko wtedy, gdy w
wierszu poleceń użyto albo opcji --posix albo --re-interval.
Sekwencje specjalne (podobnie jak w C):
\\
– dosłowny odwrotny ukośnik (backslash)
\a
– znak dzwonka, "alert"; zazwyczaj znak ASCII BEL
\b
– backspace
\f
– wysuw strony (form-feed)
– znak nowej linii (newline).
\r
– powrót karetki (carriage return).
\t
– tabulacja pozioma (horizontal tab).
\v
– tabulacja pionowa (vertical tab).
\xcyfry – hex
Znak reprezentowany przez łańcuch cyfr szesnastkowych występujących po \x. Tak jak w ANSI C, wszystkie kolejne cyfry szesnastkowe uważane są za część sekwencji specjalnej.
Np., "\x1B" jest znakiem ASCII ESC (escape).
\ddd Znak reprezentowany przez 1-, 2- lub 3-cyfrową sekwencję cyfr ósemkowych. Np.,"\
033"jestznakiem ASCII ESC (escape).
\c Dosłowny znak c.
Sekwencji specjalnych można też używać wewnątrz stałych wyrażeń regularnych (np.,
/[ \t\f\n\r\v]/ dopasowuje białe znaki).
W trybie zgodności, znaki reprezentowane przez ósemkowe lub szesnastkowe sekwencje specjalne są traktowane dosłownie,jeśli użyto ich w stałych wyrażeniach regularnych.
Zatem, /a\52b/ jest równoważnikiem /a\*b/.
Klasa znaków
Klasa znaków dozwolona jest wyłącznie w wyrażeniu regularnym wewnątrz nawiasów klamrowych listy znaków. Klasy znaków składają się z [:, słowa kluczowego opisującego klasą, i kończącego :]. POSIX definiuje następujące klasy znaków:
[:alnum:] – Znaki alfanumeryczne.
[:alpha:] – Znaki alfabetu.
[:blank:] – Znaki spacji lub tabulatorów.
[:cntrl:] – Znaki sterujące.
[:digit:] – Znaki numeryczne (cyfry).
[:graph:] – Znaki, które są zarówno widoczne (przy wyświetlaniu) jak i drukowalne.
(Spacja jest drukowalna, ale nie jest widoczna, podczas gdy
a jest i takie, i takie.)
[:lower:] – Znaki małych liter alfabetu.
[:print:] – Znaki drukowalne (znaki, które nie są znakami sterującymi.)
[:punct:] – Znaki interpunkcyjne (nie będące literami, cyframi, znakami sterującymi ani znakami spacji).
[:space:] – Znaki spacji (takie jak zwykła spacja, tabulator, wysuw strony, by wymienić tylko kilka).
[:upper:] – Znaki dużych liter alfabetu.
[:xdigit:] – Znaki będące cyframi szesnastkowymi.
Przykłady
$ tr a-z A-Z
$ tr [:lower:] [:upper:]
obie linijki zamieniają małe znaki na duże
$ tr -cd [:alnum:]
kasuje wszystkie znaki niealfanumeryczne
awk
Polecenie służy do przetwarzania plików tekstowych
Awk przeszukuje i manipuluje dane tekstowe wiersz po wierszu zapisując określony wiersz i kolumnę w zmiennych. Jest użytecznym narzędziem, które może między innymi posłużyć
do wyprowadzenia danego z pliku, bądź z przekierowanego wyjścia polecenia.
Opcje:
-F separator
– pozwala określić separator pól w wierszu
-f plik
– określa plik z którego zostanie wczytana wykonywana konstrukcja
-v zmienn=wartość – definiuje zmienna i przypisuje jej wartość dla programu awk
-mf N
– określa maksymalną liczbę analizowanych pól pliku danych
-mr N
– określa maksymalny rozmiar rekordu w pliku danych
-W słowo_kluczowe – określa tryb zgodności lub poziom ostrzeżenia dla awk $ awk '{print "hello word"}'
$ cat przyklad1.txt
imię nazwisko wiek waga
Jaś Fasola 30 82
Benny Hill 60 95
$ cat przyklad.txt | awk '{print $2, $3}' lub awk '{print $2, $3}' < przyklad.txt
nazwisko wiek
Fasola 30
Hill 60
$0
- cały wiersz
$1
- pierwsza kolumna
...
$n
-n-ta kolumna
$ cat przyklad2.txt
imię;nazwisko;wiek;waga
Jaś;Fasola;30;82
Benny;Hill;60;95
awk -F";" '{print "zmodyfikowany: " $2, $1, $4}' < przyklad2.txt > wynik zmodyfikowany: nazwisko imię waga
zmodyfikowany: Fasola Jaś 82
zmodyfikowany: Hill Benny 95
$ awk '/home/' /etc/passwd
$ awk '/hom./' /etc/passwd
$ awk '/\/home/' /etc/passwd
$ awk ’{
> $2="zastąpił"
> print $0 }’
awk zastępuje wartość starą wartością nową
awk zastąpił wartość starą wartością nową
$ ls -l | awk '$3 == "student"'
listowane są katalogi spełniające warunek
$ cat a
a b c
d e f
$ cat a | awk '{print $1,$2,$3}'
$ echo " < table border=1> " > tab.html
$ cat a | awk '{print "<tr><td>"$1"</td>", "<td>"$2"</td>",/
"<td>"$2"</td></tr>"}>> tab.html $ echo "</table>">> tab.html
awk 'BEGIN{nagłówek} {właściwe przetwarzanie} END{zakończenie}'
$ cat a | awk 'BEGIN{print "<table border=1>"}{print
"<tr><td>"$1"</td>","<td>"$2"</td>","<td>"$3"</td></tr>"} END{print
"</table>"}' >tab.html
w pliku tab.html pojawi się tekst:
<table border=1>
<tr><td>a</td><td>b</td> <td>c</td></tr>
<tr><td>d</td> <td>e</td> <td>f</td></tr>
</table>
$ cat skladnia
{print "userid przypisany " $5 "'owi to " $1}
$ grep -v ,,, /etc/passwd | awk -F : -f skladnia
userid przypisany daemon'owi to daemon
userid przypisany bin'owi to bin
userid przypisany sys'owi to sys
...
...
...
http://gnu.univ.gda.pl/~tomasz/prog/awk/refcard/awkrefcard-pl.pdf
sed
edytor strumieniowy
ps
zgłasza status procesu
Opcje:
-e
– wypisuje informacje o wszystkich procesach w systemie
-f
– wyświetla pełną informację o procesach (przykład 3);
-l
– wyświetla długą informację o procesach (przykład 4)
-t
– wypisuje informacje o procesach skojarzonych z określonym terminalem
-p
– wypisuje informacje o procesach z podanym numerem PID
-u
– wypisuje tylko procesy z podanym numerem UID lub nazwą użytkownika.
$ps # zwraca listę procesów bieżącego użytkownika i terminala w skróconej formie $ps -u student # wyświetla wszystkie procesy użytkownika student (mała ilość danych) $ps -u student u # wyświetla wszystkie procesy użytkownika student (cpu/mem i inne) ps -fu student
wszystkie procesy w systemie
ps -e; ps -ef; ps -eF; ps -ely; ps ax;ps axu
ps -ejH; ps axjf
informację o wątkach
ps -eLf; ps axms
informacje związane z bezpieczeństwem
ps -eo euser,ruser,suser,fuser,f,comm,label
ps axZ
ps -eM
wszystkie procesy w formacie zdefiniowanym przez użytkownika
ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
ps -eopid,tt,user,fname,tmout,f,wchan
Wyświetlenie tylko identyfikatora procesu syslogd:
ps -C syslogd -o pid=
Wyświetlenie tylko nazwy procesu o identyfikatorze 42
ps -p 42 -o comm=
Znaczenia nagłówków:
PID
– (Process IDentifier ) identyfikator (tego) procesu
PPID – (Parent Process IDentifier ) identyfikator procesu macierzystego S
– (Status) stan (S — sleeping lub R — running)
TTY
– terminal
TIME – czas wykonywania procesu w minutach i sekundach
CMD
– komenda skojarzona z procesem
USER – użytkownik
C
– wykorzystanie CPU przez proces
F
– znaczniki procesu
UID
– id użytkownika
PRI
– priorytet procesu (im większa liczba tym niższy priorytet)
NI
– „nice”, wartość wykorzystywana przy ustalaniu priorytetu
ADDR – adres procesu w pamięci
WCHAN – zdarzenie, na jakie oczekuje proces.
STIME – czas rozpoczęcia procesu
top
wyświetl najważniejsze procesy CPU
kill
zakończ proces
Wysyła sygnały do procesu. Kill z flagą -l wyświetla listę sygnałów, jakie mogą być wysłane do procesu. Najczęściej wykorzystywane jest polecenie kill -9 NR_PID, usuwające proces o podanym PID. Sygnał może być zapisany w postaci symbolicznej lub numerycznej.
jobs
Wyświetla procesy pracujące w tle, które są potomkami
aktualnego procesu shellowego
bg
Przenosi pracę określonego zadania w tło
Przywraca pracę zadania pracującego w tle
suspend
Zawiesza wykonywania procesu
wait
Oczekuje na zakończenie określonego zadania i zwraca
/etc/fstab
statyczna informacja o systemach plików
Plik fstab zawiera opisowe informacje na temat różnych systemów plików. fstab jest wyłącznie czytany przez programy i nie jest przez nie zapisywany. Prawidłowe stworzenie tego pliku i zarządzanie nim jest obowiązkiem administratora. Każdy system plików jest opisywany przez osobną linię; pola w każdej linii są oddzielane przez znak spacji lub tabulacji. Kolejność rekordów w pliku fstab jest istotna, ponieważ fsck(8), mount(8) i umount(8) w celu wykonania swoich zadań dane z pliku fstab pobierają sekwencyjnie.
$ cat /etc/fstab
/dev/hda1 / ext2 errors=remount-ro
0
1
/dev/hda2 none swap sw
0
0
proc /proc proc defaults
0
0
/dev/hda5 /mnt/hd ext3 defaults
0
0
/dev/fd0 /floppy auto user,noauto
0
0
/dev/cdrom /cdrom iso9660 ro,user,noauto
0
0
Pierwsze pole, (fs_spec), opisuje specjalne urządzenie blokowe lub zdalny system plików przeznaczony do zamontowania.
Drugie pole, (fs_file), wskazuje na miejsce, w którym ma być zamontowany dany system plików. Dla partycji wymiany (ang. "swap partition") to pole powinno zawierać wartość ``none' .
Trzecie pole, (fs_vfstype), opisuje typ systemu plików. Obecnie system obsługuje poniższe rodzaje systemów plików:
minix
– lokalny system plików, obsługujący nazwy plików o długości 14, lub 30
znaków.
ext
– lokalny system plików z dłuższymi nazwami plików i większymi i-węzłami.
ext2
– lokalny system plików z dłuższymi nazwami plików, większymi i-węzłami i wieloma innymi dodatkami.
ext3
– obecnie używany system plików, następca ext2; zapewnia księgowanie; Kronikowanie, inaczej nazywane księgowaniem lub dziennikowaniem (ang.
journaling) jest to taka funkcja systemu plików, która zapisuje operacje zlecone systemowi plików, ale jeszcze nie dokończone w specjalnym pliku nazywanym dziennikiem (ang. journal). Dzięki dziennikowi system jest w stanie w bardzo krótkim czasie powrócić do stanu spójnego po awarii.
hpfs
– lokalny system plików dla partycji HPFS.
Iso9660
– lokalny system plików używany przez napędy CD-ROM.
nfs
– system plików służący do montowania partycji z systemów zdalnych.
swap
– partycja dysku używana jako przestrzeń wymiany.
vfat
– rozszerzony system plików (FAT(12|16|32))
Czwarte pole, (fs_mntops), opisuje opcje montowania związane z danymi systemami
plików. Jest sformatowane jako lista opcji, oddzielonych przecinkami. Zawiera co najmniej typ montowania oraz dodatkowe opcje, odpowiednie do danego typu systemu plików.
Piąte pole, (fs_freq), jest używane przez komendę dump(8) aby wykryć, który system plików musi być odłączony. Jeżeli nie ma informacji o tym polu, zwracana jest wartość 0 i dump przyjmuje, że dany system plików nie musi być odłączany.
Szóste pole, (fs_passno), jest używane przez program fsck(8) aby zadecydować, jaka powinna być kolejność sprawdzania systemów plików podczas ładowania systemu.
Główny system plików powinien mieć fs_passno równą 1, zaś inne systemy plików powinny mieć fs_passno równe 2. Systemy plików w obrębie dysku będą sprawdzane po kolei, natomiast systemy plików na różnych dyskach będą sprawdzane jednocześnie, aby wykorzystać wielozadaniowość udostępnianą przez sprzęt. Jeżeli nie podano szóstego pola, zostaje zwrócona wartość zero i fsck zadecyduje, że dany system plików nie musi być sprawdzany.
$ cat /proc/partitions
/etc/mtab
mtab – dynamiczna informacja o systemach plików (podobnie
jak /proc/mounts)
$ cat /etc/mtab
/dev/hda1
/
ext3
rw 0 0
none
/proc
proc rw 0 0
none
/proc/bus/usb
usbfs rw 0 0
none
/sys
sysfs rw 0 0
none /mnt/floppy supermount rw,sync,dev=/dev/fd0,fs=ext2:vfat,--,/
umask=0,iocharset=iso8859-2,codepage=852 0 0
/dev/hda6 /mnt/windows vfat rw,umask=0,iocharset=iso8859-2,codepage=852 0 0
df
raport wolnego i zajętego miejsca na dysku
$ df
System plików rozm. użyte dost. %uż. zamont. na
/dev/hda1 15G 1,3G 13G 9% /
/dev/hda6 23G 16K 23G 1% /mnt/windows
$ df -k
System plików bl. 1K B użyte dostępne %uż. zamont. na
/dev/hda1 15385852 1285324 13318968 9% /
/dev/hda6 23507632 16 23507616 1% /mnt/windows
$ df /home
System plików rozm. użyte dost. %uż. zamont. na
/dev/hda1 15G 1,3G 13G 9% /
du
szacuje zużycie miejsca na dysku
$ du
8,0K ./tmp
4,0K ./.mc/cedit
24K ./.mc
8,0K ./public_html
64K .
rozmiary podawane są w blokach po 512B
$ du -s
64K .
sumaryczna ilość zajmowanego miejsca
$ du -k
4 ./tmp/mc-root
8 ./tmp
4 ./.mc/cedit
24 ./.mc
8 ./public_html
64 .
rozmiary podawane są w kB
$ du -ks
64 .
$ du /etc
$ du -a /etc
(wyprowadza informacje również o plikach)
mount/umount
montuj system plików; zwraca informacje zamontowanych
systemach plików
Standardowa postać polecenia mount to
mount -t typ urządzenie katalog
Od wersji 2.4.0 Linuksa możliwe jest ponowne zamontowanie części systemu plików w innym miejscu.
Służy do tego wywołanie:
mount --bind stary_katalog nowy_katalog
mount [-fnrsvw] [-t typ_systemu] [-o opcje] urządzenie katalog
$ cat /proc/mounts
rootfs / rootfs rw 0 0
/dev /dev tmpfs rw 0 0
/dev/root / ext3 rw 0 0
none /proc proc rw,nodiratime 0 0
none /sys sysfs rw 0 0
none /dev/pts devpts rw 0 0
none /dev/shm tmpfs rw 0 0
none /proc/bus/usb usbfs rw 0 0
none /mnt/floppy supermount rw,sync,dev=/dev/fd0,fs=ext2:vfat,/
tray_lock=onwrite,--,umask=0,iocharset=iso8859-2,codepage=852 0 0
/dev/hda6 /mnt/windows vfat rw,nodiratime,fmask=0000,dmask=0000,/
codepage=cp852,iocharset=iso8859-2 0 0
– dyski ATA (a – primary master b – primary slave, c – secondary master, d – secondary slave)
/dev/sd[a-z]
– dyski SATA, SCSI, USB (a – primary master b – primary slave, c – secondary master, d – secondary slave)
primary i secondary odnoszą się do pierwszego i drugiego kontrolera
master i slave są urządzenia nadrzędnymi i podrzędnymi
/dev/fd0
– dyskietka
/dev/(cd|dvd)
– napędy optyczne
Numeracja partycji
/dev/hd XY
X
– litera dysku
Y
– numer partycji
[1-4]
– partycje podstawowe
[5-63] – partycje rozszerzone
Przykłady:
$ mount /floppy
$ mount /dev/dvd /media/dvd
$ mount -t vfat /dev/sda /media/pendrive
$ mount -t auto /dev/hda5 /mnt/temp -o rw
$ mount -o remount,rw /
$ mount -o remount,rw /dev/sda2
$ umount /media/dvd
fdisk
Obsługa tablicy partycji dla Linuksa
Dyski twarde mogą być podzielone na jeden lub więcej logicznych dysków zwanych partycjami. Podział ten jest zapisany w tablicy partycji znajdującej się w sektorze 0 dysku.
$ fdisk /dev/hdX
$ fdisk -l /dev/hdX
fsck
sprawdzenie i naprawa linuksowego systemu plików
fsck służy do sprawdzania i, opcjonalnie, do naprawy jednego lub kilku linuksowych systemów plików. filesys może być nazwą urządzenia (np. /dev/hdc1, /dev/sdb2), punktem montowania (np. /, /usr, /home), albo etykietą ext2 lub identyfikatorem UUID (np.
UUID=8868abf6-88c5-4a83-98b8-bfc24057f7bd lub LABEL=root). W celu skrócenia łącznego czasu potrzebnego do sprawdzenia wszystkich systemów plików, program fsck będzie usiłował sprawdzać równolegle systemy plików umieszczone na fizycznie różnych napędach dysków.
Kod zakończenia zwracany przez fsck jest sumą następujących warunków: 0
– Bez błędów
1
– Poprawiono błędy systemu plików
2
– System powinien zostać przeładowany (reboot)
4
– Pozostawiono nie naprawione błędy systemu plików
8
– Błąd działania
16
– Błąd użycia (składni)
128
– Błąd biblioteki współdzielonej
Kod zakończenia zwracany, gdy w wyniku użycia opcji -A sprawdzane są wszystkie systemy plików jest bitową alternatywą (OR) kodów zakończenia dla każdego ze
Zadanie1:
Stworzyć plik test2 (treść znajduje się pomiędzy znacznikami początku i końca pliku):
----początek-----
kolor zielony12
zielonny51 kwiat
zielonnny44 liść
Zielonnny64;fioletowy
ZielonnnNy16;bialy
Zieloniutkich 6 ździebeł
zieleń
zielony26
czerwony zielonNy
ZielonnnNny16
czekooolada
czerwony zielonny
zielonka61
zolty
bialy
czarny
rozowy
----koniec-----
Stosując egrep i wyrażenia regularne znaleźć wyrażenia pasujące do wzorca (oznaczenie: * oznacza dowolny ciąg znaków lub jego brak – czyli taką samą interpretację jak metaznak *. Uwaga! RegEx nie interpretują tego jako metaznak) 1) *ziel*6*
2) *onnnN* lub *onnnn* - chcemy znaleźć „o”, występujące po nim 3x”n” i „n” lub „N”
3) słowo *won* lub *lon*
4) wszystkie w których nie występują znaki od N do Z
5) wszystkie zaczynające się na „c” i kończące na „y”
6) puste linie
7) zaczynające się dużą, lub małą literą „z” w których występuje kolejno przynajmniej 2
razy n
8) wyświetlić wszystkie wyrazy w których „o„ lub „n„ powtarza się nie mniej niż 2 a nie więcej niż 3 razy
Zadanie2:
Zapisz do pliku w katalogu domowym i jednocześnie wyświetl na ekranie zmodyfikowany plik /etc/fstab. Modyfikacja ma polegać na tym że w pierwszej kolumnie wyświetlany jest punkt montowania urządzeń, a w drugiej system plików, pozostałe kolumny mają być usunięte.
Zadanie3:
z pliku /var/log/messages znaleźć wszystkie rozpoznania przez jądro systemu rodzaju procesora od 15 do 22 bieżącego miesiąca i wyświetlić liczbę zliczeń
Zadanie4:
Z katalogu /var/log/ we wszystkich plikach *.log
(a) znaleźć wszystkie próby udanego podłączenia (session opened for user) się
poprzez protokół „ssh” (deamon sshd).
(b) w pliku wynikowym (katalogu domowego) zamieścić informacje wg wzoru: dnia: <data logowania><znak tab>użytkownik: <nazwa użytkownika> zalogował się do systemu
np.: dnia: Oct 19
użytkownik: student zalogował się do systemu
(c) zliczyć logowania, posortować wg nazwy użytkownika.
(d) wylistować, jacy użytkownicy logowali się do systemu (bez powtarzania się loginów), wyniki zapisać w zewnętrznym pliku. Plik powinien zaczyna się tekstem:
„Lista wszystkich użytkowników którzy logowali się na bieżącą maszynę” i kończyć tekstem „koniec listy”
(e) zadanie wykonać jako polecenie, oraz w formie skryptu (a więc z krótkim wywołaniem z linii zachęty typu $ awk skrypt <dane wejściowe> Zadanie5. Wyświetlić wszystkie procesy użytkownika student, sprawdzić które są procesami macierzystymi aktualnie pracujących procesów. Sprawdzić, który proces zajmuje najwięcej pamięci i obciąża procesor.
Zadanie6. Wywołać polecenie przeszukiwania plików począwszy od katalogu głównego, następnie zawiesić wykonywanie polecenia i przenieść je w tło, sprawdzić listę aktualnie pracujących w tle poleceń, przywrócić działanie polecenia. Z drugiego terminala zakończyć proces odpowiedzialny za wyszukiwanie plików.
Zadanie7. Sprawdzić ilość partycji na dysku, ich pojemność, oraz sumaryczne miejsce zajmowane przez katalog /usr/sbin. Jaki system plików zamountowany jest w katalogu głownym. Która partycja jest partycją aktywną?