Komendy Linux: Pliki i katalogi użytkowników systemu
System Linux ma specyficzną strukturę dysków i założonych na nich partycji. Na pierwszy rzut oka po prostu ich nie widać. Każdy, kto pracował z systemem Microsoft Windows i przyzwyczaił się do okna programu Mój komputer i dostępnych w nim wszystkich dysków, rozpoczynając pracę w Linuksie, prawdopodobnie poczuje się nieco zagubiony. Linux wszystkie dyski, partycje i napędy "widzi" jako jedno drzewo katalogów, w którym każdy katalog rozpoczyna się od znaku/. Wszystkie inne urządzenia, takie jak napęd dyskietek czy napędy CD/DVD-ROM, będą dostępne po ich zamontowaniu przeprowadzonym przy użyciu specjalnego polecenia. Miejscem ich montowania będzie specjalny katalog, także znajdujący się w katalogu głównym. Na razie postaram się wymienić wszystko to, co znajduje się w katalogu głównym /. Są to następujące elementy:
- bin -Katalog ten zawiera wiele podstawowych programów linuxowych. Jego nazwa pochodzi od angielskiego słowa binaries, czyli pliki binarne, które mogą być wykonywane przez komputer.
- dev - Znajdujące się tutaj pliki nie są faktycznie plikami na dysku, lecz odnoszą się do urządzeń - za ich pośrednictwem system komunikuje się z urządzeniami (komunikacja niskopoziomowa). Są to specjalne pliki, które obsługują fizyczne części komputera. Na przykład, kopiując zawartość jakiegoś pliku do pliku /dev/fd0, faktycznie wysyłasz go do stacji dysków. Twój terminal to jeden z plików /dev/tty. Partycje dysku twardego to /dev/hda0 itp. Nawet pamięć RAM jest urządzeniem i posiada odpowiedni plik. Ciekawym urządzeniem jest /dev/null. Dane wysyłane do tego urządzenia wędrują donikąd, są po prostu tracone.
- boot- folder zawierający informacje odnośnie butowania systemu (kernel, initrd, pliki bootloadera –w przypadku GRUB)
- etc - Ten katalog i jego podkatalogi zawierają systemowe pliki konfiguracyjne. Są one zazwyczaj plikami tekstowymi, mogą więc być edytowane przez administratora w celu zmiany konfiguracji systemu.
- home - katalog przeznaczony na katalogi główne użytkowników systemu (oprócz katalogu użytkownika root);
- lib - katalog z plikami bibliotek dla programów i do obsługi systemu.
- mnt - katalog, w którym montowane są inne dyski;
- proc - katalog z informacjami o systemie;
- root - Katalog administratora (superużytkownika). Tutaj znajdują się ustawienia użytkownika
- sbin - katalog z programami specjalnymi dla użytkowników o odpowiednich uprawnieniach;
- tmp - katalog na pliki tymczasowe;
- usr - W katalogu /usr/ znajdują się dane, do których użytkownik nie powinien mieć prawa do zapisu. Bezpośrednio w tym katalogu nie powinny się znajdować żadne pliki, jedynie w jego podkatalogach, przy czym ściśle określone jest, co w jakich podkatalogach się znajduje:
- /usr/bin/ — większość programów dostępnych dla użytkowników
- /usr/include/ — pliki nagłówkowe programów
- /usr/lib/ — biblioteki programów
- /usr/local/ — katalog programów zainstalowanych lokalnie, struktura tego katalogu jest podobna do struktury /usr/, znajdują się w nim katalogi /usr/local/bin/, /usr/local/lib/, itd., które pełnią funkcje analogiczne do katalogów znajdujących się w /usr/. Bezpośrednio po instalacji systemu katalog ten jest pusty
- /usr/sbin/ — programy dostępne dla roota o niekrytycznym znaczeniu
- /usr/share/ — dane współdzielone niezależnie od architektury systemu, np. dokumentacja, przykładowe konfiguracje, ikony, itp.
- var - katalog używany przez system do przechowywania potrzebnych mu danych wygenerowanych przez programy lub udostępniany w części użytkownikom, na przykład na stronę WWW.
- lost+found- System plików Linuxa umieszcza tu zagubione pliki (np. z powodu błędów na dysku).
- media- Stąd mamy dostęp do nośników wyjmowanych (miejsce montowania nośników wymiennych) (np. pendrive, CD-ROM).
- opt- Katalog do instalowania dodatkowego oprogramowania niewchodzącego w skład systemu (wykorzystywany głównie w dystrybucji SUSE). Obecnie, w niektórych dystrybucjach służy on do instalacji oprogramowania trzeciego jak np. oracle'a. Folder ten wychodzi z użycia na rzecz /usr/local
Poszczególne dystrybucje różnią się rozłożeniem katalogów specjalnego przeznaczenia. Powyższa lista jest zobrazowaniem elementów, które znajdziemy na naszym dysku.
Miejsce na dysku przeznaczone dla plików użytkownika jest dokładnie określone już podczas zakładania konta. W katalogu /home tworzony jest osobny katalog o nazwie identycznej z nazwą konta użytkownika w systemie, w którym przechowywane są jego własne dane i pliki konfiguracyjne programów przez niego używanych. Jeżeli np. posiadasz konto o nazwie user, Twoim katalogiem głównym będzie /home/user. Możesz w nim wykonywać dowolne operacje, ponieważ masz do niego pełny dostęp. Jeżeli przejrzysz zawartość katalogu głównego dla użytkowników, będziesz mógł się zorientować, ilu użytkowników korzysta z systemu. Dla każdego użytkownika została zarezerwowana pewna przestrzeń dysku twardego na jego pliki i programy. Oczywiście Twój katalog jest dostępny tylko dla Ciebie, chyba że zmienisz uprawnienia dostępu. Podobnie jak Ty nie możesz wejść do katalogu innych użytkowników, tak i oni nie mogą zajrzeć do Twojego. Jedynym wyjątkiem jest tutaj użytkownik root, czyli główny administrator systemu. Przeznaczona dla niego przestrzeń dysku znajduje się w niedostępnym dla zwykłych użytkowników katalogu /root, ze względu na bezpieczeństwo systemu.
Każdy system operacyjny - także Linux - ma własny sposób nazywania partycji i dysków w komputerze. W systemach Microsoft Windows wykorzystywane są do tego celu przypisane dyskom litery; w Linuksie opisy partycji i dysków odpowiadają sposobowi ich podłączenia do magistral w komputerze.
Wygląda to następująco:
- hda - pierwszy kontroler IDE, Master;
- hdb - pierwszy kontroler IDE, Slave;
- hdc - drugi kontroler IDE, Master;
- hdd - drugi kontroler IDE, Slave.
Takie oznaczenia są oczywiście stosowane tylko wtedy, gdy dyski w naszym komputerze podłączone są poprzez kanał IDE. W przypadku podłączenia poprzez interfejs SCSI nazwy dysków wyglądają podobnie, np: "sda - pierwszy kontroler SCSI" itd.
Kolejne partycje na dysku posiadają dodatkowy numer. Jeżeli utworzyliśmy partycje na dysku podpiętym do magistrali IDE, ustawionym jako urządzenie pracujące w trybie Master, to te kolejne partycje będą miały nazwy: "hda1, hda2, hda... hdaX".
Linux posiada także własny system plików. Obecnie stosowany jest system ext3 i jego nowsza odmiana - ext4
Pliki i katalogi w systemie
W Linuksie, inaczej niż w systemach operacyjnych z rodziny Microsoft Windows, nie jest wymagane stosowanie w nazwach plików specjalnych rozszerzeń, określających m.in. to, jaki program powinien zostać użyty do otwarcia pliku. Zawartość pliku i program, jaki należy zastosować do jego otwarcia, Linux określa na podstawie nagłówka MIME pliku. Jeżeli jednak z jakiegokolwiek powodu odczuwasz potrzebę nadawania plikom rozszerzeń, możesz to zrobić - mimo że rozszerzenia te nie są konieczne, ich stosowanie nie jest także niewskazane. W nazwach plików i katalogów możesz stosować dowolne znaki alfanumeryczne (litery i cyfry), a oprócz tego znak kropki ( . ), myślnika ( - ) i podkreślenia (_) . Z wszystkimi innymi znakami postępuj ostrożnie; zazwyczaj są one zarezerwowane dla specjalnych funkcji systemu. W nazwach plików i katalogów możesz używać także spacji i nie będzie to powodować większych problemów, będzie jednak po prostu niewygodne. Polecenia, w których będziesz odwoływać się do plików lub katalogów zawierających spacje, będą po prostu dłuższe i łatwiej będzie popełnić błąd podczas wpisywania nazwy pliku. Trzeba także pamiętać o tym, że znak kropki nie powinien rozpoczynać nazwy pliku czy katalogu. Trzeba jednak pamiętać o tym niezwykle ważnym zastrzeżeniu - nazwy plików i katalogów nie powinny rozpoczynać się od znaku kropki, w każdym innym jednak miejscu może on wystąpić. Przyczyną tego ograniczenia jest to, że w Linuksie znak kropki na początku nazwy pliku jest zarezerwowany dla ukrytych plików i katalogów - na przykład plik o nazwie .ukryty_plik będzie plikiem ukrytym. Niezwykle istotna jest także wielkość stosowanych przez nas liter. W omawianym systemie wielkie i małe litery są rozpoznawane jako osobne znaki. Jeśli więc tworzysz katalog lub plik, zapamiętaj, czy jego nazwę wpisałeś wielką, czy małą literą - będzie to potrzebne, kiedy będziesz chciał się do niego w przyszłości odwołać. Wyświetlany przez system znak $ (jeśli korzystasz z konta zwykłego użytkownika) lub # (jeżeli pracujesz jako administrator systemu) jest znakiem zachęty. Oto przykład jego użycia:
user@linux:~$
Przed znakiem zachęty występują: nazwa użytkownika i nazwa hosta oraz ciąg znaków określający bieżącą lokalizację w systemie plików. W tym przypadku: użytkownikiem jest user, host, na którym pracujemy, to linux, zaś katalog, w którym się znajdujemy, to / (katalog główny), aktualna ścieżka, pod którą pracujemy. Do wyświetlenia aktualnej ścieżki stosuje się polecenie "pwd". Wyświetla ono całą ścieżkę (od katalogu głównego na dysku), w której obecnie się znajdujemy.
user@linux:~$ pwd
/home/user/