Linux System Plików II


Instytut Sterowania i Inżynierii Systemów
Zakład Komputerowo Wspomaganego Projektowania
Laboratorium Podstaw Informatyki
LINUX
System plików (II)
1
Instytut Sterowania i Inżynierii Systemów
Zakład Komputerowo Wspomaganego Projektowania
Laboratorium Podstaw Informatyki
Linux ma kilka cech ułatwiających zarządzanie plikami i katalogami. Możesz prze-
szukiwać katalogi, znalezć szczegółowe informacje o plikach, czyli kiedy ostatnio były
uaktualniane i ile mają dowiązań. Możesz również kontrolować dostęp do swoich plików.
Każdy plik w Linuxie ma prawa określające, kto może z niego korzystać oraz jakiego
typu prawa dostępu posiada. Możesz pozwolić innym użytkownikom na dostęp do da-
nych plików lub ograniczyć dostęp do nich nawet sobie.
Pliki umieszczone są na urządzeniach fizycznych, takich jak dyski twarde, CD-ROM-
y, dyskietki i na każdym z urządzeń zorganizowane są w postaci systemu plików. Aby
dostać się do plików na urządzeniu, musisz podłączyć system plików urządzenia do okre-
ślonego katalogu. Operacja taka nazywa się montowaniem systemu plików.
Możesz również zrobić kopię zapasową swoich plików do archiwum, zachowując je do
pózniejszego odzyskania lub możesz zapisać w pliku archiwum w celu przesłania przez
sieć do innego systemu. Możesz również kompresować pliki, przygotowując je w ten
sposób do bardziej efektywnego przesłania lub oszczędzenia miejsca na kopii zapaso-
wej. Archiwizowanie i kompresja są używane intensywnie przy pakietach instalowanych
z Intemetu. Możesz skopiować z Internetu skompresowany i zarchiwizowany pakiet, a
następnie go rozpakować, rozkompresować i zainstalować w systemie. Jest to bardzo po-
wszechny sposób korzystania z nowego oprogramowania dla Linuxa.
1 Przeszukiwanie katalogów
Poleceniefindpozwala na wykonywanie poszukiwań plików lub katalogów. Polecenie
findprzyjmuje jako argumenty nazwy katalogów, za którymi następuje kilka możliwych
opcji określających typ poszukiwania i jego kryteria. Poleceniefindprzeszukuje wnę-
trza zadanych katalogów wraz z ich podkatalogami w celu znalezienia plików o zadanych
kryteriach. Poleceniefindmoże poszukiwać pliku, wykorzystując jego nazwę, typ, wła-
ściciela, a nawet czas ostatniej modyfikacji.
Aby poszukiwać pliku po nazwie, używasz poleceniafindz nazwą katalogu, za którą
następuje opcja-namei nazwa pliku. Poleceniefindposiada również opcje wykonujące
zadane działanie, takie jak wyprowadzanie wyników poszukiwań. Jeżeli chcesz, abyfind
wyświetliło nazwy plików, które znalazło, po prostu umieszczasz opcję-printw wierszu
poleceń wraz z innymi opcjami. Opcja-printmówi poleceniufind, aby wyprowadziło
na standardowe wyjście nazwy znalezionych plików.
W następnym przykładzie użytkownik poszukuje wszystkich plików o nazwie poniedzia-
łek umieszczonych w katalogu raporty. Kiedy plik zostanie znaleziony, jest wypisywany
wraz z jego względną ścieżką.
$ find raporty -name poniedziałek -print
raporty/poniedziałek
Poleceniefindbędzie wypisywało nazwy plików, używając nazwy katalogu określonego
na liście katalogów. Jeżeli określisz ścieżkę bezwzględną, wyprowadzona zostanie bez-
względna ścieżka ze znalezionymi plikami. Jeżeli określisz ścieżkę względną, wyprowa-
dzona zostanie jedynie ścieżka względna. W poprzednim przykładzie użytkownik określił
ścieżkę względną raporty na liście katalogów. Znalezione nazwy plików zostały wyprowa-
dzone począwszy od tej względnej ścieżki. W następnym przykładzie użytkownik określa
2
Instytut Sterowania i Inżynierii Systemów
Zakład Komputerowo Wspomaganego Projektowania
Laboratorium Podstaw Informatyki
na liście katalogów ścieżkę bezwzględną. Znalezione nazwy plików zostają następnie wy-
prowadzone wraz z tą bezwzględną ścieżką.
$ find /home/chris -name poniedziałek -print
/home/chris/raporty/poniedziałek
Jeżeli chcesz przeszukiwać swój katalog roboczy, możesz użyć kropki w nazwie katalogu,
co będzie oznaczało Twój katalog roboczy. Dwie kropki będą oznaczały Twój katalog
nadrzędny. W następnym przykładzie przeszukiwane są wszystkie pliki i podkatalogi
katalogu roboczego, a kropka jest używana do przedstawienia katalogu roboczego. Jeżeli
znajdujesz się w swoim katalogu domowym, jest to wygodny sposób na przeszukanie
wszystkich Twoich katalogów. Zwróć uwagę, że znalezione nazwy plików są wyprowa-
dzane z kropką na początku.
$ find . -name pogoda -print
./pogoda
W następnym przykładzie przeszukiwane są wszystkie pliki z rozszerzeniem .c w katalogu
programy.
$ find programy -name  *.c -print
1.1 Kryterium poszukiwań
Możesz również używać poleceniafinddo znajdowania katalogów. W Linuxie katalogi
są klasyfikowane jako specjalny typ pliku. Mimo że wszystkie pliki mają postać ciągu
bajtów, niektóre z nich, takie jak katalogi, są używane w specjalny sposób. W tym
znaczeniu możemy powiedzieć, że plik może być określonego typu. Polecenie find ma
opcję o nazwie-type, poszukującą pliku o zadanym typie. Opcja-typewymaga jednego
argumentu jednoznakowego oznaczającego typ pliku. Argument oznaczający katalog to
literad.
W następnym przykładzie zarówno nazwa katalogu, jak i typ pliku katalogu są używane
do poszukiwania katalogu dziekuje.
$ find /home/chris -name dziekuje -type d -print
/home/chris/listy/dziekuje
$
Poleceniefindzawiera wiele różnych typów kryteriów poszukiwań. Możesz szukać pliku
według rozmiaru, według czasu ostatniego użycia, liczby łączników (dowiązań), jaką po-
siada lub grupy, do której należy oraz wielu innych.
Dwie z najczęściej używanych opcji to-sizei-mtime. Każda z nich przyjmuje jako ar-
gument liczbę. Domyślnie opcja-sizeprzyjmuje rozmiar w blokach, ale jeżeli umieścisz
literęcpo liczbie, będzie przyjmować rozmiar w znakach (bajtach). Możesz modyfiko-
wać liczbę przez+lub-, aby znalezć plik dłuższy lub krótszy niż zadany rozmiar. Na
przykład+100cspowoduje znalezienie plików o rozmiarze większym niż 100 znaków.
Opcja-mtimepowoduje poszukiwanie plików według liczby dni, jaka minęła od ostat-
niej modyfikacji. Na przykład, używając tej opcji możesz znalezć wszystkie pliki, nad
którymi pracowałeś dwa dni temu. W następnym przykładzie poleceniefindjest użyte
3
Instytut Sterowania i Inżynierii Systemów
Zakład Komputerowo Wspomaganego Projektowania
Laboratorium Podstaw Informatyki
z opcją-sizedo znalezienia wszystkich plików, których rozmiar jest większy niż 10 baj-
tów. W drugim przykładzie poleceniefindwykorzystuje opcję-mtimedo poszukiwania
plików modyfikowanych trzy dni temu.
$ find . -size +10c -print
.pogoda
./raporty/poniedziałek
$ find . -mtime +3 -print
./pogoda
1.2 Poszukiwania złożone
Kiedy opcje zostaną wpisane w wierszu poleceń, tworzą operację AND. Jedynie pliki
spełniające wszystkie kryteria poszukiwania są pokazywane. Jednak używając nawiasów
i operatorów logicznych OR i NOT, możesz budować złożone poszukiwania. Operator
NOT poleceniafindzapisuje się w postaci wykrzyknika!. Wykrzyknik umieszczony
przed kryterium poszukiwania neguje je. Jeżeli kryterium jest fałszywe - plik pasuje
do niego. Na przykład następujące polecenie wypisze wszystkie pliki, które nie mają
rozszerzenia .c.
$ ls
main.c lib.o dzisiaj
$ find . ! -name "*.c" -print
./lib.o
./dzisiaj
Operatorem logicznym OR poleceniafindjest-o. Operator-oumieszczony pomiędzy
dwoma kryteriami traktuje kryterium poszukiwań jako część wyrażenia OR. Jeżeli plik
spełnia jedno lub drugie kryterium, jest uznawany za pasujący do wzorca poszukiwań.
Musisz umieścić operator-owraz z kryterium poszukiwania wewnątrz zamaskowanych
nawiasów. Nawiasy są maskowane przez umieszczenie znaku backslash przed nimi i
umieszczenie spacji przed nawiasem otwierającym i za zamykającym.
Następne polecenie poszukuje plików o nazwie pogoda oraz wszystkich katalogów. Zwróć
uwagę na spacje obok zamaskowanych nawiasów.
$ find . \( -name pogoda -o -typa d \) -print
./pogoda
./raporty
./listy
./listy/dziekuje
Możesz tworzyć złożone operacje logiczne, łącząc kryteria poszukiwań za pomocą za-
maskowanych nawiasów. W następnym przykładzie poszukiwany jest katalog o nazwie
raporty i wszystkie pliki, których rozmiar jest większy niż 10 bajtów. Zamaskowane na-
wiasy są umieszczone przy operacjach AND-namei-typeoraz przy operacji OR-size.
Operacje logiczne w poleceniu mogą być formułowane następująco:
((nazwa = raporty) AND (plik = typ katalog)) OR (size>10)
$ find . \( \( -name raporty -type d \) -o -size+10 \) -print
./raporty
./pogoda
4
Instytut Sterowania i Inżynierii Systemów
Zakład Komputerowo Wspomaganego Projektowania
Laboratorium Podstaw Informatyki
2 Dowiązania (łączniki)
Możesz nadać plikowi więcej niż jedną nazwę, korzystając z polecenialn. Możesz ze-
chcieć dowoływać się do pliku, używając innej nazwy, aby odwołać się z innego katalogu.
Dodatkowe nazwy są często zwane dowiązaniami lub łącznikami.
Polecenielnprzyjmuje dwa argumenty: nazwę oryginalnego pliku i nową, dodatkową
nazwę. Polecenielswylistuje obie nazwy, ale będzie istniał tylko jeden fizyczny plik.
W następnym przykładzie plik dzis dostaje dodatkową nazwę pogoda. Jest to po prostu
druga nazwa dla pliku dzis.
$ ls
dzis
$ ln dzis pogoda
$ ls
dzis pogoda
Możesz nadać temu samemu plikowi kilka nazw, używając polecenialnz tym samym
plikiem wiele razy. W następnym przykładzie plikowi dzis nadawane są dwie nazwy:
pogoda i weekend.
$ ln dzis pogoda
$ ln dzis weekend
$ ls
dzis pogoda weekend
Możesz użyć polecenialsz opcją-l, aby stwierdzić, że plik ma kilka dowiązań. Polecenie
lsz opcją-lwypisuje kilka informacji, takich jak prawa dostępu oraz liczbę łączników
pliku, jego rozmiar, datę ostatniej modyfikacji. W wierszu informacji pierwsza liczba
poprzedzająca nazwę użytkownika określa liczbę łączników, jakie ma plik. Liczba przed
datą jest rozmiarem pliku. Data jest czasem ostatniej modyfikacji pliku.
W następnym przykładzie użytkownik wypisuje pełną informację o dwóch plikach dzis i
pogoda. Zwróć uwagę na liczbę łączników, gdyż w obu plikach wynosi ona 2. Co więcej,
data i czas są takie same. To sugeruje, że oba pliki są w rzeczywistości różnymi nazwami
tego samego pliku1.
$ ls -l dzis pogoda
-rw-rw-r-- 2 chris group 563 Feb 14 10:30 dzis
-rw-rw-r-- 2 chris group 563 Feb 14 10:30 pogoda
Wciąż nie mówi Ci to szczegółowo, które nazwy plików są połączone. Aby być naprawdę
pewnym, użyj polecenialsz opcją-i. Polecenielsz opcją-iwypisuje nazwę pliku i
numer jego i-węzła. Numer i-węzła jest unikalnym numerem używanym przez system do
identyfikacji konkretnego pliku. Jeżeli dwie nazwy mają ten sam numer i-węzła, odnoszą
się do tego samego pliku. Są to dwie nazwy tego samego pliku.
W następnym przykładzie użytkownik listuje pliki dzis, pogoda i larisa. Zwróć uwagę,
że pliki dzis i pogoda mają te same numery i-węzłów.
$ ls -i dzis pogoda larisa
1234 dziś 1234 pogoda 3976 larisa
1
Oczywiście może być to tylko przypadek ;-)
5
Instytut Sterowania i Inżynierii Systemów
Zakład Komputerowo Wspomaganego Projektowania
Laboratorium Podstaw Informatyki
Dodatkowe nazwy, czy też dowiązania stworzone poleceniemln, są często używane do
odwołania się do tego samego pliku z różnych katalogów. Plik w jednym katalogu może
być połączony i dostępny w innym katalogu. Załóżmy, że chcesz odwołać się do pliku
w katalogu home z wewnątrz innego katalogu. Możesz stworzyć łącznik z tego katalogu
do pliku w katalogu home. Aącznik jest w rzeczywistości inną nazwą pliku. Ponieważ
łącznik jest w innym katalogu, może mieć taką samą nazwę jak oryginalny plik.
Aby połączyć plik z katalogu home z innym katalogiem, użyj nazwy tego katalogu jako
drugiego argumentu polecenialn. W następnym przykładzie plik dzis z katalogu chris
jest łączony z katalogiem raporty. Polecenielslistuje plik dzis w obu katalogach chris
i raporty. W rzeczywistości istnieje tylko jedna kopia pliku dzis.
$ ln dzis raporty
$ ls
dzis raporty
$ ls raporty
dzis
$
Tak jak przy poleceniachcpczymv, możesz jako argument podać nazwę drugiego pliku
również poleceniuln. Po prostu umieść nową nazwę po nazwie katalogu, ddzielając ją
ukośnikiem. W następnym przykładzie plik dziś jest łączony z katalogiem raporty pod
nazwą sroda. Wciąż istnieje tylko jeden rzeczywisty plik, oryginalny plik o nazwie dzis
w katalogu chris. Jednak dzis jest łączony z katalogiem raporty pod nazwą sroda. W
katalogu raporty plik dzis przyjmuje nazwę sroda.
$ ln dzis raporty/sroda
$ Is
dzis raporty
$ ls raporty
sroda
$
Aby usunąć plik, musisz usunąć wszystkie jego dowiązania (łączniki). Nazwa pliku jest
w rzeczywistości uznawana za łącznik do pliku. Dlatego poleceniermusuwa łącznik
do pliku. Jeżeli masz kilka łączników do pliku i usuniesz tylko jeden z nich, pozostałe
pozostaną i możesz się przez nie odwoływać do pliku. Jeżeli usuniesz oryginalny łącznik
- oryginalną nazwę pliku, wszelkie dodatkowe łączniki będą działały równie dobrze. W
następnym przykładzie plik dzis jest usuwany poleceniemrm. Jednak istnieje łącznik do
tego pliku noszący nazwę pogoda. Do pliku można się więc odwołać przez nazwę pogoda.
$ ln dzis pogoda
$ rm dzis
$ cat pogoda
Burza dzis przeszla
i wyszlo slonce.
$
6
Instytut Sterowania i Inżynierii Systemów
Zakład Komputerowo Wspomaganego Projektowania
Laboratorium Podstaw Informatyki
2.1 Dowiązania symboliczne i sztywne
Linux oferuje tak zwane łączniki (dowiązania) symboliczne. Aączniki opisane do tej pory
są zwane łącznikami sztywnymi2. Mimo że łączniki sztywne zaspokoją większość Twoich
potrzeb, mają jedno poważne ograniczenie, wynikające z tego, że struktura plików Li-
nuxa może być fizycznie podzielona na tak zwane systemy plików. Plik z jednego systemu
plików nie może być połączony łącznikiem sztywnym z plikiem w innym systemie plików.
Jeżeli spróbujesz połączyć plik z katalogiem innego użytkownika, który jest zlokalizo-
wany w innym systemie plików, Twoje połączenie przez łącznik sztywny nie zadziała.
Aby pokonać to ograniczenie, musisz używać łączników symbolicznych. Aącznik sym-
boliczny przechowuje ścieżkę do pliku, z którym jest połączony. Nie jest to bezpośredni
łącznik sztywny, ale raczej informacja o tym, jak zlokalizować konkretny plik. Zamiast re-
jestrować inną nazwę dla tego samego pliku, jak to miało miejsce w przypadku łączników
sztywnych, łącznik symboliczny można sobie wyobrazić jako inny symbol oznaczający
ścieżkę do pliku. Jest to po prostu inny sposób zapisania ścieżki.
Dowiązanie symboliczne tworzysz poleceniemlnz opcją-s. W następnym przykładzie
użytkownik tworzy łącznik o nazwie lunch do pliku /home/george/listawarzyw.
$ ln -s lunch /home/george/listawarzyw
Jeżeli uzyskasz pełną informację o łączniku symbolicznym i jego pliku, zobaczysz, że
wyświetlana informacja różni się. W następnym przykładzie użytkownik listuje pełne
informacje dla plików lunch i /home/george/listawarzyw za pomocą polecenialsz opcją
-l. Pierwszy znak w wierszu oznacza typ pliku. Aącznik symboliczny ma własny typ
pliku reprezentowany przez literę l. Typem pliku lunch jest l, co wskazuje, że jest to
łącznik symboliczny, a nie zwykły plik. Liczba po słowie  group jest rozmiarem pliku.
Zwróć uwagę, że rozmiary różnią się. Rozmiar pliku lunch to jedynie 4 bajty. Jest tak
dlatego, że lunch jest tylko łącznikiem symbolicznym, czyli plikiem przechowującym
ścieżkę innego pliku - a ścieżka zajmuje kilka bajtów. Nie jest to bezpośredni łącznik
sztywny do pliku listawarzyw3.
$ ls lunch /home/george/listawarzyw
lrw-rw-r-- 1 chris group 4 Feb 14 10:30 lunch
-rw-rw-r-- l george group 793 Feb 14 10:30 listawarzyw
Aby usunąć plik, wystarczy usunąć jedynie jego łączniki sztywne. Jeżeli istnieją jakieś
pozostawione łączniki symboliczne, nie będą po prostu mogły dostać się do pliku. W
takim, przypadku łącznik symboliczny przechowuje ścieżkę do pliku, który już nie ist-
nieje4.
W odróżnieniu od łączników sztywnych, możesz używać łączników symbolicznych do
tworzenia łączników z katalogami. W istocie rzeczy możesz utworzyć inną nazwę, przez
którą możesz odwoływać się do katalogu. Jednak jeżeli używasz łączników symbolicz-
nych do nazw katalogów, pamiętaj, że poleceniepwdzawsze wyświetla aktualną nazwę
2
Dowiązania symboliczne są też często nazywane dowiązaniami miękkimi, a dowiązania sztywne -
twardymi.
3
W obecnych dystrybucjach Linuxa po wydaniu komendyls -l, po nazwie łącznika pojawia się->,
a po nim następuje nazwa pliku, na który wskazuje dowiązanie.
4
W obecnych dystrybucjach, po wydaniu polecenials -lnazwa nieistniejącego pliku docelowego jest
podświetlona na czerwono i  pulsuje .
7
Instytut Sterowania i Inżynierii Systemów
Zakład Komputerowo Wspomaganego Projektowania
Laboratorium Podstaw Informatyki
katalogu, a nie nazwę symboliczną.
W następnym przykładzie użytkownik łączy katalog dziekuje z łącznikiem symbolicznym
prezenty. Kiedy użytkownik użyje prezenty z poleceniemcd, zmieni katalog na dziekuje.
Poleceniepwdwyświetli ścieżkę dla katalogu dziekuje.
$ ln -s /home/chris/listy/dziekuje prezenty
$ cd prezenty
$ pwd
/home/chris/listy/dziekuje
$
3 Wyświetlanie informacji o pliku
Jak pokazano na rysunku 1, poleceniels -lwyświetla szczegółowe informacje o pliku.
Najpierw wyświetlane są prawa dostępu, za którymi następuje liczba łączników do-
wiązań), właściciel pliku, nazwa grupy, do której należy użytkownik, rozmiar pliku w
bajtach, data i czas ostatniej modyfikacji oraz nazwa pliku.
Na rysunku 1 typem pliku mojedane jest zwykły plik. Istnieje tylko jeden łącznik, z
Rysunek 1. Informacja o pliku wyświetlana przez polecenielsz opcją-l
czego wynika, że plik nie ma innych nazw, czyli dowiązań. Nazwą właściciela jest te-
xtitchris, a nazwą grupy pogoda. Istnieją prawdopodobnie inni użytkownicy należący
do grupy pogoda. Rozmiar pliku wynosi 207 bajtów. Ostatnio był on modyfikowany 20
lutego o 11:55. Nazwa pliku to mojedane.
Jeśli chcesz wyświetlić szczegółowe informacje o wszystkich plikach w katalogu, użyj
po prostu polecenials -lbez argumentów.
$ ls -l
-rw-r--r-- 1 chris pogoda 207 Feb 20 11:55 mojedane
-rw-rw-r-- l chris pogoda 568 Feb 14 10:30 dzis
-rw-rw-r-- l chris pogoda 308 Feb 17 12:40 poniedzialek
8
Instytut Sterowania i Inżynierii Systemów
Zakład Komputerowo Wspomaganego Projektowania
Laboratorium Podstaw Informatyki
4 Prawa dostępu do plików i katalogów
Każdy plik i katalog w Linuxie posiada zestaw praw dostępu określających, kto ma do-
stęp do pliku i jakie ma prawa. Możesz ustawić prawa w jeden z trzech sposobów, aby
ograniczyć dostęp. Możesz ograniczyć dostęp dla samego siebie. Możesz pozwolić użyt-
kownikom wcześniej stworzonej grupy na dostęp albo możesz pozwolić wszystkim użyt-
kownikom systemu na dostęp. Możesz również kontrolować sposób, w jaki udostępniane
są pliki lub katalogi. Plik i katalog może mieć prawo do czytania, pisania i wykonywania.
Kiedy plik jest tworzony, automatycznie nadawane są mu prawa czytania i pisania dla
właściciela, co pozwala na wyświetlanie i modyfikację pliku. Możesz zmienić te prawa
na dowolne inne, jakie sobie życzysz. Plik może mieć jedynie prawo czytania, co zapo-
biega modyfikacjom. Plik może mieć również prawo wykonywania, co pozwala na jego
wykonanie jako programu.
Istnieją trzy różne kategorie użytkowników, którzy mogą mieć dostęp do pliku lub ka-
talogu: właściciel, grupa i pozostali. Właściciel jest użytkownikiem, który stworzył plik.
Jesteś właścicielem każdego pliku, który stworzysz. Możesz również nadać prawo dostępu
do pliku swojej grupie. Na przykład wszyscy przypisani do danej klasy czy projektu mogą
być połączeni w grupę przez administratora systemu. Jest możliwe, aby użytkownik dał
dostęp do pliku pozostałym członkom grupy. Ostatecznie możesz dać dostęp do pliku
wszystkim innym użytkownikom systemu. W takim przypadku każdy użytkownik Two-
jego systemu ma dostęp do jednego z Twoich plików lub katalogów. W tym znaczeniu
każdy użytkownik systemu należy do kategorii pozostałych użytkowników.
Każda kategoria ma swój zestaw praw czytania, pisania i wykonywania. Pierwszy zestaw
kontroluje dostęp właściciela do swoich własnych plików. Drugi zestaw kontroluje dostęp
grupy do plików użytkownika. Trzeci zestaw kontroluje dostęp wszystkich pozostałych
użytkowników. Trzy zestawy praw czytania, pisania i wykonywania dla trzech kategorii
osób - właściciela, grupy i pozostałych, tworzą dziewięć rodzajów praw dostępu.
Polecenielsz opcją-lwyświetla szczegółowe informacje o pliku, włącznie z prawami
dostępu. W następnym przykładzie pierwszy zestaw znaków od lewej jest listą praw
dostępu, jaka została ustalona dla pliku mojedane.
$ ls -l mojedane
-rw-r-r-- l chris pogoda 207 Feb 20 11:55 mojedane
Brak prawa jest oznaczany przez minus. Prawo odczytu jest oznaczane literką r, zapisu
w, a wykonania x. Zwróć uwagę, że istnieje dziesięć pozycji. Pierwszy znak oznacza ro-
dzaj pliku. Katalog może być uznany za swego rodzaju plik. Jeżeli pierwszym znakiem
jest minus, wylistowano plik. Jeżeli jest to d, znaczy że wylistowano informacje o kata-
logu.
Następnych dziewięć znaków jest ułożonych zgodnie z różnymi kategoriami użytkow-
ników. Pierwszy zestaw trzech znaków to prawa dostępu do pliku dla jego właściciela.
Drugi zestaw trzech znaków to zestaw praw dostępu dla grupy. Ostatni zestaw trzech
znaków stanowi prawa dostępu do pliku dla pozostałych użytkowników. Plik mojedane
ma prawa odczytu i zapisu dla właściciela, prawo odczytu dla grupy i prawo odczytu dla
pozostałych użytkowników. Oznacza to, że chociaż każdy członek grupy i każdy użyt-
kownik systemu może odczytać plik, to zmodyfikować go może jedynie właściciel.
Możesz użyć poleceniachmoddo stworzenia innych praw dostępu. Polecenie textttchmod
wymaga podania dwóch list jako argumentów - listy zmian praw dostępu i listy nazw
9
Instytut Sterowania i Inżynierii Systemów
Zakład Komputerowo Wspomaganego Projektowania
Laboratorium Podstaw Informatyki
plików. Możesz określić listę praw dostępu na dwa różne sposoby. Jeden ze sposobów
wykorzystuje symbole i jest zwany metodą symboliczną. Drugi sposób wykorzystuje tak
zwaną maskę binarną i często jest nazywany metodą bezwzględną. Z tych dwóch metoda
symboliczna jest bardziej intuicyjna.
4.1 Nadawanie praw dostępu
Metoda symboliczna wykorzystuje znaki r, w oraz x odpowiednio dla praw odczytu, za-
pisu i wykonania. Każde z tych praw może być dodane lub usunięte. Symbolem dodania
prawa jest znak+, symbolem zabrania prawa jest znak-. W następnym przykładzie
poleceniechmoddodaje prawo wykonywania i usuwa prawo zapisu dla pliku mojedane.
Prawo odczytu nie jest zmieniane.
$ chmod +x-w mojedane
Istnieją również symbole praw oznaczające każdą z kategorii użytkowników. Kategorie
właściciela, grupy i pozostałych są reprezentowane odpowiednio przez znaki u (user),
g (group) oraz o (others). Symbol kategorii jest umieszczany przed prawami odczytu,
zapisu lub wykonania. Jeżeli nie użyto symbolu kategorii, przyjmowane są wszystkie
kategorie, a określone prawa dostępu są nadawane użytkownikowi, grupie i pozostałym
użytkownikom.
W następnym przykładzie pierwsze poleceniechmodnadaje prawa odczytu i zapisu dla
grupy. Drugie poleceniechmodnadaje prawo odczytu dla pozostałych użytkowników.
Zwróć uwagę, że nie umieszczono spacji między opisem praw i kategorią. Lista praw
dostępu jest po prostu jednym długim ciągiem znaków bez spacji.
$ ls -l mojedane
-rw------ l chris pogoda 207 Feb 20 11:55 mojedane
$ chmod g+rw mojedane
$ ls -l mojedane
-rw-rw---- l chris pogoda 207 Feb 20 11:55 mojedane
$ chmod o+r mojedane
$ ls -l mojedane
-rw-rw-r-- l chris pogoda 207 Feb 20 11:55 mojedane
Użytkownik może usuwać prawa dostępu równie dobrze, jak je nadawać. W następnym
przykładzie prawo odczytu jest nadawane pozostałym użytkownikom, ale zabierane jest
im prawo zapisu i wykonywania.
$ ls -l mojedane
-rwxr-xr-x l chris pogoda 207 Feb 20 11:55 mojedane
$ chmod o+r-wx mojedane
$ ls -l mojedane
-rwxr-xr-- l chris pogoda 207 Feb 20 11:55 mojedane
Istnieje jeszcze inny symbol praw dostępu a (all), który oznacza wszystkie kategorie.
Symbol a jest domyślny. W następnym przykładzie oba polecenia są równoznaczne.
Prawo odczytu jest ustawiane wprost poprzez symbol a, oznaczający wszystkie rodzaje
użytkowników: właściciela, grupę i pozostałych.
10
Instytut Sterowania i Inżynierii Systemów
Zakład Komputerowo Wspomaganego Projektowania
Laboratorium Podstaw Informatyki
$ chmod a+r mojedane
$ chmod +r mojedane
Jedną z bardziej powszechnych operacji nadawania praw jest nadawanie prawa wykony-
wania dla pliku. Jest to robione często w przypadku tworzenia skryptów. Prawo wyko-
nania oznacza, że plik zawierający polecenia do wykonania może być uruchomiony przez
system. W następnym przykładzie plikowi lsc5 zostaje nadane prawo wykonywania, a
następnie jest on wykonywany.
$ chmod u+x lsc
$ lsc
main.c lib.c
$
4.2 Prawa bezwzględne
Zamiast symboli praw dostępu, wielu użytkowników stwierdza, że wygodniej korzystać
z metody bezwzględnej. Metoda bezwzględna zmienia wszystkie prawa jednocześnie, za-
miast określania jednego czy drugiego. Wykorzystuje ona maskę binarną zawierającą
wszystkie prawa każdej kategorii. Trzy kategorie, każda z trzema prawami, są zgodne
z formatem ósemkowym. Liczby ósemkowe mają podstawę osiem. Kiedy przetłumaczy
się je na liczbę dwójkową, każda cyfra ósemkowa staje się trzema cyframi dwójkowymi.
Liczba binarna składa się z cyfr O lub l. Trzy cyfry ósemkowe w liczbie tłumaczone są
na trzy zestawy po trzy cyfry dwójkowe, co daje dziewięć cyfr, czyli dokładnie liczbę
praw dla pliku.
Możesz używać cyfr ósemkowych jako maski do nadawania praw dostępu do pliku. Każda
cyfra ósemkowa dotyczy jednej kategorii użytkowników. Możesz traktować cyfry odpo-
wiadające kategoriom od lewej do prawej, a więc począwszy od kategorii właściciela.
Pierwsza cyfra ósemkowa dotyczy kategorii właściciela, druga grupy, a trzecia kategorii
pozostałych użytkowników.
Cyfra ósemkowa, jaką wybierzesz, określi prawa odczytu, zapisu i wykonania dla każdej
kategorii. W tym momencie powinieneś wiedzieć, jak cyfry ósemkowe tłumaczy się na
odpowiedniki dwójkowe. Poniższa tabela pokazuje, jak różne cyfry ósemkowe od 0 do 7
tłumaczą się na ich trzycyfrowe odpowiedniki dwójkowe. Cyfry ósemkowe najpierw są
tłumaczone do ich formy dwójkowej, a następnie każda z tych trzech cyfr dwójkowych
jest używana do nadania prawa odczytu, zapisu lub wykonania. Każda cyfra dwójkowa
jest następnie dopasowywana do odpowiednich praw dostępu, znów przechodząc od le-
wej do prawej. Jeżeli cyfra dwójkowa to 0, prawo dostępu jest wyłączone. Jeżeli cyfra
dwójkowa to l, prawo dostępu jest włączone. Pierwsza cyfra dwójkowa nadaje lub za-
biera prawo odczytu, druga prawo zapisu, a trzecia prawo wykonywania. Na przykład
cyfra ósemkowa 6 tłumaczona jest na liczbę dwójkową 110. Spowoduje to ustawienie
praw odczytu i zapisu oraz zabranie prawa wykonywania.
Kiedy pracujesz z maskami binarnymi, musisz określić trzy liczby dla wszystkich trzech
kategorii oraz ich prawa. Jest to bardziej uniwersalne, niż korzystanie z symboli praw
dostępu. Aby ustawić prawo wykonania i zabrać prawo zapisu oraz zachować nie zmie-
nione prawo odczytu do pliku mojedane dla właściciela, musisz użyć cyfry ósemkowej 5
5
W przykładzie, skrypt lsc zawiera polecenie listowania plików z rozszerzeniem .c, czylils *.c.
11
Instytut Sterowania i Inżynierii Systemów
Zakład Komputerowo Wspomaganego Projektowania
Laboratorium Podstaw Informatyki
Ósemkowo Dwójkowo Prawa
0 000 ---
1 001 --x
2 010 -w-
3 011 -wx
4 100 r--
5 101 r-x
6 110 rw-
7 111 rwx
Tablica 1. Maski bezwzględne
(101). W tym samym czasie możesz określić cyfry dla grupy i pozostałych użytkowników.
Jeżeli tym kategoriom chcesz pozostawić prawo odczytu, potrzebujesz cyfry ósemkowej 4
dla każdej kategorii (100). Daje Ci to trzycyfrową liczbę ósemkową 544, która tłumaczy
się na liczby dwójkowe 101 100 100.
$ chmod 544 mojedane
$ ls -l mojedane
-r-xr--r-- l chris pogoda 207 Feb 20 11:55 mojedane
Zamiast pracowicie dokonywać konwersji między formatami ósemkowym i dwójkowym
w celu stwierdzenia, jakiej liczby użyć, jest prostszy sposób. Prawo odczytu (r), zapisu
(w) czy wykonywania (x ) mogą być powiązane odpowiednio z cyframi 4, 2 i l. Aby
stwierdzić, jakiej liczby ósemkowej musisz użyć, by określić dane prawa dla kategorii, po
prostu zsumuj odpowiednie cyfry dla praw, jakie chcesz nadać. Jeżeli chcesz dać danej
kategorii prawo odczytu i zapisu, po prostu zsumuj 4 (odczyt) i 2 (zapis), co da ci 6.
Jest to Twoja liczba ósemkowa. Aby nadać danej kategorii prawo odczytu i wykonania,
po prostu zsumuj 4 (odczyt) i l (wykonanie), co da ci 5. Aby ustawić wszystkie prawa,
musisz zsumować 4 (odczyt), 2 (zapis) i l (wykonanie), co da Ci 7, a to z kolei jest
równoważne dwójkowej liczbie 111.
Jedną z najczęstszych przyczyn używania maski binarnej jest nadawanie prawa wyko-
nania. Pamiętaj, że możesz tworzyć pliki zawierające polecenia Linuxa. Takie pliki są
nazywane skryptami powłoki. Załóżmy, że właśnie zakończyłeś tworzenie skryptu i mu-
sisz nadać mu prawa do wykonywania, aby go uruchomić. Chcesz również zachować
prawa odczytu i zapisu, ale zabrać wszystkie prawa grupie i pozostałym użytkownikom.
Cyfra ósemkowa 7 (111) spowoduje nadanie wszystkich trzech praw. Użycie 0 dla grupy
i pozostałych użytkowników spowoduje zabranie im dostępu.
$ chmod 700 mojprogram
Jeżeli chcesz, aby inni mogli wykonywać i odczytywać plik, ale nie mogli go zmieniać,
możesz ustawić prawa odczytu i wykonywania, a wyłączyć prawo zapisu, używając cyfry
5 (101). W takim przypadku użyłbyś liczby 755, mającej odpowiednik dwójkowy 111
101 101.
$ chmod 755 mojprogram
12
Instytut Sterowania i Inżynierii Systemów
Zakład Komputerowo Wspomaganego Projektowania
Laboratorium Podstaw Informatyki
4.3 Prawa dostępu do katalogów
Możesz również nadawać prawa dostępu do katalogów. Prawo odczytu nadane katalogowi
pozwala na wylistowanie plików z katalogu. Prawo wykonywania pozwala na przejście
do tego katalogu. Prawo zapisu pozwala użytkownikowi na tworzenie i usuwanie jego
własnych plików w takim katalogu. Jeżeli dasz innym użytkownikom prawo zapisu w
katalogu, mogą oni dodawać swoje pliki do tegoż katalogu. Kiedy tworzysz katalog, au-
tomatycznie nadawane jest mu prawo odczytu, zapisu i wykonywania dla właściciela.
Możesz listować pliki w katalogu, przechodzić do niego i tworzyć w nim pliki.
Podobnie jak pliki, katalogi mają zestaw praw dla właściciela, grupy i wszystkich pozo-
stałych użytkowników. Często możesz chcieć pozwolić na listowanie i przechodzenie do
jednego z Twoich katalogów, ale nie chcesz, by inni mogli tworzyć w nich pliki. W takim
przypadku musisz nadać prawa odczytu i wykonania, ale nie nadawać prawa zapisu.
Pozwoli to użytkownikom na przechodzenie do tego katalogu i listowanie plików, ale nie
na tworzenie nowych plików, czy też kopiowanie ich własnych plików do tego katalogu.
W następnym przykładzie ustawiane jest prawo odczytu i wykonania dla grupy dla ka-
talogu dziekuje, ale zabierane jest prawo zapisu. Członkowie grupy mogą wchodzić do
katalogu dziekuje i listować pliki w nim zawarte, ale nie mogą tworzyć żadnych nowych
plików.
$ chmod g+rx-w listy/dziekuje
Tak jak w przypadku plików, tak i w przypadku katalogów możesz nadawać prawa,
używając liczb ósemkowych. Aby nadać te same prawa co w poprzednim przykładzie,
możesz użyć liczby ósemkowej 750, której dwójkowym odpowiednikiem jest 111 101 000.
$ chmod 750 listy/dziekuje
Jak wiesz, polecenielsz opcją-lpokazuje wszystkie pliki w katalogu. Aby wylistować
jedynie informacje o samym katalogu, dodajesz modyfikatord. W następnym przykładzie
poleceniels -ldwyświetla informacje o katalogu dziekuje. Zwróć uwagę, że pierwszy
znak w prawach dostępu tod, co oznacza katalog.
$ ls -ld dziekuje
drwxr-x 2 chris 512 Feb 10 04:30 dziekuje
Jeżeli masz pliki, do których chcesz nadać dostęp innym użytkownikom, nie wystarczy
ustawić praw jedynie dla tych plików, ale również musisz się upewnić, że ustawiłeś po-
prawne prawa dla katalogu, w którym znajdują się pliki. Inny użytkownik, aby dostać
się do Twojego pliku, musi najpierw dostać się do katalogu. To samo dotyczy katalogów
nadrzędnych. Mimo że katalog może mieć prawa udostępniające go innym, jego katalog
nadrzędny może tego zabraniać i wtedy katalog nie jest dostępny. W związku z tym
musisz zwrócić uwagę na swoje drzewo katalogów. Aby udostępnić katalog, wszystkie
katalogi w danym drzewie katalogów muszą być również dostępne dla użytkownika.
Na rysunku 2 użytkownik chce udostępnić katalog dziekuje wszystkim użytkownikom.
Aby tak się stało, wszyscy użytkownicy muszą mieć dostęp do katalogów chris i te-
xtitlisty. Można to zrobić przez nadanie prawa wykonywania dla kategorii pozostałych
użytkowników tym katalogom. Zwróć uwagę, że musi być ustawione jedynie prawo wy-
konywania, a nie prawo zapisu czy odczytu. Pozostali użytkownicy nie będą mieli prawa
do listowania plików lub dodawania własnych w katalogach chris i listy. Mogą jedynie
13
Instytut Sterowania i Inżynierii Systemów
Zakład Komputerowo Wspomaganego Projektowania
Laboratorium Podstaw Informatyki
przejść do tych katalogów lub odwoływać się do ich podkatalogów.
Rysunek 2. Udostępnianie katalogu innym użytkownikom
4.4 Zmienianie właściciela i grupy pliku
Mimo że inni użytkownicy mogą mieć dostęp do pliku, jedynie jego właściciel może
zmienić jego prawa dostępu. Jeżeli jednak chcesz dać innym użytkownikom kontrolę nad
prawami dostępu do jednego z Twoich plików, możesz zmienić właściciela tego pliku na
innego użytkownika. Poleceniechownprzekazuje kontrolę nad plikiem innemu użytkow-
nikowi. Poleceniechownprzyjmuje jako pierwszy argument nazwę innego użytkownika.
Za nazwą użytkownika możesz umieścić listę plików, nad którymi przekazujesz kontrolę.
W następnym przykładzie użytkownik daje kontrolę nad plikiem mojedane użytkowni-
kowi Robert.
$ ls -l mojedane
-rw-rr-- l chris pogoda 207 Feb 20 11:55 mojedane
$ chown robert mojedane
$ ls -l mojedane
-rw-rr-- l robert pogoda 207 Feb 20 11:55 mojedane
Możesz również, jeśli chcesz, zmienić grupę pliku za pomocą poleceniachgrp. Polece-
niechgrpprzyjmuje za pierwszy argument nazwę nowej grupy dla pliku lub plików.
Za nazwą nowej grupy następuje lista plików, jakich grupa ma zostać zmieniona. W
następnym przykładzie użytkownik zmienia grupę plików dzis i weekend na prognoza.
Poleceniels -lpokazuje zmianę grupy.
$ chgrp prognoza dzis weekend
$ ls -l
14
Instytut Sterowania i Inżynierii Systemów
Zakład Komputerowo Wspomaganego Projektowania
Laboratorium Podstaw Informatyki
-rw-rr-- l chris pogoda 207 Feb 20 11:55 mojedane
-rw-rw-r-- l chris prognoza 568 Feb 14 10:30 dzis
-rw-rw-r-- l chris prognoza 308 Feb 17 12:40 weekend
Za pomocą poleceniachownmożna również zmienić jednocześnie użytkownika i grupę,
tak jak pokazuje to następny przykład.
$ ls -l mojedane
-rw-rr-- l chris studenci 207 Feb 20 11:55 mojedane
$ chmod robert:pracownicy mojedane
$ ls -l mojedane
-rw-rr-- l robert pracownicy 207 Feb 20 11:55 mojedane
5 Systemy plików
Mimo że wszystkie pliki w Twoim systemie Linux są połączone w jedno drzewo katalo-
gowe, same pliki są umieszczone na urządzeniach pamięciowych, takich jak dyski twarde
czy CD-ROM-y. Pliki Linuxa na poszczególnych urządzeniach są zorganizowane w po-
staci systemów plików. Twoje linuxowe drzewo katalogów może zawierać kilka systemów
plików, każdy z odrębnego urządzenia pamięciowego. Same pliki są ułożone w jednym
ciągłym drzewie katalogów, począwszy od katalogu korzenia. Mimo że korzeń może być
umieszczony w systemie plików na partycji twardego dysku, będzie ścieżką do plików
umieszczonych w systemie plików CD-ROM-u.
Pliki w systemie plików pozostają oddzielone od Twojego drzewa katalogowego, dopóki
nie podłączysz ich w szczególny sposób. System plików ma pliki ułożone w swoim wła-
snym drzewie katalogowym. Możesz traktować je jako poddrzewo, które musi być pod-
łączone do głównego drzewa katalogów. Na przykład dyskietka z plikami Linuxa będzie
miała własne drzewo katalogów. Musisz podłączyć to poddrzewo do głównego drzewa
znajdującego się na partycji dysku twardego. Dopóki nie zostanie ono podłączone, nie
będziesz mógł dostać się do plików na dyskietce.
Podłączanie systemu plików z urządzenia pamięciowego do Twojego głównego drzewa
katalogów jest zwane montowaniem urządzenia. Montujesz urządzenie, wydając pole-
ceniemount. Aby dostać się do plików na CD-ROM-ie, najpierw musisz zamontować
CD-ROM. Operacja montowania podłączy drzewo katalogów urządzenia pamięciowego
do katalogu, który określisz. Następnie możesz przejść do tego katalogu i skorzystać z
plików. Montowanie systemu plików może być wyko- nywane jedynie przez użytkownika
root. Jest to zadanie administracyjne i nie może być wykonane przez zwykłego użytkow-
nika.
Aby system plików był dostępny, musi zostać zamontowany. Nawet system plików na
partycji Twojego dysku twardego musi być zamontowany poleceniemmount. Kiedy in-
stalujesz system Linux i tworzysz partycję Linuxa na dysku twardym, Twój system jest
automatycznie konfigurowany tak, by montować główny system plików w czasie uru-
chamiania systemu. Twój system będzie również automatycznie montował CD-ROM,
jeżeli jest w napędzie w czasie uruchamiania systemu. Jednak już dyskietki muszą być
montowane ręcznie.
Jeżeli chcesz zamienić już zamontowany system plików na inny, najpierw musisz odmon-
tować już zamontowany. Powiedzmy, że masz zamontowaną dyskietkę, a teraz chcesz ją
15
Instytut Sterowania i Inżynierii Systemów
Zakład Komputerowo Wspomaganego Projektowania
Laboratorium Podstaw Informatyki
wyjąć i włożyć inną. Musisz odmontować tę dyskietkę przed włożeniem i zamontowa-
niem następnej. System plików odmontowujesz poleceniemumount. Polecenieumount
przyjmuje jako argumenty nazwę urządzenia i katalog, gdzie było ono zamontowane.
Aby stwierdzić, ile masz wolnego miejsca w danym systemie plików, możesz użyć po-
leceniadf. Pokaże ono systemy plików, czyli ich nazwy, zajmowane miejsce i miejsce
montowania.
$ df
Filesystems 1024-blocks Used Available Capacity Mounted on
/dev/hda3 297635 169499 112764 60% /
/dev/hdal 205380 182320 23060 89% /mnt/dos
/dev/hdc 637986 637986 0 100% /mnt/cdrom
5.1 Montowanie i formatowanie dyskietki
Alternatywnie możesz odwoływać się bezpośrednio do urządzenia i nazw katalogów,
kiedy je montujesz lub odmontowujesz. Nazwą urządzenia napędu dyskietek jest fd0,
umieszczona w katalogu /dev. Tak więc /dev/fd0 odnosi się do napędu dyskietek. Zwróć
uwagę na cyfrę 0 pofd. Jeżeli masz więcej niż jeden napęd dyskietek, będą one oznaczane
jako fd1, fd2 i tak dalej. Dyskietkę możesz zamontować do dowolnego katalogu, jednak
dystrybucjach Linuxa używają najczęściej dla dyskietek katalogu /mnt/floppy. Następny
przykład pokazuje montowanie dyskietki w katalogu /mnt/floppy.
# mount /dev/fd0 /mnt/floppy
Pamiętaj, że montujesz konkretną dyskietkę, a nie napęd. Nie możesz po prostu usu-
nąć dyskietki i włożyć następnej. Poleceniemountpodłącza pliki do Twojego głównego
drzewa katalogów, a Twój system spodziewa się, że znajdzie te pliki na dyskietce umiesz-
czonej w napędzie. Jeżeli zabierzesz dyskietkę i włożysz inną, dostaniesz komunikat o
błędzie, jeżeli będziesz próbował dostać się do plików z wyjętej dyskietki.
Aby zmienić dyskietkę, musisz najpierw odmontować dyskietkę, która już jest w napę-
dzie. Następnie po włożeniu nowej dyskietki musisz ją zamontować. Aby to zrobić, użyj
poleceniaumount. Zwróć uwagę na to, że nie ma litery n w nazwie poleceniaumount.
# umount /dev/fd0 /mnt/floppy
Możesz teraz usunąć dyskietkę z napędu i włożyć nową. Następnie wydaj polecenie mon-
towania.
Kiedy zamykasz system, wszystkie dyski, jakie miałeś zamontowane, będą automatycz-
nie odmontowane. Nie musisz odmontowywać ich ręcznie.
Zanim dyskietka może być zamontowana, musi zostać sformatowana, tak by zawierała
linuxowy system plików. Formatowanie dyskietki wykonuje się poleceniemmkfs. Jako
argumenty przyjmuje ono nazwę urządzenia i liczbę bloków pamięci na dyskietce. Przy
1000 bajtach na blok, 1400 bloków formatuje dyskietkę na 1,44MB. Nie musisz mon-
tować czystej dyskietki, po prostu umieść ją w napędzie i wprowadz poleceniemkfsz
argumentami. Poniższy przykład formatuje dyskietkę 1,44MB.
# mkfs /dev/fd0 1400
16
Instytut Sterowania i Inżynierii Systemów
Zakład Komputerowo Wspomaganego Projektowania
Laboratorium Podstaw Informatyki
5.2 Montowanie płyty CD-ROM
Możesz również odwołać się wprost do płyt CD-ROM i napędów CD-ROM. W różnych
dystrybucjach Linuxa napęd CD-ROM jest różnie oznaczany. Może więc to być cd0
lub na przykład cdrom0. Następujący przykład montuje dysk umieszczony w napędzie
CD-ROM do katalogu /mnt/cdrom.
# mount /dev/cdrom0 /mnt/cdrom
Podobnie jak w przypadku dyskietki, pamiętaj, że montujesz konkretną płytę CD-ROM,
a nie napęd. Nie możesz usunąć płyty CD-ROM i włożyć inną. Poleceniemountdołącza
pliki z płyty do głównego drzewa katalogowego i Twój system spodziewa się znalezć je
na płycie umieszczonej w napędzie. Aby zmienić dysk, musisz odmontować już zamon-
towaną płytę CD-ROM z napędu, a następnie, po włożeniu kolejnej płyty, zamontować
ją ponownie.
Systemy plików mogą być skonfigurowane przez wpisy w pliku /etc/fstab. Twoja dys-
trybucja Linuxa ma skonfigurowany wpis dla CD-ROM w taki sposób, by łatwiejsze
było montowanie i odmontowywanie płyt. Katalog /mnt/cdrom został zarezerwowany
dla systemów plików CD-ROM. Aby zamontować CD-ROM, wszystko co musisz zrobić,
to wprowadzić poleceniemounti nazwę katalogu /mnt/cdrom. Nie potrzebujesz określać
nazwy urządzenia. Następnie przejdz do katalogu /mnt/cdrom, aby dostać się do plików
umieszczonych na płycie CD.
# mount /mnt/cdrom
5.3 Montowanie partycji dysku twardego
Możesz montować zarówno partycje Linuxa, jak i MS-DOS za pomocą poleceniamount.
Jednak bardziej praktyczne jest montowanie ich automatycznie za pomocą pliku te-
xtit/etc/fstab. Partycje systemu Linux umieszczone na dysku twardym, które stworzy-
łeś podczas instalacji, są już automatycznie zamontowane. Aby zamontować partycje
Linuxa umieszczoną na dysku twardym, wprowadzasz poleceniemountz nazwą urzą-
dzenia, na którym znajduje się partycja i katalogiem, w którym chcesz ją zamontować.
Do stwierdzenia nazwy urządzenia możesz użyć poleceniadf, wyświetlającego partycje
Twojego dysku twardego. W następnym przykładzie montowana jest partycja /dev/hda4
Linuxa w katalogu /mnt.
# mount /dev/hda4 /mnt
Możesz również montować partycje MS-DOS-a, co daje bezpośredni dostęp do plików
na nich umieszczonych. Podobnie jak w przypadku partycji Linuxa, używasz polecenia
mount, z tym że musisz również określić rodzaj systemu plików jako MS-DOS. Możesz to
zrobić, używając opcji-ti typu msdos. W następnym przykładzie użytkownik montuje
partycje MS-DOS /dev/hda1 do struktury plików Linuxa w katalogu /mnt/dos. Kata-
log /mnt/dos jest powszechnie używany do montowania systemów plików MS-DOS, ale
oczywiście możesz je montować w dowolnym innym katalogu.
# mount -t msdos /dev/hdal /mnt/dos
17
Instytut Sterowania i Inżynierii Systemów
Zakład Komputerowo Wspomaganego Projektowania
Laboratorium Podstaw Informatyki
6 Kompresja i archiwizacja
6.1 Kompresja plików
Istnieje kilka powodów zmniejszania rozmiaru plików. Dwa najpowszechniejsze to oszczęd-
ność miejsca i - jeżeli przesyłasz plik przez sieć - oszczędność czasu. Program użytkowy
gzipjest programem kompresującym GNU używanym do kompresji i dekompresji pli-
ków. Aby skompresować plik, wprowadzasz poleceniegzipi nazwę pliku. Powoduje to
zastąpienie pliku jego skompresowaną wersją z rozszerzeniem .gz.
$ gzip mojedane
$ ls
mojedane.gz
Do dekompresji plikugzipużywasz również poleceniagzipz opcją-dlub polecenia
gunzip. Polecenia te zdekompresują skompresowany plik z rozszerzeniem .gz i zastąpią
go zdekompresowaną wersją o tej samej nazwie podstawowej, ale bez rozszerzenia .gz.
Kiedy używaszgunzip, nie musisz nawet wpisywać tetxit.gz - poleceniagunzipigzip
-dprzyjmą je jako domyślne.
$ gunzip mojadane.gz
$ ls
mojedane
Załóżmy, że chcesz wyświetlić lub wydrukować zawartość skompresowanego pliku bez
wcześniejszej jego dekompresji. Poleceniezcatutworzy rozkompresowaną wersję pliku i
wyśle ją na standardowe wyjście. Możesz następnie przekierować to wyjście na drukarkę
lub wyświetlić za pomocą takiego programu jakmore. Oryginalny plik pozostanie w
stanie nierozkompresowanym.
$ zcat mojedane.gz | more
6.2 Archiwa w plikach i na urządzeniach
Polecenietartworzy archiwa plików i katalogów. Za pomocą tar możesz archiwizować
określone pliki, uaktualniać je w archiwum i dodawać nowe pliki do archiwum, jeżeli
chcesz. Możesz nawet archiwizować całe katalogi wraz ze wszystkimi ich plikami i pod-
katalogami, a następnie odtworzyć to wszystko z archiwum.
Programtaroryginalnie został stworzony do robienia archiwów na taśmach. Termin
taroznacza taśmowe archiwum (tape archive). Możesz tworzyć archiwa na dowolnym
urządzeniu, takim jak dyskietka, lub możesz tworzyć plik archiwum na dysku twardym.
Polecenietarjest idealnym narzędziem do robienia kopii zapasowych plików lub łącze-
nia kilku plików w jeden plik w celu przesłania przez sieć.
W Linuxietarjest często używane do tworzenia archiwów na urządzeniach lub w pli-
kach. Możesz archiwizować pliki bezpośrednio na określone urządzenie lub do pliku,
używając opcjifz nazwą urządzenia lub pliku. Urządzenie lub nazwa pliku są często
zwane archiwum. Kiedy tworzysz plik archiwum tar, do nazwy pliku jest zwykle doda-
wane rozszerzenie .tar. Jest to zgodne z konwencją, ale nie jest wymagane.
Aby stworzyć archiwum, użyj opcjic. Połączenie opcjiczfstworzy archiwum w pliku
lub na urządzeniu. Wprowadzasz tę opcję przed i zaraz obokf. Zwróć uwagę, że nie
18
Instytut Sterowania i Inżynierii Systemów
Zakład Komputerowo Wspomaganego Projektowania
Laboratorium Podstaw Informatyki
używa się poprzedzającego znaku-przed opcją poleceniatar. W następnym przykła-
dzie katalog mojkatalog i wszystkie jego podkatalogi są zachowywane w pliku mojear-
chiwum.tar.
$ tar cf mojearchiwum.tar mojkatalog
Użytkownik może pózniej odzyskać katalogi z taśmy, używając opcjix. Opcjaxfwydo-
bywa pliki z pliku archiwum lub z urządzenia. Operacja wydobywania plików przeztar
utworzy wszystkie podkatalogi. W następnym przykładzie opcjaxfpowoduje, żetar
wydobywa wszystkie pliki i podkatalogi z pliku mojearchiwum.tar.
$ tar xf mojearchiwum.tar
Aby dodać pliki do już istniejącego archiwum, używasz opcjir. Opcjardołącza pliki
do archiwum. W następnym przykładzie użytkownik dołącza pliki z katalogu listy do
archiwum mojearchiwum.tar.
$ tar rf mojearchiwum.tar listy
Jeżeli potrzebujesz zmienić jakiekolwiek pliki w katalogu, który już zarchiwizowałeś,
możesz użyć opcjiuw celu przekazania poleceniutar, aby uaktualniło archiwum o
zmodyfikowane pliki. Polecenietarporównuje czas ostatniego uaktualnienia dla każ-
dego zarchiwizowanego pliku z plikami w katalogu użytkownika i kopiuje do archiwum
te pliki, które zostały zmienione od ostatniej archiwizacji. Wszystkie nowo utworzone
pliki w tych katalogach będą również dodane do archiwum.
W następnym przykładzie użytkownik uaktualnia plik mojearchiwum.tar o ostatnio zmo-
dyfikowane lub utworzone pliki w katalogu mojkatalog.
$ tar uf mojearchiwuin.tar mojkatalog
Jeżeli potrzebujesz zobaczyć, jakie pliki są umieszczone w archiwum, możesz użyć po-
leceniatarz opcjąt. W następnym przykładzie pokazano wszystkie pliki zachowane w
archiwum mojearchiwum.tar.
$ tar tf mojearchiwum.tar
Aby zrobić kopię zapasową plików na konkretnym urządzeniu, określasz urządzenie jako
archiwum. W następnym przykładzie użytkownik tworzy archiwum na dyskietce umiesz-
czonej w napędzie /dev/fd0 i kopiuje na nią wszystkie pliki z katalogu mojkatalog.
$ tar cf /dev/fd0 mojkatalog
Operacja archiwizowania nie dokonuje kompresji archiwizowanych plików. Jeżeli chcesz
skompresować archiwizowane pliki, możesz przekazać poleceniutar, aby wywoływało
poleceniegzip, dokonujące kompresji. Opcja z poleceniatarnajpierw wykorzystagzip
do skompresowania plików, a dopiero potem je zarchiwizuje. Ta sama opcja z wywoła
poleceniegzipdo rozkompresowania plików w czasie ich wydobywania.
$ tar cfz mojearchiwum.tar mojkatalog
19
Instytut Sterowania i Inżynierii Systemów
Zakład Komputerowo Wspomaganego Projektowania
Laboratorium Podstaw Informatyki
Pamiętaj, że istnieje różnica pomiędzy kompresowaniem pojedynczych plików w archi-
wum i kompresowaniem całego archiwum. Często archiwum jest tworzone w celu prze-
słania kilku plików jednocześnie w postaci plikutar. Aby skrócić czas transmisji, ar-
chiwum powinno być jak najmniejsze. Możesz użyć programu kompresującegogzipna
pliku archiwum typutardo kompresji i zmniejszenia jego rozmiaru, a następnie przesłać
skompresowaną wersję. Osoba odbierająca plik może go zdekompresować, odtwarzając
pliktar. Za pomocą poleceniagzipwykonanego na pliku tar często otrzymujemy plik
o rozszerzeniu .tar.gz. Rozszerzenie .gz jest dodawane do pliku skompresowanego po-
leceniemgzip. W następnym przykładzie tworzona jest skompresowana wersja pliku
mojearchiwum.tar z użyciem tej samej nazwy z rozszerzeniem .gz.
$ gzip mojearchiwum.tar
$ ls
mojearchiwum.tar.gz
Niniejsze opracowanie powstało w oparciu o książkę Richarda Petersena: Arkana -
Linux
20


Wyszukiwarka

Podobne podstrony:
Linux System Plików
07 Linux System plików
Linux konserwacja Systemu Plikow
system plików linux
iCare Format Recovery naprawa systemu plikow
Linux O Systemie
Linux nazwy plików
system plikow
utk1 system plikow ext
Funkcje systemowe systemu plików
Systemy plików
2 linux system wielodostepny
Miernictwo i systemy pomiarowe II LABorat str 2
systemy plikow
systemy plików 12 10 2008

więcej podobnych podstron