Podstawy Linuxa część 3: zaawansowane komendy
To trzecia część przewodnika po podstawach Linuxa. Jeśli dopiero zaczynasz, zapoznaj się najpierw z pierwszą częścią, gdzie omawiamy podstawy i filozofię Linuxa, oraz drugą częścią, w której zaczynamy praktyczną naukę podstawowych komend. Ten wpis skupia się na zaawansowanych poleceniach do zarządzania systemem, procesami, użytkownikami i siecią.
Informacje o systemie
uname
Wyświetla podstawowe informacje o systemie i jądrze.
uname -aFlagi:
-a– wszystkie dostępne informacje-s– nazwa systemu (Linux)-r– wersja jądra-m– architektura procesora (x86_64, aarch64)-o– system operacyjny
Przykład:
$ uname -r
6.14.0-36-generichostnamectl
Zarządza nazwą hosta i wyświetla informacje o systemie. Bardziej szczegółowe niż uname.
hostnamectlZmiana hostname:
sudo hostnamectl set-hostname nowa-nazwaWyświetla:
- Hostname
- Static hostname
- Icon name
- Chassis
- Machine ID
- Boot ID
- Operating System
- Kernel
- Architecture
id
Wyświetla identyfikatory użytkownika i grup.
idPrzykład:
$ id
uid=1000(japancat) gid=1000(japancat) grupy=1000(japancat),4(adm),27(sudo),999(docker)Flagi:
-u– tylko UID-g– tylko GID grupy podstawowej-G– wszystkie GID grup-n– nazwy zamiast numerów
whoami
Wyświetla nazwę aktualnego użytkownika. Prostsza wersja id.
whoamiZarządzanie procesami
kill
Wysyła sygnał do procesu (domyślnie SIGTERM).
kill PIDNajpopularniejsze sygnały:
SIGTERM(15) – prośba o zakończenie (default)SIGKILL(9) – natychmiastowe zakończenie (nie da się zignorować)SIGHUP(1) – przeładowanie konfiguracjiSIGSTOP(19) – wstrzymanie procesu
Przykłady:
kill 1234 # SIGTERM do procesu 1234
kill -9 1234 # SIGKILL do procesu 1234
kill -HUP 1234 # przeładuj konfiguracjękillall
Zabija wszystkie procesy o podanej nazwie.
killall firefox
killall -9 chromeUWAGA: Używaj ostrożnie, zabija wszystkie instancje programu.
jobs
Wyświetla procesy działające w tle w aktualnej sesji shella.
jobsPrzykład:
$ jobs
[1] Running ping google.com &
[2]- Stopped vim plik.txt
[3]+ Running sleep 100 &Znaki:
+– ostatnio uruchomiony job (default dlafg/bg)-– przedostatni job
bg
Wznawia zatrzymany proces w tle.
bg %1 # wznów job nr 1
bg # wznów ostatni jobfg
Przenosi proces z tła na pierwszy plan.
fg %1 # przenieś job nr 1 na pierwszy plan
fg # przenieś ostatni job& (ampersand)
Uruchamia komendę w tle od razu.
ping google.com &Workflow:
- Uruchom proces:
ping google.com - Zatrzymaj:
Ctrl+Z - Wznów w tle:
bg - Zobacz jobs:
jobs - Przenieś na pierwszy plan:
fg
Shell i nawigacja
history
Wyświetla historię wykonanych komend.
history
history 20 # ostatnie 20 komendPrzydatne sztuczki:
!! # powtórz ostatnią komendę
!123 # wykonaj komendę nr 123 z historii
!ping # wykonaj ostatnią komendę zaczynającą się na "ping"
sudo !! # powtórz ostatnią komendę z sudoSzukanie w historii:
Ctrl+R– wyszukiwanie wsteczCtrl+S– wyszukiwanie w przód
Historia przechowywana w ~/.bash_history lub ~/.zsh_history.
alias
Tworzy skróty do często używanych komend.
alias ll='ls -lah'
alias update='sudo apt update && sudo apt upgrade -y'
alias gs='git status'Zobacz aktualne aliasy:
aliasUsuń alias:
unalias llAliasy permanentne dodaj do ~/.bashrc lub ~/.zshrc. Jeśli chcesz dowiedzieć się więcej o konfiguracji terminala, sprawdź mój artykuł o kolorowym terminalu w Linuxie.
Autouzupełnianie
Tab – autouzupełnianie komend, ścieżek, nazw plików.
cd /var/lo[Tab] # uzupełni do /var/log/
systemctl sta[Tab] # pokaże: start, statusTab Tab – pokaż wszystkie możliwości, jeśli jest więcej niż jedna.
Zaawansowane autouzupełnianie (bash-completion):
sudo apt install bash-completionPrzekierowania
Kierowanie wyjścia i wejścia komend.
> (nadpisanie)
Przekierowuje stdout do pliku (nadpisuje zawartość).
echo "Hello" > plik.txt
ls -la > lista.txt>> (dopisanie)
Przekierowuje stdout do pliku (dopisuje na końcu).
echo "Linia 1" > log.txt
echo "Linia 2" >> log.txt< (wejście)
Przekierowuje zawartość pliku na stdin.
sort < lista.txt
mysql -u root -p database < dump.sqlKombinacje:
cat plik1.txt > plik2.txt # kopiowanie
ls -la >> log.txt 2>&1 # stdout i stderr do pliku
command > output.txt 2> error.txt # osobne pliki dla stdout/stderr
command &> all.txt # stdout i stderr do jednego plikuArchiwizacja
tar
Główne narzędzie do archiwizacji w Linuxie.
Tworzenie archiwum:
tar -czf archiwum.tar.gz katalog/
tar -cjf archiwum.tar.bz2 katalog/
tar -cJf archiwum.tar.xz katalog/Flagi:
-c– create (tworzenie)-x– extract (wypakowywanie)-t– list (listowanie zawartości)-v– verbose (pokazuj pliki)-f– file (nazwa archiwum)-z– gzip-j– bzip2-J– xz
Wypakowywanie:
tar -xzf archiwum.tar.gz
tar -xzf archiwum.tar.gz -C /tmp/ # wypakuj do /tmp/Listowanie zawartości:
tar -tzf archiwum.tar.gzDodawanie plików do archiwum:
tar -rzf archiwum.tar.gz nowy-plik.txtzip / unzip
Kompatybilność z Windowsem i ogólnym światem.
Tworzenie archiwum:
zip -r archiwum.zip katalog/
zip plik.zip plik.txtWypakowywanie:
unzip archiwum.zip
unzip archiwum.zip -d /tmp/ # wypakuj do /tmp/Listowanie zawartości:
unzip -l archiwum.zipgzip
Kompresja pojedynczych plików.
gzip plik.txt # tworzy plik.txt.gz (usuwa oryginał)
gzip -k plik.txt # zachowaj oryginał
gunzip plik.txt.gz # dekompresjaKompresja na stdout:
gzip -c plik.txt > plik.txt.gz # zachowaj oryginałSieć
ping
Testuje łączność z hostem.
ping google.com
ping -c 4 8.8.8.8 # tylko 4 pakiety
ping -i 0.2 192.168.1.1 # co 0.2s (wymaga sudo)Flagi:
-c N– liczba pakietów-i N– interwał w sekundach-W N– timeout-s N– rozmiar pakietu
curl
HTTP client do pobierania i testowania API.
curl https://example.com
curl -o plik.html https://example.com # zapisz do pliku
curl -O https://example.com/plik.zip # zapisz z nazwą z URLHTTP metody:
curl -X GET https://api.example.com/users
curl -X POST https://api.example.com/users -d '{"name":"Jan"}'
curl -X DELETE https://api.example.com/users/1Headers i autentykacja:
curl -H "Authorization: Bearer TOKEN" https://api.example.com
curl -u user:password https://example.comFollow redirects:
curl -L https://example.comwget
Pobieranie plików z sieci.
wget https://example.com/plik.zip
wget -O nowa-nazwa.zip https://example.com/plik.zip
wget -c https://example.com/duzy-plik.iso # wznów przerwane pobieranieRekurencyjne pobieranie:
wget -r -np -k https://example.com/ # pobierz całą stronęFlagi:
-c– continue (wznów pobieranie)-r– recursive-np– no parent (nie schodź wyżej)-k– convert links-O– output filename
ip
Zarządzanie interfejsami sieciowymi, adresami IP i routingiem. Zastępuje stare ifconfig.
Wyświetl interfejsy:
ip addr # wszystkie interfejsy
ip a # skrót
ip link # statusy interfejsówDodaj/usuń IP:
sudo ip addr add 192.168.1.100/24 dev eth0
sudo ip addr del 192.168.1.100/24 dev eth0Włącz/wyłącz interfejs:
sudo ip link set eth0 up
sudo ip link set eth0 downRouting:
ip route # tabela routingu
sudo ip route add default via 192.168.1.1
sudo ip route del default via 192.168.1.1ss
Socket statistics – informacje o połączeniach sieciowych. Zastępuje netstat.
ss -tuln # listening ports (TCP i UDP)
ss -tulnp # z procesami (wymaga sudo)
ss -s # statystykiFlagi:
-t– TCP-u– UDP-l– listening-n– numery portów zamiast nazw-p– procesy-a– wszystkie połączenia
Filtrowanie:
ss -tn state established # aktywne połączenia TCP
ss -tn dst 192.168.1.1 # połączenia do IP
ss -tn sport :22 # połączenia na porcie 22Jeśli chcesz dowiedzieć się więcej o pracy zdalnej z serwerami, sprawdź mój poradnik jak używać SSH.
Zarządzanie użytkownikami
useradd
Tworzy nowego użytkownika.
sudo useradd janusz
sudo useradd -m -s /bin/bash janusz # z katalogiem domowym i shellem
sudo useradd -m -G sudo,docker janusz # z grupamiFlagi:
-m– utwórz katalog domowy-s– shell (default: /bin/sh)-G– dodatkowe grupy-d– niestandardowy katalog domowy-u– UID
Lepsze: adduser (interaktywny wrapper):
sudo adduser januszuserdel
Usuwa użytkownika.
sudo userdel janusz
sudo userdel -r janusz # usuń z katalogiem domowymusermod
Modyfikuje użytkownika.
sudo usermod -aG docker janusz # dodaj do grupy
sudo usermod -s /bin/zsh janusz # zmień shell
sudo usermod -l nowanazwa stara # zmień login
sudo usermod -L janusz # zablokuj konto
sudo usermod -U janusz # odblokuj kontoFlagi:
-aG– append to groups (dodaj do grup)-G– set groups (ustaw grupy, nadpisuje)-s– shell-l– login name-L– lock-U– unlock
passwd
Zmienia hasło użytkownika.
passwd # zmień swoje hasło
sudo passwd janusz # zmień hasło użytkownika januszInne operacje:
sudo passwd -l janusz # zablokuj hasło (lock)
sudo passwd -u janusz # odblokuj hasło (unlock)
sudo passwd -d janusz # usuń hasło (delete)
sudo passwd -e janusz # wymuś zmianę przy logowaniu (expire)Jeśli chcesz skonfigurować sudo bez hasła, zobacz mój poradnik jak używać sudo bez hasła.
Zarządzanie usługami
systemctl
Główne narzędzie do zarządzania usługami w systemach z systemd (Debian, Ubuntu, Fedora, Arch itp.).
Status usługi:
systemctl status nginx
systemctl status ssh
systemctl is-active nginx # czy działa
systemctl is-enabled nginx # czy autostartStart/stop/restart:
sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx
sudo systemctl reload nginx # przeładuj konfigurację bez restartuAutostart:
sudo systemctl enable nginx # włącz autostart
sudo systemctl disable nginx # wyłącz autostart
sudo systemctl enable --now nginx # enable + startLista usług:
systemctl list-units --type=service # działające usługi
systemctl list-units --type=service --all # wszystkie
systemctl list-unit-files --type=service # z statusem enabled/disabledLogi usługi (journalctl):
sudo journalctl -u nginx # logi usługi nginx
sudo journalctl -u nginx -f # follow (na żywo)
sudo journalctl -u nginx --since today
sudo journalctl -u nginx --since "2025-11-01"Restart systemu:
sudo systemctl reboot
sudo systemctl poweroffPodsumowanie
Poznanie tych komend stawia Cię na dobrej drodze do sprawnego administrowania systemami Linux. Zarządzanie procesami (kill, jobs, bg, fg), użytkownikami (useradd, usermod, passwd), usługami (systemctl) i diagnostyka sieci (ping, ip, ss) to podstawa codziennej pracy administratora. Archiwizacja (tar, gzip) i przekierowania (>, >>, <) przydają się przy backupach i automatyzacji. Praktykuj te polecenia regularnie – doświadczenie to najlepszy nauczyciel w świecie Linuxa.

