Podstawy Linuxa część 2: komendy i polecenia

japancat
2025-10-15

Wstęp#

Terminal w Linuxie to podstawowe narzędzie każdego admina i użytkownika, który chce w pełni wykorzystać potencjał systemu. Ten przewodnik przeprowadzi Cię przez najważniejsze polecenia w systemach Debian i Ubuntu, zaczynając od absolutnych podstaw. Jeśli dopiero zaczynasz swoją przygodę z Linuxem, polecam najpierw przeczytać mój artykuł o wyborze dystrybucji Linuxa.

Nawigacja po systemie plików#

pwd - sprawdź gdzie jesteś#

Polecenie pwd (print working directory) wyświetla pełną ścieżkę do katalogu, w którym się znajdujesz. To pierwsza komenda, której będziesz używać, gdy zgubisz się w strukturze katalogów lub chcesz potwierdzić swoją lokalizację w systemie plików.

pwd

Przykładowy output:

/home/username

ls - wyświetl zawartość katalogu#

Prawdopodobnie najczęściej używana komenda w Linuxie. ls wyświetla listę plików i katalogów w bieżącej lub wskazanej lokalizacji, z mnóstwem opcji formatowania i filtrowania.

ls              # wyświetl pliki w bieżącym katalogu
ls -l           # szczegółowa lista z uprawnieniami
ls -la          # pokaż również ukryte pliki (zaczynające się od .)
ls -lh          # rozmiary plików w czytelnym formacie (KB, MB, GB)
ls /etc         # wyświetl zawartość konkretnego katalogu

cd - zmień katalog#

Komenda cd (change directory) pozwala przemieszczać się między katalogami w systemie plików. To podstawa nawigacji - bez niej pozostajesz w jednym miejscu przez całą sesję terminala.

cd /home/username       # przejdź do konkretnego katalogu
cd ..                   # przejdź katalog wyżej
cd ~                    # przejdź do katalogu domowego
cd -                    # wróć do poprzedniego katalogu
cd                      # przejdź do katalogu domowego (skrót)

Operacje na plikach i katalogach#

mkdir - tworzenie katalogów#

Komenda mkdir (make directory) tworzy nowe katalogi w systemie plików. Opcja -p jest szczególnie przydatna, bo pozwala utworzyć całą hierarchię katalogów za jednym razem, bez konieczności tworzenia każdego poziomu osobno.

mkdir folder                    # utwórz pojedynczy katalog
mkdir -p projects/web/app       # utwórz strukturę katalogów rekursywnie
mkdir folder1 folder2 folder3   # utwórz wiele katalogów jednocześnie

touch - tworzenie plików#

Choć touch pierwotnie służy do zmiany znacznika czasu pliku, najczęściej używamy go do szybkiego tworzenia pustych plików. Jest to prostsze niż używanie edytora tekstu, gdy potrzebujesz tylko utworzyć plik.

touch plik.txt              # utwórz pusty plik
touch file1.txt file2.txt   # utwórz wiele plików

cp - kopiowanie#

Polecenie cp (copy) kopiuje pliki i katalogi. Pamiętaj, że standardowo cp nie kopiuje katalogów - do tego potrzebna jest flaga -r (rekursywnie), która skopiuje katalog wraz z całą jego zawartością.

cp plik.txt kopia.txt               # skopiuj plik
cp plik.txt /home/username/backup/  # skopiuj do innego katalogu
cp -r folder/ kopia_folderu/        # skopiuj katalog rekursywnie
cp -v plik.txt kopia.txt            # verbose - pokaż co się kopiuje

mv - przenoszenie i zmiana nazw#

Komenda mv (move) służy zarówno do przenoszenia plików, jak i zmiany ich nazw - w systemie Linux to praktycznie ta sama operacja. W przeciwieństwie do cp, mv nie wymaga flagi -r dla katalogów.

mv plik.txt nowa_nazwa.txt      # zmień nazwę pliku
mv plik.txt /tmp/               # przenieś plik do innego katalogu
mv folder/ /home/username/      # przenieś katalog
mv *.txt /backup/               # przenieś wszystkie pliki .txt

rm - usuwanie#

Komenda rm (remove) usuwa pliki i katalogi. W systemie Linux nie ma kosza - usunięte pliki są usuwane na zawsze, więc zawsze sprawdzaj dokładnie co usuwasz, szczególnie używając rm -rf.

rm plik.txt             # usuń plik
rm -r folder/           # usuń katalog rekursywnie
rm -rf folder/          # usuń katalog bez pytania o potwierdzenie (UWAGA!)
rm *.log                # usuń wszystkie pliki .log
Uwaga przy używaniu rm -rf

Polecenie rm -rf usuwa pliki bez możliwości odzyskania i bez pytania o potwierdzenie. Upewnij się, że podajesz poprawną ścieżkę.

Przeglądanie zawartości plików#

cat - wyświetl całą zawartość#

Polecenie cat (concatenate) wyświetla całą zawartość pliku lub wielu plików na ekranie. Przydatne dla krótkich plików, ale dla długich lepiej użyć less lub more.

cat plik.txt                    # wyświetl zawartość pliku
cat plik1.txt plik2.txt         # wyświetl zawartość wielu plików
cat > nowy.txt                  # utwórz nowy plik (Ctrl+D aby zakończyć)

less i more - przeglądanie długich plików#

Narzędzia do przeglądania długich plików z możliwością przewijania i wyszukiwania. less jest nowszą, bardziej zaawansowaną wersją more i pozwala przewijać w obu kierunkach.

less plik.txt       # przeglądaj plik (q aby wyjść, / aby wyszukać)
more plik.txt       # starszy odpowiednik less

W less możesz używać:

  • strzałki lub j/k - przewijanie
  • /tekst - wyszukiwanie
  • n - następne wystąpienie
  • q - wyjście

head i tail - początek i koniec pliku#

Polecenia head i tail wyświetlają odpowiednio początek lub koniec pliku. tail -f jest nieocenione przy monitorowaniu logów w czasie rzeczywistym - będziesz używać tego codziennie przy debugowaniu aplikacji.

head plik.txt           # wyświetl pierwsze 10 linii
head -n 20 plik.txt     # wyświetl pierwsze 20 linii
tail plik.txt           # wyświetl ostatnie 10 linii
tail -n 50 plik.txt     # wyświetl ostatnie 50 linii
tail -f /var/log/syslog # śledź plik w czasie rzeczywistym (logi)

Wyszukiwanie#

find - znajdź pliki#

Potężne narzędzie do wyszukiwania plików i katalogów według nazwy, rozmiaru, daty modyfikacji i wielu innych kryteriów. W odróżnieniu od grep, które przeszukuje zawartość plików, find szuka samych plików w strukturze katalogów.

find /home -name "*.txt"                # znajdź wszystkie pliki .txt
find . -name "config.php"               # znajdź plik w bieżącym katalogu
find /var/log -type f -mtime -7         # pliki modyfikowane w ostatnich 7 dniach
find . -type d -name "backup"           # znajdź katalogi o nazwie backup
find /tmp -type f -size +100M           # pliki większe niż 100MB

grep - wyszukiwanie w zawartości#

Komenda grep (global regular expression print) przeszukuje zawartość plików w poszukiwaniu określonego wzorca tekstu. To fundamentalne narzędzie każdego admina - użyjesz go do przeszukiwania logów, konfiguracji i kodu źródłowego. grep wspiera wyrażenia regularne, co czyni je niesamowicie elastycznym narzędziem.

grep "error" /var/log/syslog            # znajdź linię zawierającą "error"
grep -i "error" plik.txt                # wyszukiwanie bez rozróżniania wielkości liter
grep -r "TODO" /home/projects/          # przeszukaj rekursywnie katalog
grep -n "function" app.php              # pokaż numery linii
grep -v "comment" plik.txt              # wyświetl linie NIE zawierające "comment"

Połączenie z pipe:

cat plik.txt | grep "search"
ls -la | grep "\.txt"

Edycja plików tekstowych#

nano - prosty edytor#

nano to prosty, intuicyjny edytor tekstowy idealny dla początkujących. Wszystkie dostępne skróty klawiszowe są widoczne na dole ekranu, więc nie musisz ich pamiętać.

nano plik.txt

Podstawowe skróty:

  • Ctrl+O - zapisz
  • Ctrl+X - wyjdź
  • Ctrl+K - wytnij linię
  • Ctrl+U - wklej
  • Ctrl+W - wyszukaj

vim - zaawansowany edytor#

vim to zaawansowany, modalny edytor z krętką krzywą uczenia, ale niesamowitą wydajnością gdy już go opanujesz. Jest zainstalowany praktycznie na każdym systemie Linux, więc warto poznać przynajmniej podstawy, nawet jeśli nie planujesz używać go na co dzień.

vim plik.txt

Podstawy:

  • i - tryb edycji (insert mode)
  • Esc - wyjście z trybu edycji
  • :w - zapisz
  • :q - wyjdź
  • :wq - zapisz i wyjdź
  • :q! - wyjdź bez zapisywania

echo - wypisz tekst lub zapisz do pliku#

Komenda echo wyświetla tekst lub zapisuje go do pliku. Używając przekierowań > (nadpisz) i >> (dopisz), możesz szybko modyfikować pliki bez uruchamiania edytora. Przydatne również do wyświetlania wartości zmiennych środowiskowych.

echo "Hello World"                      # wyświetl tekst
echo "tekst" > plik.txt                 # zapisz do pliku (nadpisz)
echo "dodatkowy" >> plik.txt            # dopisz do pliku
echo $PATH                              # wyświetl zmienną środowiskową

Uprawnienia plików#

chmod - zmiana uprawnień#

Linux używa systemu uprawnień: r (read), w (write), x (execute) dla właściciela, grupy i innych.

chmod +x skrypt.sh              # dodaj uprawnienie wykonywania
chmod 755 plik.sh               # rwxr-xr-x (właściciel: rwx, grupa: r-x, inni: r-x)
chmod 644 plik.txt              # rw-r--r-- (właściciel: rw, grupa: r, inni: r)
chmod -R 755 /var/www/html/     # zmień uprawnienia rekursywnie

Numeryczne wartości:

  • 4 - read (r)
  • 2 - write (w)
  • 1 - execute (x)
  • 7 = 4+2+1 (rwx)
  • 6 = 4+2 (rw)
  • 5 = 4+1 (rx)

chown - zmiana właściciela#

Polecenie chown (change owner) zmienia właściciela pliku lub katalogu. Często potrzebne przy konfiguracji serwerów web, gdzie pliki muszą należeć do określonego użytkownika systemowego jak www-data czy nginx.

chown username plik.txt                     # zmień właściciela
chown username:groupname plik.txt           # zmień właściciela i grupę
chown -R www-data:www-data /var/www/        # zmień rekursywnie
NOTE

Polecenia chmod i chown często wymagają uprawnień roota (sudo).

Zarządzanie uprawnieniami#

sudo - wykonaj jako administrator#

sudo (superuser do) pozwala wykonywać polecenia z uprawnieniami administratora bez logowania się jako root. To podstawowy mechanizm bezpieczeństwa w systemach Linux - zamiast pracować cały czas jako root, używasz sudo tylko gdy jest to niezbędne.

sudo apt update                     # uruchom polecenie z uprawnieniami roota
sudo -i                             # zaloguj się jako root
sudo -u username polecenie          # uruchom polecenie jako inny użytkownik

Przy pierwszym użyciu sudo system poprosi o hasło użytkownika. Więcej o konfiguracji sudo znajdziesz w naszym poradniku jak używać sudo bez hasła.

su - przełącz użytkownika#

Polecenie su (switch user) pozwala przełączyć się na innego użytkownika. Rzadziej używane niż sudo, przydaje się gdy musisz wykonać wiele poleceń jako inny użytkownik.

su                      # przełącz na użytkownika root
su - username           # przełącz na innego użytkownika
su -                    # przełącz na roota z jego środowiskiem

Zarządzanie pakietami#

W systemach Debian i Ubuntu używamy apt (Advanced Package Tool).

apt update - aktualizacja listy pakietów#

To polecenie synchronizuje lokalną bazę pakietów z serwerami repozytorium. Nie instaluje żadnych aktualizacji, tylko pobiera informacje o dostępnych wersjach pakietów. Zawsze uruchamiaj je przed instalacją lub aktualizacją.

sudo apt update

apt upgrade - aktualizacja pakietów#

Po apt update możesz użyć apt upgrade do faktycznej instalacji dostępnych aktualizacji. To polecenie zaktualizuje wszystkie zainstalowane pakiety do najnowszych wersji, zachowując zgodność z zależnościami.

sudo apt upgrade                # zaktualizuj wszystkie pakiety
sudo apt upgrade pakiet         # zaktualizuj konkretny pakiet

apt install - instalacja pakietów#

Komenda do instalowania nowych pakietów z repozytoriów Debian/Ubuntu. apt automatycznie rozwiązuje zależności i instaluje wszystkie wymagane biblioteki i pakiety pomocnicze.

sudo apt install htop                       # zainstaluj jeden pakiet
sudo apt install nginx mysql-server         # zainstaluj wiele pakietów
sudo apt install -y pakiet                  # zainstaluj bez pytania o potwierdzenie

apt remove - usuwanie pakietów#

Usuwa zainstalowane pakiety z systemu. remove pozostawia pliki konfiguracyjne, podczas gdy purge usuwa wszystko. autoremove czyści pakiety, które zostały zainstalowane jako zależności, ale już nie są potrzebne.

sudo apt remove pakiet              # usuń pakiet
sudo apt purge pakiet               # usuń pakiet wraz z konfiguracją
sudo apt autoremove                 # usuń niepotrzebne zależności

apt search - wyszukiwanie pakietów#

Przeszukuje repozytoria w poszukiwaniu pakietów pasujących do podanej frazy. apt show wyświetla szczegółowe informacje o konkretnym pakiecie, w tym wersję, zależności i opis.

apt search nginx                # wyszukaj pakiety zawierające "nginx"
apt show nginx                  # pokaż szczegóły pakietu

Pełna aktualizacja systemu#

Sekwencja poleceń do pełnej aktualizacji systemu: pobierz listę pakietów, zainstaluj aktualizacje i wyczyść niepotrzebne zależności. Operator && gwarantuje, że następne polecenie wykona się tylko jeśli poprzednie zakończyło się sukcesem.

sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y

Monitorowanie systemu#

htop - interaktywny monitor procesów#

htop to interaktywny monitor procesów z kolorowym, czytelnym interfejsem. Wyświetla użycie CPU, RAM, listę procesów i pozwala na łatwe zarządzanie nimi. To ulepszona wersja starego top, z której korzystasz praktycznie codziennie.

htop

Skróty:

  • F9 - zabij proces
  • F6 - sortuj
  • F5 - widok drzewa
  • q - wyjście

Jeśli nie masz htop:

sudo apt update && sudo apt install htop

top - monitor procesów#

Klasyczny monitor procesów dostępny we wszystkich dystrybucjach Linux. Mniej wygodny niż htop, ale zawsze dostępny nawet na minimalnych instalacjach serwerowych, gdzie htop może nie być zainstalowany.

top

ps - lista procesów#

Wyświetla snapshot (migawkę) aktualnie uruchomionych procesów. W odróżnieniu od top i htop, ps pokazuje stan w konkretnym momencie, nie aktualizuje się na żywo. Przydatne w skryptach i do szybkiego sprawdzenia czy dany proces działa.

ps aux                  # wszystkie procesy
ps aux | grep nginx     # znajdź proces nginx
ps -ef                  # wszystkie procesy w innym formacie

df - użycie dysku#

Polecenie df (disk filesystem) pokazuje ile miejsca jest zajęte i wolne na zamontowanych systemach plików. Flaga -h wyświetla rozmiary w czytelnym formacie (GB, MB) zamiast w kilobajtach.

df -h               # pokaż użycie dysku w czytelnym formacie
df -h /             # użycie konkretnego punktu montowania

du - rozmiar katalogów#

du (disk usage) oblicza rozmiar katalogów i plików. W odróżnieniu od df, które pokazuje całe systemy plików, du pozwala sprawdzić rozmiar konkretnych katalogów - przydatne gdy dysk się zapełnia i szukasz co zajmuje najwięcej miejsca.

du -sh /home/username/          # rozmiar katalogu
du -sh *                        # rozmiar wszystkich elementów w bieżącym katalogu
du -h --max-depth=1 /var/       # rozmiar podkatalogów (1 poziom)

free - pamięć RAM#

Wyświetla informacje o użyciu pamięci RAM i swap. Pokazuje ile pamięci jest całkowicie wolne, ile używane, ile w cache oraz ile dostępne dla aplikacji.

free -h             # użycie pamięci RAM i swap

uptime - czas działania systemu#

Pokazuje jak długo system działa bez restartu, liczbę zalogowanych użytkowników oraz średnie obciążenie systemu (load average) w ostatnich 1, 5 i 15 minutach.

uptime              # jak długo działa system i obciążenie

Inne przydatne polecenia#

history - historia poleceń#

Bash zapisuje historię wszystkich wykonanych poleceń. history pozwala przeszukać tę historię, a specjalne skróty ! umożliwiają szybkie ponowne wykonanie wcześniejszych komend bez przepisywania.

history                 # wyświetl historię poleceń
history | grep apt      # znajdź polecenia apt w historii
!123                    # uruchom polecenie nr 123 z historii
!!                      # uruchom poprzednie polecenie

man - dokumentacja#

man (manual) wyświetla oficjalną dokumentację dla praktycznie każdego polecenia w systemie. To Twoje pierwsze źródło informacji - zanim szukasz w Google, sprawdź man.

man ls              # manual dla polecenia ls
man chmod           # pomoc dla chmod

clear - wyczyść terminal#

Czyści ekran terminala dla lepszej czytelności. Możesz też użyć skrótu Ctrl+L, który działa szybciej.

clear               # wyczyść ekran terminala (lub Ctrl+L)

wget i curl - pobieranie plików#

Dwa popularne narzędzia do pobierania plików z internetu i wykonywania requestów HTTP. wget jest prostsze i lepsze do pobierania plików, curl bardziej elastyczne i używane do testowania API i wykonywania złożonych requestów HTTP.

wget https://example.com/file.zip           # pobierz plik
curl -O https://example.com/file.zip        # pobierz plik (curl)
curl https://api.example.com                # wykonaj request HTTP

Podsumowanie#

Poznanie tych podstawowych poleceń to fundament pracy z Linuxem. Kluczem do ich opanowania jest praktyka - używaj terminala regularnie, nawet do prostych operacji na plikach. Z czasem te polecenia staną się drugą naturą, a Twoja produktywność wzrośnie.

Kolejnym krokiem może być nauka SSH i zdalnego zarządzania serwerem, co pozwoli Ci zarządzać systemami Linux z dowolnego miejsca. Pamiętaj, że większość poleceń ma znacznie więcej opcji - zawsze możesz użyć man polecenie lub polecenie --help aby dowiedzieć się więcej.