System Operacyjny UNIX

Transkrypt

System Operacyjny UNIX
LABORATORIUM 6-7
WSTĘP DO SIECI TELEINFORMATYCZNYCH
SYSTEM OPERACYJNY UNIX
1.
PODZIAŁ CZASU
System operacyjny to program, który steruje komputerem. Kiedy komputer jest włączany, a pracuje z UNIX’em, wówczas
program ładowany jest do pamięci, i następnie uruchamiany. Program ten wykonuje wszystkie zadania i uruchamia inne
programy. UNIX jest systemem wielodostępnym i wielozadaniowym, posiada listę (kolejkę) zadań do wykonania. Zwykle
system wykonuje jedno zadanie przez krótki czas, następnie jest ono „odkładane” i system wykonuje kolejne itd. W końcu
powraca do pierwszego zadania i znowu wykonuje je przez jakiś czas. Po pewnej liczbie cykli zadanie jest całkowicie
wykonane i zostaje usunięte z kolejki. Komputery są raczej szybkie (duża liczba wykonywanych zadań w jednostce czasu),
użytkownik odnosi wrażenie, że komputer pracuje tylko dla niego, a faktycznie sekwencyjnie obsługuje zadania wielu
użytkowników.
Jeśli jest jeden użytkownik, to podział czasu i tak jest zachowany. System posiada pewne programy (np. generujące zbiorcze
informacje systemowe), które są wykonywane automatycznie co pewien czas. UNIX pozwala programom pracować w tle,
czyli umieszcza program w kolejce do wykonania i zamiast zmuszać użytkownika do czekania na realizację, natychmiast
oczekuje kolejnych poleceń. UNIX dzieli czas między poleceniami a programem pracującym w tle.
2.
ADMINISTROWANIE SYSTEMEM
W systemie mogą pracować tylko zarejestrowani użytkownicy ze względu na bezpieczeństwo danych. Dostęp do konta
chroniony jest hasłem. Konto oznacza obszar pracy i dane użytkownika. System operacyjny przechowuje specjalny plik o
określonej nazwie i ścieżce dostępu (/etc/passwd). Kiedy nowy użytkownik dodawany jest do systemu, do pliku /etc/passwd
wstawiana jest nowa linia:
tomek : xxYZz2. 1wwOla : 15 : 2 : TOMEK USER : /usr/joy.
Pierwsze pole (tomek) jest nazwą użytkownika (ang. login name), następne pole to zaszyfrowane hasło, trzecie to numer
użytkownika (15) itd. Hasło może być początkowo wprowadzone przez administratora systemu albo pozostać puste, a tomek
(użytkownik) może i powinien je zmienić używając polecenia passwd. Plik etc/passwd zawiera więcej informacji o każdym
użytkowniku, ale nazwa i hasło są najbardziej istotne, ponieważ ich podania wymaga system przed pracą z użytkownikiem.
3.
JĄDRO, POWŁOKA I POLECENIA UNIX’a
UNIX to system operacyjny z obszernym zbiorem programów wspomagających, którego najważniejszym składnikiem jest
„jądro”, a „powłoka” jednym z najważniejszych programów wspomagających.
Jądro zawiera podprogramy, które zajmują się zarządzaniem zasobami. Gdy uruchamiany jest komputer, jądro przejmuje nad
nim kontrolę. Użytkownik komunikuje się z jądrem przez powłokę.
Program powłoki uruchamia się po zgłoszeniu użytkownika i umieszczeniu go przez system operacyjny w katalogu
osobistym. Opracowano wiele powłok, ale najczęściej stosuje się powłokę Bourne (od twórcy Stephena Bourne). Dla każdego
użytkownika uruchamiany jest program sh i na ekranie wyświetla się znak zachęty i oczekiwania na polecenia ($ albo %).
Rolą powłoki jest przekazywanie poleceń komputerowi, dzięki temu użytkownik nie musi znać numerów identyfikujących
pliki, którymi posługuje się jądro.
Potęgę UNIX’a stanowi ogromny zbiór programów dostarczanych wraz z systemem operacyjnym. Programy te to właśnie
polecenia UNIX’a znajdujące się w katalogu /bin albo /usr/bin. Większość tych programów współpracuje ze sobą i z jądrem.
4.
PLIKI I KATALOGI
UNIX zapewnia odpowiednią strukturę plików użytkownikowi i pomaga w zarządzaniu nimi. Pliki są organizowane w system
plików, umieszczane są w katalogach, które mają hierarchię drzewa. Istnieje jeden katalog zwany głównym (korzeniem).
Każdy użytkownik ma katalog osobisty (ang. home directory), który jest katalogiem bieżącym podczas pracy. Wszystkie pliki
są domyślnie zapisywane właśnie w tym katalogu, jeśli nie ostanie wskazana inna ścieżka dostępu. UNIX pozwala tworzyć
własny system podkatalogów, umożliwia kopiowanie, przenoszenie plików itp.
Katalogi, pliki zwykłe i specjalne mają nazwy składające się standardowo z maksymalnie 14 znaków ASCII. Nazwy plików
specjalnych są jednak często określone indywidualnie w ramach danej odmiany UNIX’a. W nazwie pliku zwykłego i katalogu
mogą wystąpić dowolne znaki ASCII, a wielkie i małe litery są rozróżniane. Pewne znaki (nazywane metaznakami) mają
określone znaczenie dla powłoki (shella), dlatego w nazwach zalecane jest stosowanie: liter, cyfr, podkreśleń, kropek. Do
metaznaków należą:
*
?
;
|
&
\
< >
[ ]
`
‘
”
Jeżeli nazwa pliku rozpoczyna się znakiem kropki, to dla pewnej grupy poleceń plik jest traktowany jako ukryty.
1
Wykonanie polecenia zawierającego w nazwie pliku metaznaki przebiega w ten sposób, że najpierw znajdowane są nazwy
wszystkich istniejących w odpowiednim katalogu plików, pasujących do podanego wzorca, i wykonywane jest właściwe
polecenie, dla tak powstałej listy nazw plików (znaki specjalne mogą służyć do tworzenia wzorców nazw plików):
ZNAK
*
?
[lista]
[!lista]
5.
POLECENIA SYSTEMU UNIX
•
ls [opcja(e)]
[plik(i)]
ZNACZENIE
Dowolny ciąg znaków
Jeden znak
Dowolny znak z listy
Dowolny znak nie występujący na liście
[katalog(i)]
Uwaga: nawiasami [ ] oznaczać będziemy możliwość pominięcia opcji lub argumentów polecenia.
Samo polecenie ls wyświetla listę nazw plików w katalogu bieżącym, natomiast różnorodne opcje pozwalają uzyskać
dodatkowe informacje. Opcje polecenia ls mogą być użyte raem po jednym myślniku, np. ls
-a –x daje to samo, co ls
-ax.
OPCJA
-C
-F
-R
-a
-b
-c
-d
-f
-g
-i
-l
-m
-n
-o
-p
-r
-s
-t
-u
-x
DZIAŁANIE
Wypisuje nazwy plików w kilku kolumnach, sortując w dół kolumn. Liczba kolumn zależy od szerokości
ekranu i długości nazw plików
Jeśli plik jest programem wykonywalny, to po jego nazwie wyświetlana jest gwiazdka (*). Nazwy katalogów
kończą się znakiem slash (/)
Rekursywne przeszukiwanie podkatalogów, tj. wypisywane są wszystkie pliki ze wszystkich podkatalogów
Wyświetla wszystkie pliki. Bez tej opcji pliki o nazwach zaczynających się od kropki np. .moje, nie są
wypisywane
Wyświetla znaki niedrukowalne w postaci liczb ósemkowych
Używa ostatniej modyfikacji i-węzła (np. zmiana praw dostępu lub utworzenie nowego dołączenia) zamiast
czasu ostatniej modyfikacji pliku (i-węzły znajdują się w tablicy systemowej z opcjami –t oraz -l
Jeśli argument jest katalogiem, to wyświetla jedynie jego nazwę, bez wypisywania zawartości. Często używane
razem z opcją –l do wyświetlania praw dostępu do katalogu
Każdy argument traktowany jest jak katalog. Wypisywane są nazwy plików w podanych katalogach. Ta opcja
anuluje działanie opcji: -l, -t, -s, -r. Porządek wyświetlania plików zależy od kolejności, w której
znajdują się one w pliku-katalogu (katalog jest w rzeczywistości plikiem o specjalnej postaci, zawiera nazwy
plików i odpowiadające im numery i-węzłów). Jeśli argument jest plikiem, a nie katalogiem, to informacja jest
bez sensu, gdyż ls –f próbuje interpretować plik tak, jakby miał postać katalogu
Jak opcja –l, ale nie jest wyświetlana nazwa właściciela każdego pliku
Poprzedza każdy plik jego numerem i-węzła
Wyświetla następujące informacje o pliku: prawa dostępu, nazwę właściciela, wielkość w bajtach, czas
ostatniej modyfikacji. Jeśli plik jest plikiem specjalnym (opisuje urządzenie), to zamiast wielkości są
podawane numery urządzenia
Wypisuje nazwy plików na całej stronie, oddzielając je przecinkami
Jak –l, ale numery użytkownika (UID) i grupy (GID) są wyświetlane zamiast odpowiednich nazw
Jak –l, ale nazwa grupy nie jest wyświetlana
Umieszcza znak slash (/) po nazwach katalogów
Odwraca porządek sortowania
Podaje wielkość w jednostkach po 512 bajtów
Sortuje według czasu ostatniej modyfikacji (najstarszy jako pierwszy)
Sortuje według czasu ostatniego dostępu. Opcja ta jest używana łącznie z –l oraz –t
Wyświetla nazwy w kilku kolumnach sortując poziomo, a nie pionowo
Opcja –l wypisuje min. prawa dostępu do pliku, które składają się z 10 znaków. Typowa postać to: -rwxr-xr-Pierwszy znak określa typ pliku, pozostałe to prawa dostępu. Możliwe typy plików to:
ZNAK
d
b
c
p
-
TYP PLIKU
Katalog
Blokowy plik specjalny, tzn. plik opisujący urządzenie takie jak dysk
Znakowy plik specjalny, tzn. plik opisujący urządzenie takie jak terminal, kótry przesyła
dane znak po znaku
Specjalny plik FIFO „potok z nazwą” do wymiany danych między procesami
Zwykły plik
2
Kolejne dziewięć znaków określających prawa dostępu dzieli się na trzy grupy po trzy znaki. Pierwsza grupa opisuje prawa
właściciela pliku, druga – prawa grupy użytkowników (z każdym plikiem skojarzona jest grupa użytkowników), trzecia –
prawa pozostałych użytkowników:
ZNAK
ZNACZENIE
r
Prawo do odczytu
w
Prawo do zapisu
x
Prawo do wykonywania
Brak prawa
s albo S
Dostęp typu „set-user-ID” albo „set-group-ID” (opis polecenia chmod)
l
Blokowanie pliku przy dostępie
Na przykład -rwxr-xr-- oznacza zwykły plik (pierwszy -), do którego użytkownik ma prawa odczytu, zapisu i
wykonania (rwx). Członkowie grupy mają prawo odczytu i wykonywania (r-x). Pozostali użytkownicy mogą tylko
odczytywać (--).
Jeśli plik jest katalogiem, to prawo do wykonywania oznacza prawo do przeszukiwania tego katalogu. Można nadać plikowi
wykonywalnemu prawa „set-user-ID”, które daje czasowo użytkownikom, wykonującym dany program , prawa takie jak jego
właściciel. Oznacza się znakiem s zamiast x w prawie do wykonywania przez użytkownika. Znak s w prawie wykonywania
dla grupy oznacza, że użytkownicy, wykonujący dany program, mają czasowo prawa takie jak grupa, do której należy plik
(„set-group-ID”). Litera S oznacza, że nie jest dane prawo do wykonywania, czyli użytkownik ma takie same prawa jak
właściciel, ale bez prawa do wykonywania. (Litera s albo S zajmują miejsce przeznaczone dla x, więc nie mogą być
wyświetlone). System posiada możliwość blokowania plików, tj. czasowe zablokowanie dostępu do danego pliku innym
użytkownikom. Znak l w grupowych prawach do wykonywania oznacza, że plik jest zablokowany.
•
man nazwa_polecenia
Umożliwia uzyskanie informacji o danym poleceniu.
•
pwd
Wyświetla nazwę bieżącego katalogu. Polecenie określa, w którym katalogu użytkownik się znajduje. Wykorzystywane jest
też w skryptach powłoki. Może nie działać, jeśli użytkownik znajduje się w katalogu, do którego nie ma prawa odczytu.
•
cd [katalog]
Zmienia katalog bieżący na katalog określony przez argument wywołania. Jeśli nie podano żadnego argumentu, to katalogiem
bieżącym staje się katalog osobisty. Nazwę katalogu osobistego użytkownika zawiera zmienna środowiska HOME. Jeśli nie
zostanie podana pełna ścieżka katalogów, to poszukiwany jest podkatalog w katalogu bieżącym, o ile nie jest zdefiniowana
zmienna środowiska CDPATH. Nie można zmienić katalogu na taki, do którego nie ma się prawa wykonywania. Zmienna
CDPATH zostaje zwykle zdefiniowana w pliku .profile i zawiera listę katalogów. W tych katalogach polecenie kolejno
poszukuje podanego podkatalogu. Nazwy katalogów powinny być oddzielone dwukropkiem. W celu przeszukania katalogu
bieżącego, katalog nadrzędny i w końcu katalog osobisty należy podstawić:
CDPATH= . : . . : $HOME
•
mkdir [-mp] [katalog(i)]
Tworzy w bieżącym katalogu nowy(e) katalog(i) o podanej nazwie(ach), pod warunkiem, że użytkownik ma prawo do pisania
w katalogu bieżącym. W tworzonym katalogu umieszczone są dwa katalogi: . oznacza samego siebie, .. oznacza katalog
nadrzędny. Nazwy katalogów mogą być również nazwami ścieżkowymi, co umożliwia tworzenie katalogów w miejscach
określonych przez ich nazwy ścieżkowe.
OPCJA
-m liczba
-p
•
DZIAŁANIE
Ustawia prawa dostępu do tworzonych katalogów; liczba musi być liczbą ósemkową
(polecenie chmod)
Tworzy całą ścieżkę katalogów, w tym wszelkie katalogi pośrednie
rmdir [-ps] katalog(i)
Kasuje podane katalogi, a usuwany katalog musi być pusty.
OPCJA
-p
-s
DZIAŁANIE
Kasuje katalogi wraz ze wszystkimi katalogami nadrzędnymi, które staną się puste;
nazwy katalogów są wypisywane na standardowym wyjściu
Blokuje wypisywanie komunikatów w opcji -p
3
•
rm [-fri] plik(i)
Polecenie bez opcji kasuje plik albo pliki z podkatalogu. Dokładnie usuwana jest nazwa pliku z katalogu. Plik może mieć kilka
nazw, czyli dowiązań. Kasowane jest pojedyncze dowiązanie. Jeśli skasowane jest ostatnie dowiązanie, to system usuwa także
sam plik. Kasowanie plików z katalogu wymaga posiadania prawa do pisania w nim, ale nie jest konieczne prawo do pisania
dla samego pliku. Jeśli jednak brak prawa do pisania w pliku, to wyświetlone zostają prawa dostępu (liczba ósemkowa) i
żądanie potwierdzenia usunięcia. Znak y potwierdza kasowanie.
OPCJA
-f
-r
-i
•
DZIAŁANIE
Kasuje plik bez dodatkowych pytań
Akceptuje nazwę katalogu jako argument. Najpierw kasowana jest zawartość katalogu,
potem sam katalog. Powoduje rekursywne działanie, czyli kasowane są wszystkie
podkatalogi, podpodkatalogi itd. Dla bezpieczeństwa lepiej użyć polecenia rm do plików,
a rmdir do katalogów
Kasuje pliki (lub katalogi, jeśli użyto opcji -r) interakcyjnie, tj. żądając potwierdzenia
skasowania każdego katalogu
cp plik nowyplik
cp plik(i) katalog
(tworzy kopię pliku i nadaje jej nazwę nowyplik)
(kopiuje podane pliki do wskazanego katalogu, bez zmiany ich nazwy)
Kopiuje zawartość jednego pliku do nowego pliku razem z prawami dostępu. Może skopiować jeden lub więcej plików do
podanego katalogu. UNIX nie pyta, czy użytkownik jest pewny realizowanego zadania, więc trzeba uważać czy np. nazwa
docelowa nie jest nazwą istniejącego pliku, gdyż poprzednia zawartość zostanie stracona. UNIX nie pozwala na kopiowania
pliku na siebie samego.
•
cat [opcje] [plik(i)]
Wyświetla i łączy pliki w jeden strumień wyjściowy.
WYBÓR WEJŚCIA:
jeśli w linii polecenia występują nazwy plików, to są one wyświetlane w odpowiedniej kolejności.
Gdy brakuje nazw plików, to polecenie pobiera dane z wejścia (domyślnie z klawiatury). Znak
końca pliku EOF sygnalizuje, że plik wejściowy się skończył. Aby zakończyć wprowadzanie
danych z klawiatury, należy podać znak <control-d> na początku nowej linii.
WYBÓR WYJŚCIA:
polecenie kieruje swe wyjście na wyjście standardowe, czyli ekran terminala. Może jednak
skierować wyjście do pliku albo poprzez potok do innego polecenia.
•
mv [-f] plik1 plik2
mv [-f] plik(i) katalog
OPCJA
-f
DZIAŁANIE
Zmienia nazwy bez dodatkowych pytań, o ile to możliwe
Zmienia nazwy plików albo przenosi pliki do innych katalogów. Pełna ścieżka dostępu identyfikuje katalog, w którym plik się
znajduje. Zmiana ścieżki dostępu oznacza zmianę tego katalogu. Polecenie użyte w pierwszej postaci umożliwia zmianę nazwy
istniejącego pliku plik1 na nazwę nową plik2.
W drugiej postaci podawane są nazwy plików, które użytkownik chce przenieść do wskazanego katalogu. Trzeba mieć prawo
do pisania w katalogu, do którego chce się przenieść dany plik. Jeśli proponowana nowa nazwa pliku należy do już
istniejącego, to plik ten jest zamazywany. Jeżeli taki plik jest zabezpieczony przed zapisem, to polecenie mv zapyta o
potwierdzenie żądania.
•
chmod tryb-absolutny plik(i)
chmod tryb-symboliczny plik(i)
Ustawia prawa dostępu do pliku albo katalogu. Polecenie stosuje się w celu ochrony plików przed zapisywaniem bądź
przypadkowym skasowaniem.
TRYB ABSOLUTNY
Tryb absolutny ustawia wszystkie prawa naraz, wymaga podania czterocyfrowej liczby kodzie ósemkowym. Liczba taka
składana jest z następujących elementów w wyniku sumowania:
TRYB
ZNACZENIE
4000
Bit „set-user-ID” ustawienie identyfikatora użytkownika-właściciela podczas wykonywania
2000
Bit „set-group-ID” ustawienie identyfikatora grupy podczas wykonywania
20#0
Jeśli #=7,5,3,1 ustawienie identyfikatora grupy podczas wykonywania. Jeśli #=6,4,2,1 zezwolenie na
blokowanie pliku
4
1000
0400
0200
0100
0040
0020
0010
0004
0002
0001
Zarezerwowany
Właściciel może czytać
Właściciel może pisać
Właściciel może wykonywać (przeszukiwać – jeśli odnosi się to prawo do katalogu )
Grupa może czytać
Grupa może pisać
Grupa może wykonywać (przeszukiwać)
Inni użytkownicy mogą czytać
Inni użytkownicy mogą pisać
Inni użytkownicy mogą wykonywać (przeszukiwać)
TRYB SYMBOLICZNY
Tryb symboliczny może zmieniać tylko wybrane prawa. Składa się z trzech części, np. o-r. Pierwsza część oznacza, której
klasy dotyczy zmiana praw; druga część to operator, który mówi jaka operacja ma być wykonana. Trzecia część pokazuje,
którego prawa dostępu ma zamiana dotyczyć.
LITERA
u
g
o
ZNACZENIE w części pierwszej
Użytkownik
Grupa
Inni
Litera a albo pominięcie w ogóle oznacza kombinację ugo, czyli wszystkich użytkowników. Dopuszczone są operatory:
OPERATOR
+
=
ZNACZENIE w części drugiej
Nadanie podanych praw
Cofnięcie podanych praw
Nadanie tylko podanych praw i cofnięcie pozostałych
LITERA
R
W
X
S
l
ZNACZENIE w części trzeciej
Prawo do odczytu
Prawo do pisania
Prawo do wykonywania
Ustawienie ID użytkownika (dla o) lub ID grupy (dla g)
Blokowanie pliku przy dostępie
Symbole praw są takie same, jak te wypisywane przez polecenie ls –l. W jednym poleceniu można podać kilka operatorów,
np. g+r-w oznacza przyznanie grupie prawa do czytania i jednocześnie cofnięcie prawa do pisania. Można zlecić kilka zmian
praw oddzielając całość przecinkami, np. u+w, go-r oznacza przyznanie właścicielowi prawa do pisania a cofnięcie grupie i
innym użytkownikom prawa do odczytu.
•
pg [opcja(e)] [plik(i)]
Polecenie pozwala przeglądać plik albo pliki, dzieląc ich zawartość na strony. W dole ekranu pojawia się znak zachęty, zaś
naciśnięcie <enter> powoduje przejście do następnego ekranu. Polecenie to może pobierać tekst także z wejścia
standardowego, więc można je użyć w potoku bez podania nazw plików albo myślnika – jako nazwy. Jeżeli wyjście
standardowe nie jest ekranem terminala, to pg zachowuje się podobnie jak cat, ale przy przetwarzaniu więcej niż 1 pliku
dodaje nagłówki z nazwą pliku.
Polecenie pg musi znać parametry terminala, gdy zmienna TERM zawiera typ terminala przeszukiwany jest plik terminfo.
W innym wypadku przyjmowany jest terminal typu dumb. (UNIX System V zwykle przyjmuje dane o typach terminali w
katalogu /usr/lib/terminfo).
OPCJA
-c
-e
-f
-p napis
+numer
+/wzorzec/
DZIAŁANIE
Powrót kursora do lewego górnego rogu, czyszczenie ekranu przed wyświetleniem nowej strony. Opcja
ignorowana przez terminale bez zdefiniowanej funkcji czyszczenia ekranu
Nie zatrzymuje się po każdej stronie
Nie dzieli linii, co może powodować efekty niepożądane w postaci sekwencji znaków sterujących
Znak zachęty to zwykle : na dole ekranu, opcja nakazuje wyświetlanie podanego napisu zamiast :
Wyświetlanie od linii o podanym numerze
Wyświetlanie od pojawienia się wzorca po raz pierwszy. Wzorzec może być ciągiem znaków lub
wyrażeniem regularnym jak dla edytora ed
5
OPCJA
6
+6
-6l
6/UNIX/
6?VAX?
n
3p
•
DZIAŁANIE NA PLIKU
Do przodu do ekranu numer 6
O 6 ekranów wprzód
Jeden ekran do wstecz
6 linii wstecz
Wprzód do szóstego kolejnego wystąpienia UNIX
W tył do szóstego poprzedniego wystąpienia VAX
Przejście do następnego pliku
Trzy pliki w tył
tail [+/- [liczba [lbc] [f]]] [plik]
Wyświetla końcowe linie pliku, domyślnie 10 linii. Jeśli nazwa pliku nie jest podana, to tekst pobierany jest zwykle z
klawiatury. Wyjście można skierować do pliku przez potok do innego polecenia.
OPCJA
-liczba
+liczba
l
b
c
f
•
DZIAŁANIE
Wyświetla podaną liczbę linii od końca pliku. Wartość domyślna liczby to 10
Wyświetla linie począwszy od podanej liczby do końca pliku. Wartość domyślna liczby to 10
Liczba przed literą oznacza ilość linii
Liczba przed literą oznacza ilość bloków po 512 bajtów
Liczba przed literą oznacza ilość znaków
Powoduje wejście w pętlę wypisywania żądanych linii na ekran i sprawdzania, czy coś zostało dopisane
do pliku. Pętlę przerywa się sygnałem INTRRUPT, albo kill jeśli tail pracuje w tle. Opcję stosuje się dla
zwykłych plików, a nie wejścia z potoku. Wyświetla zawartość pliku w trakcie dodawania nowych linii
przez inny proces
egrep [opcja(e)] [wzorzec] [plik(i)]
Wyświetla linie pliku, które odpowiadają podanemu wzorcowi. Jeśli przeszukiwany jest więcej niż jeden plik, to wyświetlana
jest także jego nazwa. Podanych wzorców może być kilka. Efekty działania polecenia są kierowane na wyjście standardowe
(ekran terminala), albo w potoku albo na wyjście do pliku.
OPCJA
DZIAŁANIE
-v
Wyświetla wszystko poza liniami odpowiadającymi wzorcowi
-c
Wyświetla liczbę znalezionych linii, dla każdego pliku oddzielnie
-l
Wyświetla tylko nazwy plików, w których znaleziono odpowiadające wzorcowi linie
-n
Poprzedza linie ich numerami
-b
Poprzedza linie numerem bloku, w którym się znajduje. Pierwszy blok ma numer 0
-f plik
Pobiera wzorce z pliku
-i
Nie rozróżnia wielkich i małych liter przy porównaniu
WZORZEC
.
\
[...]
[^...]
*
+
?
|
()
^
$
ZNACZENIE
Dowolny znak
Następny znak nie jest traktowany jako specjalny
Dowolny znak z podanej listy np. [a-z]
Dowolny znak nie występujący na liście
Zero albo więcej wystąpień wyrażenia
Jedno albo więcej wystąpień wyrażenia
Zero albo jedno wystąpienie wyrażenia
Oddziela elementy list wzorców
Grupa wzorców
Początek linii
Koniec linii
Operatory *,+,? odnoszą się do poprzedzanego znaku, chyba, że poprzedzają wyrażenie w nawiasie. Elementy listy
wzorców mogą być oddzielone znakiem nowej linii. Podobnie działają polecenia fgrep i grep.
•
cmp [-l] [-s] plik1 plik2
Porównuje dwa pliki, domyślnie zgłasza tylko pierwszą napotkaną różnicę. Do powłoki zwracany jest kod wyjściowy, jeśli
wynosi 0 – pliki identyczne, 1 – pliki różne, 2 – brak pliku albo dostępu do pliku. Zwykle porównuje się dwa pliki, aby usunąć
niepotrzebną kopię.
6
OPCJA
DZIAŁANIE
-l
Wypisuje numer (dziesiętnie) i wartości (ósemkowo) wszystkich różniących się bajtów
-s
Nie sygnalizuje różnic (opcja najczęściej używana w skryptach)
Do porównania plików służą jeszcze inne polecenia: comm – porównuje pliki posortowane, diff – porównuje pliki tekstowe.
•
find lista_katalogów wyrażenie
Argument lista_katalogów oznacza listę katalogów do przeszukania, natomiast wyrażenie określa, jakie pliki
podlegają przeszukiwaniu i co należy z nimi zrobić. Polecenie przeszukuje podane katalogi z podkatalogami. Kryterium
poszukiwań może być nazwa pliku, wzorzec nazwy, pewne cechy pliku. Polecenie może być użyte do odnalezienia plików w
drzewie katalogów, kasować pliki nie modyfikowane od pewnego czasu, może żądać potwierdzenia usunięcia pliku itp.
Argument lista_katalogów może zawierać jeden albo więcej katalogów, można stosować skrótów nazw np. „.”, nazwy
katalogów powinny być oddzielone spacjami: /usr/janek . orion. Argument wyrażenie określa kryterium
poszukiwań plików i składa się z wyrażeń pierwotnych np.: -print bądź -name flossy. Każde wyrażenie jest typu
logicznego, przyjmuje wartość „prawda” bądź „fałsz”. Większość wyrażeń dotyczy plików, ale określają też działania do
wykonania. Gdy polecenie stwierdza, że dla danego pliku całe wyrażenie będzie fałszem, to przechodzi do następnego pliku.
Kolejność wyrażeń pierwotnych jest bardzo istotna. Określenia bieżący plik odnosi się do aktualnie sprawdzanego przez
find.
WYRAŻENIE
WARTOŚĆ LOGICZNA
-name plik
Prawda jeśli plik odpowiada nazwie bieżącej. Można użyć znaków ogólnych np.: -name’*.c’
-perm liczba
Prawda jeśli prawa dostępu odpowiadają podanej liczbie w kodzie ósemkowym. Poprzedzenie
znakiem „-„ powoduje porównanie dodatkowych bitów
-type c
Prawda jeśli plik jest typu c (znakowy specjalny). Inne typy plików są oznaczane: b - blokowy
specjalny, d - katalog, p - potok lub fifo, f - zwykły.
-link n
Prawda jeśli plik ma n dowiązań
-size n[c]
Prawda jeśli plik ma długość n bloków, gdzie blok ma po 512 bajtów. Jeśli po n wystąpi c to n
jest podawane w znakach (1 znak = 1 bajt)
-atime n
Prawda jeśli plik był używany n dni temu
-mtime n
Prawda jeśli plik był modyfikowany n dni temu
-ctime n
Prawda jeśli i-węzeł był modyfikowany później niż podany plik
newer plik
Prawda jeśli plik był modyfikowany później niż podany plik
-print
Zawsze prawda, wyświetla nazwę bieżącego pliku
-exec polecenie
Prawda jeśli wykonanie polecenia zwraca kod wyjścia zero (pomyślne zakończenie), znaki {}
reprezentują nazwę bieżącego pliku, \; koniec polecenia; np. –exec ls-l {} \;
wyświetli informacje o każdym znalezionym pliku
-ok polecenie
Patrz –exec, lecz każda linia do wykonania jest wyświetlana ze znakiem zapytania, a polecenie
jest wykonywane wtedy, gdy użytkownik poda y (yes)
-depth
Zawsze prawda, przeszukuje najpierw wszystkie podkatalogi
-mount
Zawsze prawda, ogranicza przeszukiwanie do systemu plików, który zawiera podany katalog.
Jeśli nie podano katalogu, wówczas przyjmuje się domyślnie katalog bieżący
-local
Prawda, jeśli plik jest fizycznie zlokalizowany w systemie lokalnym
Wyrażenia pierwotne mogą być łączone za pomocą operatorów logicznych:
OPERATOR
DZIAŁANIE
-logiczny NOT
Znak ! neguje wyrażenie, np.: ! –name ‘*.c’ oznacza wszystkie pliki o nazwach nie
kończących się na c.
-logiczny AND
Kolejne wyrażenia tworzą koniunkcję, bez dodatkowych znaków
-logiczny OR
Reprezentowany przez –o pomiędzy wyrażeniami np.: -size +10 –o –links 3 oznacza
wszystkie plik większe niż 10 bloków lub pliki które mają dokładnie 3 dowiązania
PRZYKŁADY:
Skasowanie wszystkich plików nie używanych od 20 dni
find . –atime +20 –exec rm {} 1
Skasowanie po potwierdzeniu przez użytkownika plików używanych po raz ostatni 20 dni temu. Użytkownik jest pytany, czy
na pewno chce skasować podany plik. Odpowiedź twierdząca y (yes) powoduje skasowanie pliku
find . –atime +20 –ok. Rm {} 1;
Wyświetlenie nazwy i zawartości podanych plików. Polecenie wyszukuje wszystkie pliki o nazwach kończących się na .c, .f
lub .old, które były używane w ciągu ostatnich pięciu dni. Wyświetlana jest nazwa i zawartość takiego pliku. Znak \ po –5
oznacza kontynuację polecenia w następnej linii.
find .\( -name ‘*.[cf]’ –o –name ‘*.old’ \) –atime –5 \
-print –exec cat {}\;
7

Podobne dokumenty