Linux to jeden z najpopularniejszych i najbardziej wszechstronnych systemów operacyjnych, a jego prawdziwa moc ujawnia się w pracy z wierszem poleceń. Niniejszy przewodnik przedstawia podstawowe komendy Linuxa, niezbędne niezależnie od tego, czy jesteś początkującym użytkownikiem, administratorem, czy deweloperem. Kombinacja tych poleceń pozwala efektywnie zarządzać plikami, użytkownikami, procesami, uprawnieniami i zasobami systemu.

Znajdziesz tu komendy do nawigacji w systemie plików, pracy na plikach, zarządzania uprawnieniami, monitorowania procesów, przetwarzania tekstu, sieci, kompresji oraz administracji użytkownikami.

Polecenia nawigacji i zarządzania katalogami

Podstawą wygodnej pracy jest orientacja w strukturze katalogów. Polecenie pwd („print working directory”) wyświetla pełną ścieżkę do bieżącego katalogu roboczego. Wpisz po prostu pwd, aby potwierdzić aktualną lokalizację.

Polecenie ls wyświetla zawartość katalogu. Najczęściej używane opcje to:

  • ls -la – pokazuje wszystkie pliki, w tym ukryte, wraz z uprawnieniami, właścicielem, rozmiarem i datą modyfikacji;
  • ls -R – wyświetla zawartość rekursywnie w podkatalogach;
  • ls -h – podaje rozmiary w formacie czytelnym (KB/MB/GB).

Zmianę katalogu realizuje cd (change directory). Najbardziej przydatne warianty to:

  • cd .. – przejście do katalogu nadrzędnego;
  • cd lub cd ~ – przejście do katalogu domowego użytkownika;
  • cd ~/Dokumenty – szybki skrót do podkatalogu w katalogu domowym;
  • cd - – powrót do poprzednio odwiedzanego katalogu.

Tworzenie i usuwanie katalogów ułatwia mkdir i rmdir. Kluczowe zastosowania:

  • mkdir -p – tworzy zagnieżdżone katalogi w jednym kroku (np. mkdir -p ~/projekt/kod/python);
  • mkdir -v – wyświetla informacje o tworzonych katalogach;
  • rmdir – usuwa puste katalogi;
  • rmdir -p – usuwa rekursywnie pustą strukturę katalogów.

Polecenia do zarządzania plikami i zawartością

Polecenie cp (copy) kopiuje pliki i katalogi. cp -r kopiuje katalogi wraz z podkatalogami (np. cp -r ~/projekt ~/backup_projektu).

mv (move) przenosi pliki i zmienia ich nazwy. Najczęstsze scenariusze:

  • zmiana nazwymv stara_nazwa nowa_nazwa;
  • przeniesienie do katalogumv plik katalog_docelowy;
  • przeniesienie z jednoczesną zmianą nazwy – podaj docelową ścieżkę i nową nazwę.

rm (remove) usuwa pliki i katalogi. To polecenie jest nieodwracalne – zachowaj ostrożność. Przydatne opcje:

  • rm -i – prosi o potwierdzenie przed usunięciem;
  • rm -r – usuwa katalogi rekursywnie;
  • rm -f – wymusza usunięcie bez pytań (używaj tylko, gdy jesteś całkowicie pewien).

Podgląd i czytanie plików ułatwiają następujące polecenia:

  • cat – wyświetla zawartość i łączy pliki;
  • less – wygodne przewijanie w obie strony (wyjście klawiszem q);
  • head – pokazuje początek pliku (np. head -n 20);
  • tail – pokazuje koniec pliku (np. tail -n 50).

touch tworzy pusty plik (np. touch nowy_plik.txt) i aktualizuje znaczniki czasu istniejących plików.

Uprawnienia plików i zarządzanie własnością

Uprawnienia w Linuxie decydują o bezpieczeństwie i stabilności systemu. Każdy plik/katalog ma prawa dla: właściciela (user), grupy (group) i pozostałych (others) oraz typy: odczyt (r), zapis (w), wykonanie (x).

chmod (change mode) zmienia uprawnienia. Tryb symboliczny: chmod u+x plik.sh. Tryb oktalny: 4/2/1 to odpowiednio r/w/x; np. chmod 755 plik ustawia rwxr-xr-x.

Zmianę właściciela i grupy realizują te komendy:

  • chown nowy_właściciel plik.txt – zmiana właściciela;
  • chown nowy_właściciel:nowa_grupa plik.txt – jednoczesna zmiana właściciela i grupy;
  • chgrp nowa_grupa plik.txt – zmiana samej grupy.

Koncepcja umask określa, które uprawnienia są odejmowane od bazowych dla nowych plików i katalogów (pliki: 666, katalogi: 777). Dla umask 022 nowe pliki otrzymają 644, a katalogi 755.

Procesy i zarządzanie systemem

Skuteczne administrowanie wymaga kontroli procesów i usług. Najważniejsze narzędzia to:

  • ps -ef / ps aux – listy wszystkich procesów z pełnymi informacjami (PID, użytkownik, komenda);
  • top / htop – monitoring w czasie rzeczywistym z możliwością sortowania i filtrowania;
  • kill / kill -9 / killall – wysyłanie sygnałów do procesów (SIGTERM łagodnie zamyka, SIGKILL natychmiast zabija);
  • systemctl – zarządzanie usługami: systemctl start|stop|restart|enable|disable nazwa_usługi, status i logi: systemctl status nazwa_usługi.

Przetwarzanie tekstu i wyszukiwanie wzorców

grep (global regular expression print) wyszukuje linie na podstawie wzorca, np. grep wzorzec plik.txt. Przydatne opcje:

  • -i – ignoruje wielkość liter;
  • -v – pokazuje linie niepasujące do wzorca;
  • -n – dodaje numery linii;
  • -c – zlicza dopasowania.

grep doskonale współpracuje z potokami, np. ls -l | grep "plik". Złożone wzorce umożliwia grep -E (rozszerzone wyrażenia regularne).

sed (stream editor) automatyzuje edycję strumieni tekstu, np. wyszukaj i zamień: sed 's/wzorzec/nowy/g' plik.txt; zapis w miejscu: sed -i 's/stare/nowe/g' plik.txt.

awk to język do analizy tekstu, który dzieli linie na pola ($1, $2, …). Przykład: awk '{print $1, $3}' plik.txt. Separator pól ustawisz przez -F, np. awk -F':' '{print $1}' /etc/passwd wyświetla nazwy użytkowników.

Polecenia sieciowe

Diagnozowanie połączeń i praca ze zdalnymi hostami wymagają kilku kluczowych narzędzi:

  • ping – sprawdza dostępność hosta (np. ping -c 4 192.168.1.1);
  • ssh – bezpieczne logowanie na zdalną maszynę: ssh użytkownik@adres_ip (domyślny port 22, inny przez -p);
  • scp – kopiowanie plików przez SSH, np. scp plik.txt użytkownik@host:/ścieżka/docelowa (rekurencja: -r);
  • ss / netstat -tunlp / ip addr – podgląd portów i interfejsów (nowocześniejszy jest ss);
  • curl / wget – transfer danych po URL i pobieranie plików z internetu.

Kompresja i archiwizacja plików

Łączenie plików w archiwa i ich kompresja odbywa się najczęściej tak:

  • tar -cvf archiwum.tar plik1 plik2 katalog – tworzy archiwum z wielu elementów;
  • tar -xvf archiwum.tar – rozpakowuje archiwum TAR;
  • tar -czvf archiwum.tar.gz plik1 plik2 – tworzy skompresowane archiwum z użyciem gzip (rozpakuj: tar -xzvf);
  • unzip plik.zip -d /ścieżka/docelowa – rozpakowuje ZIP; alternatywna kompresja: bzip2 (w tar jako flaga -j).

Zarządzanie użytkownikami i grupami

Tworzenie i modyfikacja kont użytkowników oraz grup to podstawowe zadania administracyjne:

  • useradd nazwa – tworzy użytkownika; -m tworzy katalog domowy, -s ustawia powłokę (np. useradd -m -s /bin/bash nowy_użytkownik);
  • usermod – modyfikuje konto; -aG sudo użytkownik dodaje do grupy sudo, -l zmienia nazwę, -L blokuje konto;
  • userdel -r nazwa – usuwa użytkownika wraz z katalogiem domowym;
  • passwd – zmienia hasło (dla innego użytkownika wymagane uprawnienia root);
  • su - nazwa_użytkownika – przełącza na innego użytkownika z załadowaniem środowiska;
  • groupadd / groupdel – tworzy i usuwa grupy; dane o kontach: /etc/passwd, a o grupach: /etc/group.

Edytory tekstu i narzędzia programistyczne

Do edycji plików konfiguracyjnych i kodu przydadzą się:

  • nano – prosty edytor (np. nano plik.txt; skróty: Ctrl+S zapis, Ctrl+X wyjście);
  • vim – zaawansowany edytor z trybami; i włącza tryb wstawiania, Esc wraca do komend, :wq zapisuje i wychodzi;
  • gcc – kompilator C/C++; gcc plik.c -o program, opcje: -Wall ostrzeżenia, -c kompilacja bez linkowania.

Monitorowanie systemu i zasobów

Szybką diagnostykę wykorzystania zasobów zapewniają:

  • df -h – pokazuje użycie przestrzeni dyskowej dla zamontowanych systemów plików;
  • du -sh – podaje łączny rozmiar katalogu w czytelnym formacie;
  • free -h – wyświetla użycie pamięci RAM i swap;
  • cron – planowanie zadań; edycja: crontab -e, format: minuta godzina dzień_miesiąca miesiąc dzień_tygodnia komenda (np. 0 9 * * 1 /ścieżka/do/skryptu.sh uruchamia skrypt w każdy poniedziałek o 9:00).

Pomoc i dokumentacja

man dostarcza pełnej dokumentacji poleceń (np. man nazwa_polecenia), a opcje --help lub -h zapewniają szybki przegląd użycia i dostępnych przełączników.

Zawsze czytaj strony podręcznika i używaj trybu interaktywnego (np. -i w rm) przy operacjach ryzykownych.