ASO Linux II


Linux

II

System plików

Struktura katalogów pozwala na wskazywanie położenia plików za pomocą ścieżki dostępu. Ścieżka dostępu danego pliku wymienia wszystkie katalogi i katalogi podrzędne, począwszy od katalogu głównego a skończywszy na katalogu podrzędnym, który bezpośrednio zawiera ten plik.

System plików rozprzestrzenia się zwykle na kilka partycji (które zostały utworzone podczas instalacji), nie jest to jednak bezwzględnie konieczne. Można zmieścić cały system plików na jednej, dużej partycji, albo na różnych dyskach fizycznych,, albo wreszcie w różnych komputerach połączonych z siecią. W Linuksie nie ma to znaczenia - gdy posługujesz się systemem plików wydaje się, jak gdyby każdy plik znajdował się w drzewie katalogów jednego komputera. Dzieje się tak, ponieważ każda partycja znajdująca się na dowolnym dysku twardym jest montowana do katalogu znajdującego się na partycji głównej (root). Gdy już system plików zostanie zamontowany, cały system zachowuje się tak, jak gdyby wszystkie partycje, dyski i odległe systemy plików były podrzędnymi katalogami katalogu głównego.

Montowanie systemu plików oznacza po prostu udostępnienie go. Wszystko, czego potrzeba w Linuksie, to punkt zamontowania, będący katalogiem, za pośrednictwem którego dany system plików został dodany do głównego systemu plików. Ponieważ każdy zamontowany system plików wygląda, jakby był katalogiem podrzędnym katalogu /, całość funkcjonuje jako jeden system plików.

Partycja główna (/) zawiera katalog główny systemu plików. Główny system plików jest montowany do katalogu głównego już podczas rozruchu. Gdy już ten system zostanie zamontowany, pozostałe partycje są montowane do katalogów podrzędnych na partycji głównej poprzez punkty montowania. Punkty montowania informują jądro systemu, gdzie mają być zamontowane poszczególne partycje lub systemy plików, dzięki czemu staną się one częścią głównego systemu plików. Np. katalog /usr jest punktem montowania partycji /usr. Jeśli katalog /usr nie jest odrębną partycją, to jest po prostu kolejnym katalogiem w partycji głównej.

Jeśli dysponujesz innymi systemami operacyjnymi lub urządzeniami w rodzaju napędów
CD-ROM lub dyskietek, musisz je zamontować do systemu plików Linuksa, zanim uzyskasz dostęp do plików. Jeśli na przykład zamierzasz użyć CD-ROM, najpierw powinieneś go zamontować posługując się punktem montowania , którym domyślnie jest /mnt/cdrom,dla dyskietek jest /mnt/floppy .

Struktura katalogów

/ zawiera punkty montowania podstawowych systemów plików. W systemie RedHat katalog główny nie obejmuje żadnych plików, jedynie katalogi służące do montowania pozostałych systemów plików.

/bin zawiera podstawowe polecenia używane przez wszystkich użytkowników (cat, cp, ping, vi, su ls). Polecenie cd jest poleceniem wbudowanym w jądro systemu

/boot zawiera pliki używane przez program ładujący (taki jak LILO) służący do ładowania systemu operacyjnego

/dev zawiera specjalne pliki dla różnych urządzeń wchodzących w skład systemu.
W katalogu tym jest wiele plików dotyczących urządzeń, które nie znajdują się w Twoim systemie. Pliki te nie zajmują zbyt wiele miejsca, najlepiej ich nie ruszać. W przeciwnym wypadku potrzebne byłoby ich odtwarzanie podczas dołączania nowego sprzętu.

/etc zawiera pliki konfiguracyjne systemu, używane przez wszystkich użytkowników. Czasem użytkownicy mają pliki konfiguracyjne w swoich własnych katalogach macierzystych (pliki .), które mają pierwszeństwo przed plikami zawartymi w /etc.

/home zawiera katalogi macierzyste wszystkich użytkowników.

/lib zawiera wspólne biblioteki niezbędne do funkcjonowania programów. Różne programy współużytkują niektóre biblioteki funkcji.

/mnt zawiera punkty montowania napędów zewnętrznych takich jak CD-ROM, dyskietki i napędy ZIP.

/proc jest pseudo-systemem plików, używanym jako interfejs w stosunku do jądra systemu. Jądro tworzy system plików /proc w pamięci, aby dostarczał informacji o systemie. Każdy proces realizowany w systemie ma swój katalog podrzędny w /proc. Zawierają one pseudopliki z informacjami o poszczególnych procesach. Ponieważ są one tworzone w pamięci, katalog /proc nie zajmuje miejsca na dysku twardym.

/root jest katalogiem macierzystym administratora.

/sbin zawiera polecenia specjalne, na ogół wykorzystywane przez administratora, np.: fsck, clock, dump...

/tmp jest przeznaczony na pliki tymczasowe

/usr zawiera wszystkie polecenia, aplikacje, dokumentację i biblioteki, które są potrzebne do funkcjonowania systemu. Pliki /usr z założenia są współużytkowane przez wszystkich użytkowników i są na ogół przeznaczone tylko do odczytu. Często katalog /usr jest katalogiem największym

/var zawiera pliki, których zawartość zmienia się regularnie. Znajdują się w nim pliki dzienników (logów) i pozostałe pliki tymczasowe, na przykład związane z pocztą lub drukowaniem

Partycja wymiany

Obszar wymiany jest to specjalna partycja na dysku twardym, używana jako rodzaj pamięci wirtualnej, uzupełniającej podstawową pamięć RAM. Jeśli nie dysponujesz dostateczną pojemnością pamięci fizycznej, aby obsłużyć wszystkie uruchamiane programy, jądro zapisuje dane w obszarze wymiany dysku twardego w sposób podobny jak w pamięci fizycznej.

Nawigacja w systemie plików

Katalog ..

$cd .. przechodzi do katalogu nadrzędnego

$cd ../katalog -przechodzi do katalogu „równoległego”

$cd ../.. - przechodzi do katalogu nadrzędnego, który jest nadrzędnym naszego katalogu nadrzędnego

Katalog .

Katalog . jest równoważnikiem „bieżącego katalogu”.

  1. Wszystko to, co znajduje się w bieżącym katalogu zamiast pisać całą ścieżkę bezwzględną możemy odwołać się poprzez ./. Np. jeśli chcemy uruchomić plik test znajdujący się w naszym katalogu domowym, zamiast pisać:

$/home/user/test

wystarczy wpisać:

$./test

Linux szuka plików wykonywalnych tylko w pewnych katalogach wchodzących w skład systemu plików. Jeśli plik wykonywalny nie znajduje się w jednym z trzech specjalnych katalogów, musisz nakazać Linuksowi poszukać wykonywalnego pliku w innym katalogu.

Tworzenie łącz

W Linuksie można posługiwać się łączami, aby nadawać temu samemu plikowi dwie całkowicie różne nazwy, lub w celu pozorowania, że plik znajdujący się w określonym miejscu systemu plików w rzeczywistości jest w całkowicie innym miejscu.

Tworzenie łącz jest użyteczne, gdy dwa różne programy poszukują tego samego pliku w różnych miejscach. Trzeba wtedy sprawić, żeby plik znajdował się w obydwu tych miejscach. Załóżmy, że brakuje Ci miejsca w partycji /usr. Jeśli w tej sytuacji chcesz dodać więcej plików do /usr, możesz utworzyć katalog w /var i powiązać ten katalog łączem z /usr, dzięki czemu wszystkie pliki znajdujące się w nowym katalogu pozornie będą się znajdowały w /usr.

Łącza stałe (linki twarde)

Łącze stałe jest inną nazwą istniejącego pliku. Obydwa pliki wykorzystuję ten sam węzeł informacyjny w systemie plików, w rzeczywistości są więc tym samym plikiem. Sytuacja taka jest odmienna od pary kopia-oryginał w którym to przypadku istnieją dwa odrębne pliki z odrębnymi węzłami informacyjnymi, zajmujące różne bloki dysku twardego. Węzeł informacyjny jest specjalnym plikiem informującym jądro systemu, które bloki dysku twardego zawierają dany plik. Ponieważ łącze stałe do pliku tym samym, co plik oryginalny, nie ma możliwości stwierdzenia, który plik jest oryginałem, który zaś łączem stałym.

Każdy plik w systemie plików ma dwie etykiety służące do identyfikacji: nazwę pliku oraz numer węzła informacyjnego (i-węzła). Gdy poszukujesz pliku posługujesz się jego nazwą, natomiast gdy jądro systemu poszukuje pliku używa numeru węzła informacyjnego. Numer węzła informacyjnego można wyświetlić za pomocą polecenia:

ls -i

Każdy numer węzła jest unikalny, jednak w przypadku łącza stałego mamy do czynienia z dwiema nazwami plików odwzorowanymi w tym samym węźle informacyjnym.

Poleceniem służącym do utworzenia łącza stałego jest ln:

$ln plik_oryginalny nazwa_lacza

Łącza symboliczne (linki miękkie)

Łącze symboliczne różni się od łącza stałego tym, że jest specjalnym plikiem zawierającym nazwę pliku oryginalnego, podobnie jak skrót w Windows. Gdy tworzysz łącze symboliczne, powstaje plik łącza symbolicznego zawierający wskaźnik pliku oryginalnego (docelowego). Jeśli zechcesz przejrzeć łącze symboliczne za pomocą polecenia cat, otworzy się plik otworzy się plik oryginalny. Podobnie, jeśli wprowadzisz zmiany w pliku łącza symbolicznego, ukażą się one również w pliku oryginalnym.

Aby zamiast łącza stałego utworzyć łącze symboliczne, użyj polecenia :

$ln -s plik_oryginalny plik_łącza

W wyniku polecenia ls -l łącza symboliczne są etykietowane znakiem l na początku ciągu zezwoleń. Plik docelowy jest wymieniony obok łącza symbolicznego po strzałce.

!!! Jeżeli zostaje usunięty plik docelowy bez usunięcia łącza symbolicznego, łącze takie nosi nazwę łącza martwego. Próba otworzenia takiego łącza prowadzi do wyświetlenia komunikatu o błędzie.!!!

Powłoki

Gdy się logujesz, system przenosi cię do powłoki. To samo robi okno xterm w X-ach. Powłoka jest środowiskiem, które interpretuje i wykonuje wszystkie wydawane polecenia.

Niektóre powłoki dostępne w Linuksie:

bash

Najczęściej używana powłoka w Linuksie. Oferuje edytowanie wiersza poleceń, historię poleceń i zgodność z powłoką Bourne'a (najstarsza powłoka opracowana dla Linuksa).

csh

Powłoka C.W większości zgodna z powłoką Bourn'a przy interaktywnym działaniu, ale ma zupełnie inny interfejs programistyczny.Nie edytowania wiersza poleceń.

ksh

powłoka Korna. Najbardziej popularna w systemach Uniksowych. Zgodna z powłoką Bourne'a. Oferuje edytowanie wiersza poleceń

sh

Powłoka Bourne'a. Oryginalna powłoka. Nie posiada edytowania wiersza poleceń.

tch

Rozszerzona powłoka C.Oferuje edytowanie wiersza poleceń.

zsh

Powłoka Z. Jedna z najnowszych powłok. Zgodna z powłoką Bourne'a.Oferuje edytowanie wiersza poleceń.

Aby dowiedzieć się z jakiej powłoki korzystasz, wydaj polecenie:

$echo $SHELL

Zanim użytkownik będzie mógł wybrać konkretną powłokę, musi ona zostać zainstalowana, a administrator systemu musi ją udostępnić przez wpisanie jej do pliku /etc/shells.

Zapamiętywanie wyników

Jeśli po jakimś poleceniu wpiszesz znak > (większości) i nazwę pliku, to wynik tego polecenia zostanie wysłany do tego pliku. Np.:

$ls -al /root > ~/wynik

Jeśli plik wynik już istnieje, to zostanie on nadpisany (poprzednie dane zostaną skasowane).

Jeśli zamienimy w powyższym przykładzie znak > na znak >> to wynik polecenia zostanie dopisany do istniejącego pliku wynik.

Znak > nie przekierowuje standardowego błędu. Przydaje się on wtedy, gdy chcesz zapamiętać właściwe wyniki bez zaśmiecania pliku komunikatami o błędach. Aby zapisać komunikaty i błędy do pliku należy umieścić znak & po znaku >.

$ polecenie >& plik_wynikowy

lub

$ polecenie &> plik_wynikowy (dla bash i ksh)

Aby zapisać tylko błędy do pliku należy umieścić cyfrę 2 przed znakiem >.

$ polecenie 2> plik_wynikowy

Jeśli chcesz, aby błędy były zapisywane w pliku, natomiast inne komunikaty nie pojawiały się na ekranie monitora (standardowym wyjściu), wydaj polecenie:

$ polecenie 2> plik_wynikowy > /dev/null

Znak < nakazuje poleceniu pobranie parametrów (danych wejściowych) z pliku.

Aby jakieś polecenie wykonać w tle, należy na końcu polecenia umieścić znak &.Np.:

$netscape &

[1] 23123

Znak zgłoszenia (zachęty) powraca i możesz wykonywać inne polecenia w czasie wykonywania innego polecenia (programu). Im więcej poleceń umieścisz w tle, tym wolniej działa twój system, wykonując je na zmianę.

Jeśli z jakiś powodów zatrzymasz zadanie wykonujące się w tle, możesz je przywrócić do wykonywania wydając polecenie:

$fg %1

$fg 23123

lub zakończyć jego wykonywanie poleceniem:

# kill %1

Prawa dostępu

Dokładny opis wyniku polecenia ls:

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
-rwxrwxrwx 2 janek users 193286 Mar 19 2002 nowy.txt

0x08 graphic
0x08 graphic

Rodzaj pliku

Prawa dostępu do pliku

Liczba twardych wiązań

0x08 graphic
Właściciel

0x08 graphic
Grupa

0x08 graphic
Rozmiar w bajtach

0x08 graphic
Data/godzina ostatniej modyfikacji

0x08 graphic
Nazwa pliku

Linux z natury jest systemem zorientowanym na wielu użytkowników. W katalogu /home mogą mieć swoje miejsce nawet setki użytkowników, współużytkujących aplikacje, drukarki, sieć i inne usługi oferowane w pozostałej części systemu plików. Aby zapobiec myszkowaniu po cudzym katalogu macierzystym lub skasowaniu (przypadkowym lub nie) plików/katalogów posługujemy się prawami dostępu.

W wyniku polecenia ls -l w pierwszej kolumnie ukazuje się ciąg liter.

Aby zrozumieć wyświetlany ciąg znaków, trzeba go najpierw w myśli podzielić na cztery sekcje. Pierwszą sekcję stanowi pierwszy znak, określający rodzaj pliku (d,-,l). Następne trzy sekcje mają po trzy znaki i określają prawa dostępu dla trzech kategorii użytkowników.

Linux klasyfikuje użytkowników na trzy kategorie: właściciel pliku, grupa do której należy właściciel oraz pozostali użytkownicy:

Podobnie jak istnieją trzy rodzaje użytkowników, są również trzy rodzaje zezwoleń: odczyt, zapis i wykonywanie.

Prawa odczytu i wykonywania w odniesieniu do katalogów współdziałają, więc jeśli nadajemy jakieś prawa, nadajmy oba lub żadnego.

Kreska (-) oznacza, że dana kategoria użytkowników nie ma określonych praw dostępu.

!!! W stosunku do łącz symbolicznych zezwolenia nie mają znaczenia; ważne są jedynie zezwolenia dotyczące pliku docelowego. Domyślnie, w odniesieniu do łącz symbolicznych wyświetlane są wszystkie zezwolenia !!!

Zmiana właściciela, grupy i praw dostępu

Polecenie chown zmienia właściciela pliku, a polecenie chgrp grupę. W Linuksie tylko użytkownik uprzywilejowany (root) może korzystać z polecenia chown, aby zmieniać prawa własności do pliku, lecz każdy użytkownik może zmieniać grupę do której należy.

Aby zmienić właściciela i grupę pliku wykonaj:

# chown użytkownik plik

# chgrp grupa plik

lub

# chown użytkownik.grupa plik

Polecenie służące do zmiany praw dostępu do pliku to chmod.

$chmod +x plik

Znak + oznacza : dodaj prawo dostępu, a x wskazuje, które prawo doda.

Jeśli wszystkich chcesz pozbawić prawa do wykonywania, użyj znaku minus zamiast plus:

$ chmod -x plik

To polecenie przypisuje prawo dostępu wszystkim poziomom - użytkownikowi, grupie oraz innym.

Możesz przydzielić prawo tylko sobie (właścicielowi) za pomocą polecenia:

$ chmod u+x plik

$ chmod ug+x plik

$ chmod ug+rwx plik

Możesz przyznać prawo odczytu sobie wykorzystując tzw. tryb absolutny

$ chmod 400 plik

$ chmod 444 plik - dla wszystkich prawo odczytu

Aby określić domyślny tryb, przypisywany każdemu plikowi, który utworzysz należy wydać polecenie: umask lub umieścić je w pliku startowym powłoki.

Polecenie umask ma takie argumenty jak polecenie umask w trybie absolutnym, ale wartości tych bitów są zanegowane.



Wyszukiwarka

Podobne podstrony:
ASO Linux IV
ASO Linux IIa
ASO Linux IVa
ASO Linux VI
ASO Linux V
ASO Linux Va
ASO Linux I
12 Linux II Drzewo katalogów, podstawowe komendyid 13524 ppt
ASO Linux III
quota, !!!Uczelnia, wsti, materialy, II SEM, systemy operacyjne linux
zminy w rejestrze sem II, Linux, płyty dvd, inne dvd, 2, temp pend drive
Linux - wprowadzenie, Notatki, SiS, KL.II
Linux Komendy i polecenia Wydanie II
09 Linux Skrypty powłoki część II
quota, !!!Uczelnia, wsti, materialy, II SEM, systemy operacyjne linux
Linux Leksykon kieszonkowy Wydanie II
Linux Najlepsze przepisy Wydanie II linaj2
Linux Leksykon kieszonkowy Wydanie II linlk2 2

więcej podobnych podstron