piątek, 15 lutego 2013

Struktura katalogów w Linuksie.

Gdy zaczynałem przygodę z Linuksem największym problemem dla mnie było odnalezienie się w nowych strukturach katalogów. W Linuksie nie ma katalogu "Program Files", "Moje Dokumenty" no i sam system nie siedzi w katalogu np. "Ubuntu". Dla użytkownika który pracował na Windowsie może stanowić to nie lada problem. Dlatego postanowiłem odrobinę przybliżyć Wam strukturę katalogów systemów z Pingwinkiem, dzięki temu łatwiejsza stanie się nawigacja po systemie.
W Windowsie system operacyjny instaluje się domyślnie na dysku który oznaczony jest jako C:\ i znajduje się w folderze o nazwie "Windows", rzecz to znajoma każdemu, kto korzystał z komputera z domyślnie zainstalowanym systemem Microsoftu. Pierwszym więc zaskoczeniem po zainstalowaniu Linuksa będzie brak takiego folderu. Jedyne co zobaczy użytkownik po zainstalowaniu np. Ubuntu będzie katalog domowy /home, utworzony specjalnie w czasie procesu instalacji systemu. Jego wewnętrzna struktura jest bardzo prosta i ogranicza się do kilku podkatalogów. Nazwy tych podkatalogów mogą się różnić w zależności od dystrybucji Linuksa. W katalogu /home użytkownik ma pełną władzę nad tym jakie katalogi się tam znajdują, może je usuwać, tworzyć i zmieniać ich nazwy bez żadnych dodatkowych uprawnień. Katalog /home, jest również miejscem gdzie znajdować się będą spersonalizowane pod konkretnego użytkownika ustawienia instalowanych aplikacji. Zazwyczaj aby się do nich dostać należy zaznaczyć wyświetlanie ukrytych plików i katalogów w eksploratorze plików (w ubuntu Nautilus).
Przykład struktury katalogu Home, rozpikselowane miejsca to katalogi które sam utworzyłem.

Gdzie zatem znajduje się nasz system i jego struktura? Katalog /home, leży właśnie w tej strukturze dlatego aby zobaczyć katalogi systemowe musimy pójść "w górę"

Na zdjęciu powyżej widać pełną strukturę katalogów Linuksa (w tym przypadku Ubuntu), nasz katalog domowy jest umiejscowiony wewnątrz tej struktury. Dokładniej widać to na tym zdjęciu:
Pozostałe widoczne katalogi to katalogi systemowe o różnym przeznaczeniu. Postaram się je opisać:
System plików inaczej w skrócie (/)
To główny katalog systemowy, w nim znajduje się cała reszta plików i katalogów systemowych.
/bin
To katalog, gdzie znajdują się programy systemowe, to tutaj znajdziemy wszystkie programy domyślnie instalowane z systemem.
/boot
Bardzo ważny katalog, dzięki niemu możemy uruchomić nasz system jakiekolwiek dłubanie w nim może nas doprowadzić do konieczności ponownej instalacji systemu. W większości przypadków w tym katalogu umieszczane jest jądro systemu. Czyli jego najważniejsza warstwa odpowiedzialna za komunikację z urządzeniami komputera oraz uruchomionymi programami.
/cdrom
Katalog montowania napędów optycznych.
/dev
Katalog urządzeń (dev od angielskiego "devices"), pliki i katalogi w nim się znajdujące tak naprawdę są urządzeniami naszego komputera.
/etc
Katalog ustawień, w tym katalogu znajdują się pliki konfiguracyjne wielu programów i urządzeń. Jeśli np. chcecie zmienić ręcznie ustawienia wyświetlania obrazu na monitorze to szukacie pliku "/etc/X11/xorg.conf".
/home
Katalog domowy, omówiłem powyżej.
/lib
Katalog systemowych bibliotek dzielonych (używanych przez różne programy, coś jak pliki dll z windowsa)
/lib64
To co powyżej tylko że dla systemów 64bitowych.
/lost+found
Znajdziemy tu pliki odzyskane podczas testów dysku twardego.
/media
Katalog służący do montowania nośników wymiennych takich jak , dyski USB, pendrive, i inne systemy plików np. windowsowy NTFS. Jeśli macie na komputerze partycję z systemem Windows, to po zamontowaniu jej znajdziecie jej zawartość właśnie w /media
/mnt
Praktycznie to samo co katalog /media.
/opt
Opcjonalne programy instalowane przez użytkownika, zainstalowane w tym katalogu nie ingerują w ustawienia całego systemu.
/proc
Ten katalog fizycznie nie istnieje, tworzony jest on w pamięci za każdym razem gdy startuje system. Pliki w nim znajdujące się to tak naprawdę procesy jakie uruchamia system i użytkownicy. 
/root
Katalog domowy superużytkownika, czyli właśnie root. Dostęp do niego ma tylko administrator systemu.
/run
Katalog do zapisu plików we wczesnym stadium uruchamiania systemu, kiedy katalog / nie jest jeszcze dostępny do zapisu
/sbin
Katalog poleceń które mogą być wykonywane tylko przez administratora systemu
/selinux
Katalog rozszerzonego bezpieczeństwa, znajdują się w nim pliki dotyczące polityki bezpieczeństwa systemu. SELinux jest swoistą nakładką na jądro systemu i poprawia bezpieczeństwo.
/srv
Katalog danych specyficznych dla miejsca, udostępnianych przez system.
/sys
W tym katalogu znajdują się dane podobne do tych składowanych w katalogu /proc, z tą różnicą że danymi w /sys użytkownik za pomocą odpowiednich komend może sterować, katalog do którego zwykły użytkownik raczej nie będzie zaglądał.
/tmp
Katalog tymczasowy, jego wewnętrzna struktura ulega wykasowaniu przy każdorazowym restarcie systemu. Jeśli np. pobieracie jakiś plik z internetu do jednorazowego wykorzystania i nie chcecie sobie zawracać głowy jego kasowaniem, wystarczy pobrać go do katalogu /tmp a zostanie on usunięty przy najbliższym restarcie systemu. Przydatna rzecz.
/usr
W tym katalogu znajdziemy pliki i podkatalogi które nie pasują do /bin i do /etc. Gry i inne rzeczy. Katalog /usr posiada podkatalogi. /usr/bin przechowuje programy, /usr/share przechowuje dane współdzielone np. ikony. /usr/lib przechowuje biblioteki wymagane przez programy do działania.
/var
Katalog w którym przechowywane są logi systemu i aplikacji, a także kolejka drukowania. Czasem warto tu zajrzeć jeśli mamy jakiś bliżej niezidentyfikowany problem, odszukując odpowiedni plik logu możemy się dowiedzieć co jest nie tak.

To już wszystko jeśli chodzi o strukturę katalogów w systemie Ubuntu. Myślę że widać teraz jak logicznie ta struktura jest zbudowana. Mam również nadzieję, że dzięki tej mapie katalogów nie pogubicie się w systemie. Na koniec mała zagadka.
W strukturze Linuksa znajduje się katalog zwany potocznie czarną dziurą, dane które do niego trafiają giną bezpowrotnie i natychmiastowo. Jaki to katalog i gdzie się znajduje? Odpowiedzi piszcie w komentarzach.