Przypomnienie:
- Podstawowych poleceń z poprzednich zajęć
- Uzupełnienie tego co nie zostało zrobione na poprzednich zajęciach
Poznanie:
- Struktury katalogów systemowych
- Operacji na katalogach,
- Pojęcia pliku w systemie Unix,
- Informacji o plikach,
- Podstawowych operacji na plikach,
- Uprawnień w dostępie do plików,
- Wyszukiwania plików w systemie
Struktura katalogów.
Katalog jest strukturą, która umożliwia porządkowanie i grupowanie danych, jakie są
przechowywane na dysku komputera. Katalogi mają strukturę hierarchiczną – w każdym katalogu mogą być przechowywane zarówno pliki, jaki i katalogi niższych poziomów. W systemach UNIX wszystkie dostępne systemy plików postrzegane są przez użytkownika jako jedna struktura katalogów, której wierzchołkiem jest tzw. katalog główny, oznaczany symbolem /. Regułą jest także, że każdy użytkownik posiada tzw. katalog domowy, zwykle
jest to podkatalog katalogu /home, w którym użytkownik może przechowywać własne pliki.
/
|-- bin
|-- boot
|-- dev
|-- etc
|-- hom e
|-- lib
|-- lost+found
|-- m edia
|-- m nt
|-- opt
|-- proc
|-- root
|-- sbin
|-- srv
|-- sys
|-- tm p
|-- usr
`-- var
Przykładowa struktura katalogów systemu Unix
Najistotniejsze podkatalogi katalogu głównego:
● /bin – katalog zawierający programy niezbędne do uruchomienia systemu;
● /dev – katalog zawierający pliki specjalne, które reprezentują dostępne urządzenia;
● /etc – katalog z lokalnymi plikami konfiguracyjnymi systemu;
● /home – w tym katalog znajdują się podkatalogi domowe użytkowników systemu;
● /proc – wirtualny system plików, który dostarcza informacji o bieżących procesach w
systemie i jego jądrze;
● /root – zwyczajowo katalog domowy użytkownika root, czyli administratora systemu;
● /usr – katalog zawierający zestaw oprogramowania użytkowego dostępnego dla
użytkowników;
● /var – katalog ten zawiera pliki, które często zmieniają swoją zawartość i/lub rozmiar.
Informacja o katalogu bieżącym jest wyświetlana po wydaniu polecenia:
pwd
Jak wspomniano symbol / oznacza katalog główny, używa się także innych symboli dla
określenia wybranych katalogów:
● . – oznacza katalog bieżący,
● .. – oznacza katalog bezpośrednio nadrzędny;
● ~ – oznacza katalog domowy użytkownika.
Tak więc:
cd /etc – zmienia katalog bieżący na katalog /etc;
cd ~ – zmienia katalog bieżący na katalog domowy użytkownika
cd .. – zmienia katalog bieżący na katalog bezpośrednio nadrzędny.
Zawartość katalogu:
ls – wyświetla zawartość katalogu bieżącego;
ls -a – wyświetla zawartość katalogu bieżącego uwzględniając wszystkie pliki – tzn.
także te, których nazwa zaczyna się od znaku “.” (umownie są to pliki ukryte);
ls -al – wyświetla wszystkie pliki z katalogu bieżącego z uwzględnieniem tzw.
“długiego formatu”, czyli podając typ każdego obiektu w katalogu (pierwszy znak linii: d
– katalog, znak “-” – plik zwykły, l – dowiązanie), prawa dostępu, liczbę dowiązań,
właściciela, nazwę grupy, rozmiar (w bajtach), data ostatniej modyfikacji oraz nazwę
(Rysunek 3);
ls -al ~ – jak wyżej, przy czym wyświetlana jest zawartość katalogu domowego;
ls -al /etc – jak wyżej, ale wyświetlana jest zawartość katalogu /etc.
drwxrwxr-x 3 adam students 4096 lip 2 23:55 .
drwxr-xr-x 51 adam students 4096 lip 2 22:12 ..
drwxr-xr-x 9 adam students 4096 cze 30 10:30 abc
-rwxr-xr-x 1 adam students 1751 cze 30 11:32 plik.txt
Tworzenie katalogów
mkdir ./xyz – utworzenie katalogu xyz w katalogu bieżącym;
mkdir ../xyz – utworzenie katalogu xyz w katalogu bezpośrednio nadrzędnym.
● rmdir [przełączniki] nazwa_katalogu – usuwanie katalogów, np.:
rmdir ~/xyz – usunięcie katalogu xyz z katalogu domowego;
rmdir ./xyz – usunięcie katalogu xyz z katalogu bieżącego.
Dla poleceń rmdir i mkdir dostępny jest m.in. przełącznik -p, który pozwala
odpowiednio, usuwać i tworzyć struktury katalogów, np.:
rmdir -p abc/def/ghi – usunie katalogi ghi, def oraz abc, które tworzyły
hierarchię.
Prawa dostępu
W systemach UNIX dostęp do plików i katalogów zabezpieczony jest tzw. prawami dostępu, które regulują zasady na jakich użytkownicy mogą korzystać z tych zasobów. Wyróżnia się trzy rodzaje praw:
prawo odczytu – oznaczane r (ang. read),
prawo zapisu – oznaczane w (ang. write)
oraz prawo wykonania – oznaczane x (ang. execute).
Takie prawa są określane niezależnie dla: użytkownika, który jest właścicielem pliku lub katalogu (domyślnie właścicielem jest użytkownik, który utworzył dany plik lub katalog); użytkowników, którzy należą do tej samej grupy, do której należy plik lub katalog oraz dla pozostałych użytkowników.
Interpretacja praw dostępu jest następująca:
Czynność do wykonania Prawa do pliku Prawa do katalogu
Przeglądanie zawartości katalogu --- r--
Utworzenie pliku w katalogu --- -wx
Zmiana nazwy pliku w katalogu --- -wx
Usunięcie pliku z katalogu --- -wx
Odczytanie zawartości pliku r-- --x
Zapis do pliku -w- --x
Wykonanie pliku (np. skryptu) --x --x
-rwxr--r-x 2 adam students 4096 cze 23 13:32 abc.txt
Informacja o prawach wyświetlana jest według następującego schematu
Użytkownik (user)
Grupa (group)
) Inni użytkownicy (others)
r w x
Zatem dla pliku abc.txt dostępne są następujące prawa (znak ”–“ oznacza brak danego prawa):
dla właściciela dostępne są wszystkie prawa,
dla członków grupy students dostępne jest tylko prawo do odczytu,
a dla pozostałych użytkowników prawa odczytu i wykonywania.
Prawami dostępu można także operować stosując notację numeryczną, w której każde prawo ma przypisaną pewną wartość liczbową, i tak:
prawo odczytu – 4;
prawo zapisu – 2,
prawowykonywania – 1.
Tak więc, prawa zapisane numerycznie dla pliku abc.txt z powyższego przykładu miałyby następującą postać:
745 – 7 oznacza wszystkie prawa dla użytkownika (4 + 3 + 1),
4 oznacza prawo odczytu dla grupy,
a 5 oznacza praw odczytu i wykonywania (4 + 1) dla pozostałych użytkowników.
Operowanie prawami dostępu i określaniem prawa własności jest możliwe dzięki następującym poleceniom systemowym:
● chmod [przełączniki] uprawnienia nazwa_pliku_lub_katalogu – zmiana praw dostępu
wskazanych pierwszym argumentem wywołania dla pliku lub katalogu wskazanym drugim
argumentem wywołania:
W specyfikacji należy zatem wskazać:
dla kogo mają być zmienione prawe (u – właściciel, g – użytkownicy z tej samej grupy, o – inni użytkownicy, a – wszyscy),
rodzaj zmiany (+ – dodanie praw, - – odjęcie praw, = – ustalenie praw)
oraz prawa.
Przykładowe zlecenia z wykorzystaniem polecenia chmod:
chmod u+w plik.txt – dodaje prawo odczytu dla właściciela do pliku plik.txt;
chmod go-x plik.txt – usuwa prawo wykonywania dla użytkowników z tej samej
grupy i innych do pliku plik.txt;
chmod a=r plik.txt – ustawia prawa dostępu na tylko do odczytu dla wszystkich
użytkowników do pliku plik.txt;
Polecenie chmod umożliwia także określanie praw dostępu w postaci numerycznej, np.:
chmod 777 plik.txt – ustawia wszystkie prawa, wszystkim użytkownikom do pliku
plik.txt;
chmod 742 – ustawia prawa odczytu, zapisu i wykonywania właścicielowi, prawo
odczytu użytkownikom z tej samej grupy oraz prawo zapisu innym użytkownikom do
pliku plik.txt;
● chown [przełączniki] nazwa_nowego_właściciela nazwa_pliku_lub_katalogu – zmiana
właściciela pliku lub katalogu. Ze względu na nieodwracalność ewentualnych zmian,
polecenie to jest często zarezerwowane dla administratora systemu.
● chgrp [przełączniki] nazwa_nowej_grupy nazwa_pliku_lub_katalogu – zmienia grupę, do
której należy wskazany plik lub katalog. Podobnie jak polecenie chown, i to polecenie
najczęściej jest zarezerwowane dla administratora.
Operacje na plikach
Plik w systemie UNIX to ciąg bajtów - zdefiniowana (przeważnie przez użytkownika) porcja danych, która jest przechowywana w systemie w pamięci masowej. W systemach UNIX niemal wszystko jest plikiem, także urządzenia są reprezentowane przez specjalne pliki.
Nazwy plików nie mają podziału na nazwę i rozszerzenie, jednakże można takie podejście stosować; możliwe jest stosowanie w nazwach plików znaków specjalnych (np.: $, % lub #), ale nie jest to zalecane.
Podstawowe operacje na plikach można realizować z wykorzystaniem następujących
poleceń:
...
stickpl