Orientacja w terenie i systemy pomocy w systemie Linux

 Nie taki czarny ekran straszny...

W codziennej pracy administratora sieci i systemów (a także na egzaminie zawodowym INF.02) ponad 90% serwerów nie posiada żadnego interfejsu graficznego - służy to oszczędności pamięci RAM i zwiększeniu bezpieczeństwa. Po opanowaniu kilku podstawowych zasad poruszanie się w terminalu stanie się dla Ciebie tak samo intuicyjne, jak chodzenie po własnym pokoju.

Mapa terenu: Drzewo katalogów w Linuksie

Zanim zrobisz pierwszy krok, musisz poznać "topografię" Linuksa. W systemie Windows jesteś przyzwyczajony do podziału na litery napędów: dysk C:\, partycję D:\ czy pendrive E:\.

W Linuksie nie ma liter dysków. Cały system plików przypomina jedno gigantyczne, odwrócone drzewo:

       / (Root - Korzeń)
      ├── bin/       (Podstawowe programy systemowe)
      ├── etc/       (Pliki konfiguracyjne systemu)
      ├── home/      (Katalogi domowe zwykłych użytkowników)
      │   ├── adam/
      │   └── uczen/ (Twój prywatny pokój: /home/uczen)
      ├── root/      (Katalog domowy administratora root)
      └── var/       (Zmienne dane, np. logi systemowe)

Ścieżka bezwzględna a ścieżka względna

Aby wskazać systemowi dowolne miejsce, możesz posłużyć się dwoma rodzajami "adresów":

  1. Ścieżka bezwzględna (absolutna): Zawsze zaczyna się od znaku / (korzenia). To jak pełny adres pocztowy: Polska, Gdańsk, ul. Mikołaja Reja 25. Bez względu na to, gdzie się obecnie znajdujesz, ten adres zawsze zaprowadzi Cię w to samo miejsce (np. /home/uczen/Dokumenty).
  2. Ścieżka względna: Zależy od tego, gdzie aktualnie stoisz. To jak powiedzenie: "Przejdź do pokoju obok po prawej stronie". Jeśli zmienisz pomieszczenie, to samo polecenie zaprowadzi Cię zupełnie gdzie indziej (np. Dokumenty/zadanie.txt).

Gdzie jestem? Polecenie pwd

W interfejsie graficznym zawsze widzisz otwarty folder w pasku adresu okna. W terminalu Twoim wbudowanym odbiornikiem GPS jest polecenie pwd (Print Working Directory).

Gdy tylko poczujesz, że zgubiłeś się w gąszczu katalogów, wpisz:

uczen@srv01:~$ pwd
/home/uczen

System natychmiast odpowiada pełną ścieżką bezwzględną do miejsca, w którym aktualnie się znajdujesz.

Zwróć uwagę na znak ~ w wierszu zachęty (tzw. prompt): Zapis uczen@srv01:~$ oznacza kolejno: [użytkownik]@[nazwa_komputera]:[aktualne_miejsce]$. Tylda (~) to systemowy skrót oznaczający Twój katalog domowy.

Przemieszczanie się: Polecenie cd

Polecenie cd (Change Directory) to Twoje nogi i winda w systemie. Używasz go, aby przechodzić między folderami.

Składnia polecenia:

cd [cel_podróży]

Przechodzenie do konkretnego folderu

Możesz użyć ścieżki względnej (jeśli folder znajduje się w bieżącym katalogu) lub bezwzględnej:

uczen@srv01:~$ cd Dokumenty
uczen@srv01:~/Dokumenty$ pwd
/home/uczen/Dokumenty
uczen@srv01:~/Dokumenty$ cd /var/log
uczen@srv01:/var/log$ pwd
/var/log

Magiczne znaki nawigacji

W Linuksie istnieją specjalne skróty, które niesamowicie przyspieszają nawigację:

Przykłady użycia w praktyce:

  1. Wyjście piętro wyżej (cd ..):
    uczen@srv01:/home/uczen/Dokumenty$ cd ..
    uczen@srv01:/home/uczen$ pwd
    /home/uczen
  2.  Błyskawiczny powrót do domu (cd lub cd ~): Gdy zabłądzisz głęboko w strukturze plików systemowych, samo wpisanie cd bez żadnych argumentów od razu przeniesie Cię z powrotem do Twojego katalogu domowego:
    uczen@srv01:/etc/network/interfaces.d$ cd
    uczen@srv01:~$ pwd
    /home/uczen
  3. Przełączanie między dwoma miejscami (cd -):
    uczen@srv01:~$ cd /var/log
    uczen@srv01:/var/log$ cd -
    /home/uczen

Pamiętaj o spacji! W systemie Windows popularne jest wpisywanie cd... W Linuksie polecenie to nazwa programu, a argument to cel. Pomiędzy poleceniem a celem musi znaleźć się spacja: cd ... Wpisanie cd.. poskutkuje błędem: command not found. Ponadto Linux rozróżnia wielkość liter - Dokumenty i dokumenty to dwa zupełnie różne foldery!

Przeglądanie zawartości: Polecenie ls

Wiesz już, jak sprawdzić swoją pozycję (pwd) i jak chodzić (cd). Teraz pora się rozejrzeć. Polecenie ls (List - wylistuj) działa jak włączenie światła w ciemnym pokoju - pokazuje, jakie pliki i podkatalogi znajdują się wokół Ciebie.

Wpisane bez dodatków wyświetla tylko nazwy elementów:

uczen@srv01:~$ ls
Desktop  Dokumenty  Muzyka  Pobrane  Publiczny  Wideo

Samo poznanie nazw to jednak za mało dla administratora sieci. Chcemy wiedzieć, kiedy plik powstał, jaki ma rozmiar i kto ma do niego dostęp. Do modyfikowania zachowania poleceń w Linuksie służą tzw. flagi (zwane też opcjami lub przełącznikami), które poprzedzamy myślnikiem -.

Najważniejsze flagi polecenia ls

Flaga Pełna nazwa Znaczenie i zastosowanie
-l long listing Długi format listy. Wyświetla szczegółowe parametry: uprawnienia, właściciela, grupę, rozmiar oraz datę modyfikacji.
-a all Wszystkie pliki. Pokazuje również pliki i katalogi ukryte (zaczynające się od kropki .).
-h human-readable Format czytelny dla człowieka. W połączeniu z -l wyświetla rozmiary plików w kilobajtach (K), megabajtach (M) czy gigabajtach (G), a nie w surowych bajtach.

Łączenie flag - siła Linuksa

Flag nie musisz wpisywać osobno jako ls -l -a -h. W Linuksie możesz połączyć je w jeden ciąg znaków: ls -lah (lub ls -la).

Spójrzmy na wynik wykonania polecenia ls -lah:

uczen@srv01:~$ ls -lah
razem 48K
drwxr-xr-x 4 uczen uczen 4,0K wrz  8 17:30 .
drwxr-xr-x 3 root  root  4,0K wrz  8 16:00 ..
-rw------- 1 uczen uczen 1,2K wrz  8 17:45 .bash_history
-rw-r--r-- 1 uczen uczen  220 wrz  8 16:00 .bash_logout
-rw-r--r-- 1 uczen uczen 3,7K wrz  8 16:00 .bashrc
drwxr-xr-x 2 uczen uczen 4,0K wrz  8 17:15 Dokumenty
-rw-r--r-- 1 uczen uczen 150M wrz  8 17:20 kopia_bazy.sql

Anatomia pojedynczego wiersza listy szczegółowej

Rozłóżmy jeden wiersz na czynniki pierwsze:

-rw-r--r--   1    uczen    uczen    150M    wrz 8 17:20    kopia_bazy.sql
  [ 1 ]     [2]    [3]      [4]     [5]         [6]              [7]
  1. Typ i uprawnienia dostępu:
    • Pierwszy znak określa typ obiektu: - oznacza zwykły plik, a d (directory) oznacza katalog.
    • Kolejne 9 znaków (rw-r--r--) to prawa odczytu, zapisu i wykonywania dla właściciela, grupy i pozostałych (temat ten szczegółowo zgłębimy później).
  2. Liczba dowiązań twardych: Licznik odwołań systemowych do pliku.
  3. Właściciel pliku: Użytkownik, do którego należy plik (tutaj: uczen).
  4. Grupa właścicielska: Grupa systemowa przypisana do pliku (tutaj: uczen).
  5. Rozmiar pliku: Dzięki fladze -h widzimy przejrzyste 150M zamiast trudnej do szybkiego odczytania liczby 157286400 bajtów.
  6. Data i godzina ostatniej modyfikacji: Kiedy plik był ostatnio zmieniany.
  7. Nazwa pliku lub katalogu.

Czym są pliki ukryte? W systemie Linux każdy plik, którego nazwa zaczyna się od kropki (np. .bashrc, .profile), jest traktowany jako plik ukryty. Zwykle są to pliki konfiguracyjne aplikacji. Nie zobaczysz ich po wpisaniu zwykłego ls - aby je wyświetlić, niezbędna jest flaga -a.

Porządek w miejscu pracy: Polecenie clear

W miarę wpisywania kolejnych poleceń Twój terminal zacznie zapełniać się dziesiątkami linijek tekstu. Choć historia poleceń nigdzie nie znika, nadmiar informacji na ekranie potrafi dekoncentrować.

Do wyczyszczenia ekranu służy polecenie:

clear

Po jego zatwierdzeniu kursor wraca na samą górę ekranu, dając Ci czystą przestrzeń roboczą - dokładnie tak, jak po starciu tablicy w sali lekcyjnej.

Skrót klawiszowy zawodowców: Zamiast wpisywać słowo clear i naciskać Enter, wciśnij kombinację klawiszy Ctrl + L. Daje to identyczny efekt i działa niemal w każdym terminalu linuksowym na świecie!

Systemy pomocy: Jak radzą sobie zawodowcy?

Jednym z największych błędów początkujących adeptów informatyki jest przekonanie, że dobry administrator pamięta wszystkie polecenia i ich setki flag na pamięć.

Tak nie jest... W systemie Linux istnieją dziesiątki tysięcy narzędzi. Próba nauczenia się ich na pamięć jest skazana na porażkę. Prawdziwy profesjonalista różni się od amatora tym, że wie, jak szybko odnaleźć potrzebną informację w dokumentacji.

W systemie Linux pomoc masz zawsze pod ręką - nawet bez dostępu do Internetu.

Szybka podpowiedź: Opcja --help

Gdy pamiętasz nazwę polecenia, ale wyleciała Ci z głowy konkretna litera flagi, dodaj do polecenia przełącznik --help:

ls --help

System wyświetli krótką, syntetyczną ściągawkę: dopuszczalną składnię, spis wszystkich dostępnych flag oraz jednozdaniowe opisy ich działania. To idealne rozwiązanie, gdy potrzebujesz pomocy na cito.

Kompletny podręcznik: Polecenie man

Gdy potrzebujesz wyczerpującej wiedzy, oficjalnej dokumentacji lub przykładów, sięgasz po polecenie man (Manual - podręcznik systemowy).

man ls

W tym momencie terminal przełącza się w tzw. tryb przeglądarki tekstu (program less). Zobaczysz pełną dokumentację podzieloną na standardowe sekcje:

Jak nawigować wewnątrz podręcznika man?

Wielu początkujących wpada w panikę po uruchomieniu man, ponieważ terminal przestaje reagować na zwykłe komendy. Zapamiętaj te klawisze:

Szybka ściągawka

Polecenie / Skrót Opis działania Praktyczny przykład
pwd Pokazuje pełną ścieżkę bieżącego katalogu roboczego pwd
cd <katalog> Zmienia katalog roboczy na wskazany cd /var/log
cd .. Przechodzi o jeden poziom wyżej (do katalogu nadrzędnego) cd ..
cd lub cd ~ Błyskawicznie wraca do katalogu domowego bieżącego użytkownika cd
cd - Wraca do poprzednio odwiedzanego katalogu cd -
ls Listuje pliki i foldery w bieżącym katalogu ls
ls -l Wyświetla szczegółową listę plików (uprawnienia, rozmiar, data) ls -l
ls -a Wyświetla wszystkie pliki, w tym ukryte (zaczynające się od .) ls -a
ls -h Pokazuje rozmiary plików w czytelnych jednostkach (K, M, G) - stosowane z -l ls -lh
ls -lah Kombinacja: pełna lista szczegółowa ze wszystkimi plikami i czytelnym rozmiarem ls -lah
clear Czyści zawartość ekranu terminala clear
Ctrl + L Skrót klawiszowy odpowiadający poleceniu clear (skrót klawiatury)
polecenie --help Wyświetla szybką, skróconą pomoc dla danego polecenia mkdir --help
man polecenie Otwiera pełną dokumentację systemową danego narzędzia man cd
q Zamyka przeglądarkę podręcznika man (quit) (podczas czytania man)