Logiczne ułożenie katalogów
Przyjrzyjmy się strukturze katalogów Linuksa. Gdzie umieszczone zostały ważne elementy systemu, gdzie jest miejsce użytkowników, gdzie instalowane są programy?
- / - wszystko zaczyna się od tzw. korzenia, czyli "/". Jest to katalog stojący ponad wszystkimi innymi. Zwany czasem "root". Znajdują się w nim katalogi znajome przynajmniej z nazwy każdemu użytkownikowi Linuksa. Oto one:
- /bin - w tym katalogu znajdują się co ważniejsze binaria, niezbędne do działania systemu.
- /boot - katalog zawiera pliki potrzebne do uruchomienia systemu, takie jak konfigurację GRUB-a, obraz initrd, obrazki ładowane jako podkład do menu wyboru systemu...
- /dev - tutaj umiejscowione są pliki reprezentujące urządzenia, takie jak hda, sda. Za istnienie tych plików odpowiada mechanizm udev, który na bieżąco dostosowuje zawartość /dev do aktualnie podłączonych urządzeń.
- /etc - to zapis konfiguracji systemu. Pliki startowe, konfiguracja sieci, menedżera pakietów, zabezpieczeń...
- /home - Jest to prawdopodobnie najbardziej znany katalog. W katalogu /home domyślnie znajdują się katalogi nazwane od kont użytkowiników systemu (wyjątkiem jest root). Przykładowo /home/mk to mój katalog domowy, w którym mam prawo zapisywać, kasować i odczytywać. Gdyby na komputerze było 10 innych użytkowników, ich katalogi znalazłyby się także w /home. Domyślnie nie miałbym do nich dostępu.
- /lib - Podobnie jak /bin, co ważniejsze biblioteki.
- /media - Katalog ten służy do automatycznego montowania nośników wymiennych przez system
- /mnt - W odróżnieniu od /media, /mnt przechowuje obrazy zamontowanych partycji na dyskach niewymiennych i jest przeznaczony do ręcznego użycia przez użytkownika. Dziś obserwuje się nieprawidłowe użycie zarówno /media jak i /mnt, głównie dlatego, że zwykle nie ma wielkiego znaczenia gdzie co jest zamontowane.
- /opt - To katalog jak /usr, ale przeznaczony do instalacji zupełnie opcjonalnych programów. Powinno się tam instalować KDE, OpenOffice, Javę, niektóre serwery.
- /proc -
- /root - Katalog domowy roota (administratora systemu)
- /sbin - Najważniejsze programy, niezbędne do uruchomienia i prawidłowego działania systemu.
- /sys -
- /tmp - Katalog tymczasowy, przechowywane są tam różne śmieci. Dane w nim są kasowane co jakiś czas przez crona lub skrypty startowe.
- /var - Zmienne dane, pobrane z Internetu pakiety, pamięć podręczna usług internetowych, serwerów. Również usuwane co jakiś czas.
- /usr - Jeden z ciekawszych katalogów, do niego kopiowanych jest zwykle najwięcej plików przy instalacji programów. Porównanie go do windowsowego Program Files jest... błędem. W Windows mamy katalog Program Files, a w nim katalogi nazwane od programów lub producenta, w których znajdują się wszystkie lub prawie wszystkie pliki danego programu, rozrzucone w dodatkowych podkatalogach, zgodnie z widzimisię autora. W Linuksie zaś w obrębie katalogu /usr znajduje się kilkanaście do kilkudziesięciu katalogów, które przechowują dane zgodne ze swoimi nazwami, czyli /usr/lib przechowuje biblioteki, /usr/bin binaria itd. Jeśli skompilujesz źródła jakiegoś programu, a skrypt make install uruchomisz z parametrem DESTDIR=/jakiś/katalog, to po wejściu do /jakiegoś/katalogu zobaczysz strukturę katalogów pasującą idealnie do tego, co znajdziesz w /usr (zdanie prawdziwe dla większości programów). Parametr DESTDIR po prostu zamiast skopiować odpowiednie pliki do /usr, zmienił miejsce ich przeznaczenia na /jakiś/katalog. W katalogu /usr jest jeszcze jeden ciekawy podkatalog, nazwany local. Pełni on rolę identyczną jak /usr, ale dla mało istotnych programów lub niektórych programów skompilowanych ze źródeł. W katalogu /usr/games znajdują się pliki wykonywalne gier, są one wyróżniane od zwykłych programów obecnych w /usr/bin ze względu na inne uprawnienia. Najciekawszymi katalogami z punktu widzenia użytkownika są /usr/share/icons i /usr/share/sounds jako zawierające przydatne zasoby plików graficznych i dźwiękowych.