Wykład 2
Poszukiwanie plików wg zadanych kryteriów (1)
Find katalog … [kryterium] [akcja]
Wybrane kryteria:
- name plik – określenie wzorca nazwy pliku
- perm prawa – określenie kodu praw dostępu (ósemkowo)
- type typ – określenie typu plików (f-plik zwykły, d-katalog, c,b-pliki specjalne; l-dowiązanie symboliczne)
- links liczba – określenie liczby dowiązań
- size rozmiar – określenie rozmiaru (w blokach lub znakach)
- user właściciel – określenie właściciela pliku
- group grupa – określenie grupy
Poszukiwanie plików wg zadanych kryteriów (2)
Wybrane akcje:
- print – wyprowadzenie nazw(na stdout)
- exec polecenie – wykonanie podanego polecenia. Po poleceniu powinien wystąpić symbol {} \;
- ok. polecenie – jw. Realizacja każdego polecenia wymaga potwierdzenia operatora
Prawa dostępu:
Kategorie użytkowników:
- właściciel pliku – UID użytkownika zgodny z UID pliku
- grupa użytkowników – GID użytkownika zgodny z GID pliku
- pozostali użytkownicy
Plik | Katalog | |
---|---|---|
r | Prawo listowania zawartości | Prawo listowania zawartości |
w | Prawo modyfikacji i kasowania pliku | Prawo tworzenia i kasowania plików i podkatalogów |
x | Prawo uruchamiania | Prawo przeglądania struktury systemu plików (komenda Cd) |
Zmiana praw dostępu
chmod kategoria operacja prawo plik
Kategoria | Operacja | Prawo |
---|---|---|
u – dla właściciela | + - dodawanie prawa | r – odczyt |
g – dla gurpy | - - odejmowanie | w – zapis |
o – pozostali | = - podstawienie | x – uruchamianie |
a – wszyscy |
Liczba_osemkowa | Prawo | Opis |
---|---|---|
0 | --- | Brak |
1 | --x | Uruchamianie |
2 | -w- | Zapis |
3 | -wx | Uruchamianie i zapis |
4 | r-- | Odczyt |
5 | r-x | Odczyt i uruchamiani |
6 | rw- | Odczyt i zapis |
7 | rwx | Odczyt, zapis, uruchamianie |
Polecenia związane z prawami dostępu:
- chown – zmiana właściciela pliku
- chgrp – zmiana grupy plików
- newgrp – zmiana przynależności użytkownika do grupy
- id – sprawdzenie atrybutów użytkownika
Maska praw dostępu:
Umask – listowanie i ustanawianie domyślnych praw dostępu
1 przy tworzeniu pliku ustaw prawo na wartość 0
Procesy i potoki:
Standardowy strumień wejściowy proces standardowy strumień wyjściowy
deskryptor 0 | deskryptor 1
↓
standardowy strumień diagnostyczny
deskryptor 2
Sterowanie strumieniami:
<word – użyj pliku word jako standardowego wejścia (deskryptor 0)
>word – użyj pliku word jako standardowego wyjścia (deskryptor 1). Jeżeli plik nie istnieje jest tworzony, w przeciwnym razie jest zapisywany od początku
>>word – użyj pliku word jako standardowego wyjścia. Jeżeli plik nie istnieje jest tworzony, w przeciwnym przypadku rekordy są zapisywane na końcu pliku.
<&- / >&- - standardowe wejście/ wyjście zamknięte
Poprzedzenie dowolnego z podanych operatorów cyfrą powoduje związanie podanego deskryptora z odpowiednim działaniem, np.:
2>dane – deskryptor 2 będzie związany z plikiem wyjściowym „dane”
1>xxx 2>&1 – standardowe wyjście kierowane jest do pliku „xxx”. Deskryptor pliku 2 związany jest deskryptorem 1 (z plikiem „xxx”)
Filtry w systemie UNIX:
Filtr – program, który realizuje następujące czynności:
- czytanie danych ze standardowego wejścia
- przetwarzanie wczytywanych danych
- wypisywanie wyników przetwarzania na standardowym wyjściu
Z programów filtrów można zbudować potok
Wybrane filtry:
wc – zliczanie linii, wyrazów i znaków
grep – generator raportów
sort – sortowanie plików
cut – wybieranie pól z wierszy pliku tekstowego
tr – zamiana znaków
head – listowanie początku pliku
tail – listowanie końca pliku
more, pg – przeglądanie pliku ze stronicowaniem
WC
wc [-opcje][plik]
Opcje:
l – wypisanie liczby linii w pliku
w – wypisanie liczby wyrazów w pliku
c – wypisanie liczby znaków w pliku
GREP
grep – przeszukuje plik tekstowy w poszukiwaniu wzorca; na standardowe wyjście wypisuje wiersze zawierające podany wzorzec
grep [-opcje] wzorzec [plik]
Opcje:
c – wypisanie tylko liczby pasujących do wzorca linii
i – wyłączanie rozróżniania dużych i małych liter
n – poprzedzenie każdej linii numerem tej linii w pliku wejściowym
v – na wyjściu pojawiają się linie, które nie zawierają wzorca
Wzorce:
. – dowolny pojedynczy znak z wyjątkiem nowej linii
* - zero lub więcej wystąpień znaku, który poprzedza gwiazdka
^ - wzorzec poszukiwany jest od początku wiersza
$ - wzorzec poszukiwany jest od końca wiersza
[ ] – pasuje do jednego znaku podanego wewnątrz nawiasów
[^ ] – pasuje do jednego znaku z poza zakresu podanego wewnątrz nawiasów
Przykłady:
Wypisz liczbę pustych linii:
grep –c „^$” plik lub
grep –cv „.” plik
Wypisz linię zawierająca 3 dowolne znaki:
grep „^…$” plik
Wpisz linie zawierające ciąg znaków zaczynający się od „A” i kończący się na „y”
grep „A.*y” plik
Wypisz linie, które nie zawierają ciągu znaków „A.*y”
grep –v „A\. \*y” plik
SORT
Sort - sortowanie pliku tekstowego
- sprawdzanie, czy plik jest posortowany
- łączenie posortowanych plików
sort [-opcje] [+poz1 [-poz2]…] [plik]
Opcje:
b – ignorowanie prowadzących znaków białych
c – sprawdzenie, czy plik jest posortowany
d – brane są pod uwagę litery, cyfry, znaki tabulacji i spacje
f – zakaz rozróżniania dużych i małych liter
i – ignorowanie znaków niedrukowanych
n – sortowanie numeryczne
r – sortowanie „malejąco”
u – usuń duplikaty
t char – użyj znaku „char” jako separatora (domyślnie spacja)
o file – wynik zapisać w pliku „file”
poz1 – pozycja pierwszego znaku klucza sortowania
poz2 – pozycja pierwszego znaku po ostatnim znaku klucza sortowania
określenie klucza +0.1 -2.3 znaczy tyle, że bierzemy 0 słowo i 1 znak oraz 2 słowo i 3 znak, np.:
Ala ma kota, As to Ali pies
Przykład: posortuj listę zalogowanych użytkowników wg godziny rozpoczęcia sesji rosnąco i minuty malejąco:
who | sort –t/ +1.16n -1.18 +1.18rn -1.20
CUT
Cut –b list [-n] [plik…]
Cut –c list [plik…]
Cut –f list [-d char] [-s] [plik…]
Opcje:
list – lista wypisywanych pól na wyjściu (np. 1,3-8); numeracja zaczyna się od 1;
b list –specyfikuje bajty w linii
n – dwubajtowe znaki są traktowane jako jeden
c list – specyfikuje znaki w linii
d char – definiuje separator pól
f list – specyfikuje pola w linii
s – usuwa linie nie zawierające znaków
Przykłady:
Wypisz czas rozpoczęcia sesji zalogowanych użytkowników:
$ who | cut –c 1-8,32-36
furtak 16:25
furtak 18:40
Wypisz liczbę nazw kont, UID i katalogów domowych użytkowników systemu
$ cat /etc/passwd | cut –d: -f1.3.6
Root:0:/
Daemon:1:/
Bin:2:/usr/bin
TR
tr [opcje] [napis1 [napis2]]
Opcje:
c – zastąpienie znaków nie wymienionych w napis1 znakami z napis2
d – usunięcie wszystkich znaków podanych w napis1
s – usunięcie wielokrotnego wystąpienia wskazanych znaków
Przykłady:
W pliku abc zamień znaki ‘a’ na ‘x’ i ‘b’ na ‘y’
$ tr „ab” „xy” abc
W wykazie zalogowanych użytkowników skasuj nadmiarowe spacje i zamień spacje na znaki ‘:’
$ who | tr –s „ „ „:”