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) i `
(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)
\n
– 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
drzewo procesów
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
fg
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
4,0K ./tmp/mc-root
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
/dev/hd[a-z]
–
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/hdXY
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
sprawdzanych systemów plików.
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
ą
?