ps i top — co to jest?
ps (process status) i top (table of processes) to dwa najczęściej używane polecenia w systemie Linux służące do wyświetlania i monitorowania procesów uruchomionych w systemie. Oba pokazują informacje o programach działających w danej chwili, ale różnią się sposobem prezentacji danych:

ps— pokazuje statyczny zrzut (migawkę) listy procesów,top— pokazuje dynamiczny podgląd odświeżany na bieżąco.
To podstawowy temat w kwalifikacji INF.02 (Administracja i eksploatacja systemów komputerowych) — pytania CKE sprawdzają znajomość różnic między tymi poleceniami, ale również zakończanie procesów (kill) oraz odróżnianie poleceń diagnostycznych od poleceń operacji na plikach.
Polecenie ps
Polecenie ps wypisuje listę procesów w tabeli, w stanie z chwili wywołania. Wynik nie odświeża się automatycznie — żeby zobaczyć aktualizację, trzeba uruchomić polecenie ponownie.
Najczęściej używane warianty
ps # procesy bieżącego użytkownika w bieżącym terminalu
ps aux # WSZYSTKIE procesy w systemie (styl BSD)
ps -ef # WSZYSTKIE procesy (styl Unix, z PID rodzica)
ps -u jan # procesy konkretnego użytkownika
ps -p 1234 # konkretny proces o PID 1234
Kolumny wyniku ps aux
| Kolumna | Znaczenie |
|---|---|
USER | użytkownik uruchamiający proces |
PID | numer identyfikacyjny procesu (Process ID) |
%CPU | aktualne zużycie procesora |
%MEM | zużycie pamięci RAM |
VSZ | wielkość pamięci wirtualnej |
RSS | wielkość pamięci fizycznej |
STAT | stan procesu (R, S, Z, D, T) |
START | czas startu procesu |
TIME | łączny czas CPU |
COMMAND | polecenie, które uruchomiło proces |
Typowe użycie z grep
Bardzo często ps łączy się z grep przez potok (pipe), aby znaleźć konkretny proces:
ps aux | grep apache # wszystkie procesy apache
ps aux | grep firefox # wszystkie procesy firefox
ps -ef | grep ssh # procesy ssh w stylu Unix
Wynik to lista wszystkich procesów zawierających w nazwie podany ciąg.
Polecenie top
Polecenie top pokazuje dynamiczny, odświeżany w czasie rzeczywistym widok procesów. Listę procesów aktualizuje się co kilka sekund — dzięki temu można obserwować bieżące obciążenie systemu.
Uruchomienie
top # uruchomienie z domyślnymi ustawieniami
top -u jan # procesy użytkownika jan
top -p 1234 # konkretny proces 1234
Co pokazuje top?
W górnej części ekranu:
- czas pracy systemu (uptime) i obciążenie (load average),
- liczba aktywnych zadań,
- użycie procesora (%us, %sy, %id, %wa),
- użycie pamięci RAM i swap.
W dolnej części:
- listę procesów sortowaną domyślnie wg zużycia CPU,
- PID, użytkownika, priorytet (PR), wartość nice (NI),
- zużycie pamięci wirtualnej i fizycznej,
- czas CPU i polecenie.
Interaktywne klawisze w top
top działa interaktywnie — można sterować nim z klawiatury:
| Klawisz | Działanie |
|---|---|
q | wyjście z programu |
k | zakończenie procesu (zapyta o PID i sygnał) |
r | zmiana priorytetu (renice) |
M | sortowanie wg zużycia pamięci |
P | sortowanie wg zużycia CPU |
T | sortowanie wg czasu CPU |
u | filtruj po użytkowniku |
h | pomoc |
1 | pokaż obciążenie wszystkich rdzeni CPU |
Najważniejsza różnica — pytanie egzaminacyjne
To klasyczne pytanie CKE: jaka jest zasadnicza różnica między ps a top?
psprezentuje statyczny stan procesów (migawkę z konkretnego momentu),
topprezentuje dynamicznie aktualizowaną listę procesów (odświeżaną w czasie rzeczywistym).
W odpowiedzi egzaminacyjnej zwykle pojawiają się sformułowania w stylu:
- „
topaktualizuje na bieżąco, apspokazuje wynik tylko raz" ✅ - „
pspokazuje statyczny zrzut,topdynamicznie odświeża" ✅
Zakończanie procesów — polecenie kill
Do zakończenia procesu w Linuksie służy polecenie kill. Wymaga podania numeru PID procesu (znalezionego np. przez ps lub top).
Składnia
kill 1234 # wyśle sygnał SIGTERM (domyślnie 15) — łagodne zakończenie
kill -9 1234 # wyśle sygnał SIGKILL (9) — wymuszone zakończenie
kill -15 1234 # to samo co kill 1234 (SIGTERM)
killall firefox # zakończy wszystkie procesy o nazwie firefox
pkill firefox # zakończy procesy pasujące do nazwy
Sygnały — najważniejsze
| Sygnał | Numer | Znaczenie |
|---|---|---|
| SIGTERM | 15 | grzeczne zakończenie — proces może się posprzątać |
| SIGKILL | 9 | bezwzględne zakończenie — proces NIE może go zignorować |
| SIGHUP | 1 | przeładowanie konfiguracji (np. po edycji configa) |
| SIGINT | 2 | przerwanie (jak Ctrl+C w terminalu) |
| SIGSTOP | 19 | zatrzymanie procesu (jak Ctrl+Z) |
| SIGCONT | 18 | wznowienie zatrzymanego procesu |
Pytanie CKE: „Które polecenie w systemie Linux służy do zakończenia procesu?" →
kill(lubkillall,pkill).
Kiedy SIGKILL (kill -9)?
Sygnał SIGKILL używa się, gdy proces nie reaguje na SIGTERM — czyli „zwiesił się" i nie kończy się normalnie. SIGKILL jest niewolicjonalny: jądro systemu zabija proces niezależnie od jego stanu. Wady: proces nie ma szansy zapisać danych ani zamknąć plików.
W praktyce zawsze najpierw próbuj kill PID (SIGTERM), a dopiero gdy nie działa — kill -9 PID (SIGKILL).
Polecenia diagnostyczne sprzętu w Linuksie
Pytanie CKE: „Które polecenie w systemie Linux nie pozwala na diagnozowanie sprzętu komputerowego?" — wymaga znajomości typowych poleceń diagnostycznych.
Polecenia DO diagnostyki sprzętu
| Polecenie | Co diagnozuje |
|---|---|
lspci | wszystkie urządzenia na magistrali PCI (karta grafiki, sieciowa, dźwiękowa) |
lsusb | urządzenia podłączone przez USB |
lshw | szczegółowy wykaz całego sprzętu komputera |
dmidecode | dane z BIOS/UEFI (płyta, RAM, procesor) |
dmesg | komunikaty jądra (m.in. wykrywanie urządzeń, błędy sprzętu) |
hdparm | parametry dysków twardych |
smartctl | dane S.M.A.R.T. dysków HDD/SSD |
free | użycie pamięci RAM i swap |
df | użycie miejsca na dyskach |
du | rozmiar katalogów i plików |
top / htop | obciążenie CPU i RAM (jako diagnostyka wydajności) |
uptime | czas pracy systemu + obciążenie |
uname -a | informacje o jądrze i architekturze |
cat /proc/cpuinfo | szczegóły procesora |
cat /proc/meminfo | szczegóły pamięci RAM |
Polecenia, które NIE diagnozują sprzętu
| Polecenie | Co robi |
|---|---|
ls | listuje pliki w katalogu |
mkdir | tworzy katalog |
rmdir / rm | usuwa katalog / pliki |
cp | kopiuje pliki |
mv | przenosi/zmienia nazwę pliku |
cat | wyświetla zawartość pliku |
grep | wyszukuje wzorzec w tekście |
chmod | zmienia uprawnienia plików (więcej w chmod Linux) |
chown | zmienia właściciela pliku |
pwd | wypisuje ścieżkę bieżącego katalogu |
echo | wypisuje tekst na ekran |
W pytaniu „które polecenie NIE pozwala diagnozować sprzętu" odpowiedzią jest zwykle jedno z tych operujących na plikach (najczęściej: ls, mkdir, cp, chmod itp.).
htop — ulepszony top
htop to nowoczesna alternatywa dla top:
- ma kolorowy interfejs z paskami obciążenia CPU,
- pokazuje drzewo procesów (
F5), - pozwala wybierać procesy myszką,
- ma intuicyjne klawisze funkcyjne (F1–F10),
- ma lepsze sortowanie i filtrowanie.
Nie jest częścią standardowej dystrybucji Linuksa, ale można go zainstalować:
sudo apt install htop # Debian/Ubuntu
sudo dnf install htop # Fedora/RHEL
htop w pytaniach egzaminacyjnych pojawia się rzadko, ale to dobry temat do zapamiętania jako rozszerzenie funkcji top.
Stany procesów w Linuksie
W kolumnie STAT (ps) lub S (top) pojawiają się litery oznaczające stan procesu:
| Symbol | Stan | Znaczenie |
|---|---|---|
| R | Running | proces działa lub jest gotowy do uruchomienia |
| S | Sleeping (interruptible) | proces śpi — czeka na zdarzenie (np. I/O) |
| D | Uninterruptible sleep | proces czeka na operację I/O (nie można go przerwać) |
| Z | Zombie | proces zakończony, ale wciąż w tablicy procesów |
| T | Stopped | proces zatrzymany (np. przez SIGSTOP) |
| < | High priority | wysoki priorytet |
| N | Low priority (nice) | obniżony priorytet |
| + | Foreground | proces w pierwszym planie |
Procesy Zombie (Z) to martwe procesy, które „rodzic" jeszcze nie odebrał — nie zużywają zasobów, ale zajmują wpis w tablicy. Często usuwa je zakończenie procesu rodzica.
Praktyczne przykłady — pytania egzaminacyjne
Przykład 1: znaleźć i zabić proces
ps aux | grep firefox # znajdź PID firefoxa
kill 1234 # zakończ proces o PID 1234
# jeśli nie zadziała:
kill -9 1234 # wymuszone zakończenie
Przykład 2: monitorować obciążenie
top # uruchom top
# w top: naciśnij P (sortowanie wg CPU)
# w top: naciśnij M (sortowanie wg pamięci)
# w top: q (wyjście)
Przykład 3: sprawdzić sprzęt
lspci # urządzenia PCI
lsusb # urządzenia USB
free -h # pamięć RAM (czytelnie)
df -h # miejsce na dyskach (czytelnie)
lshw # pełny wykaz sprzętu (jako root)
Powiązane tematy
- chmod Linux — zmiana uprawnień plików w Linuksie.
- Powłoka bash — terminal, w którym uruchamia się ps/top.
- Procesy i wątki — koncepcja procesu w systemie operacyjnym.
- Systemd — nowoczesny menedżer usług w Linuksie (
systemctl status). - Crontab — harmonogram zadań (procesy uruchamiane cyklicznie).
Częste pomyłki — nie myl tego!
ps≠top—psstatyczne (zrzut w danej chwili),topdynamiczne (odświeżane).kill≠killall—killwymaga PID (numeru),killallprzyjmuje nazwę procesu.killto nie zabijanie — to wysłanie sygnału procesowi (domyślnie SIGTERM = grzeczne).kill -9to nie liczba 9 procesów — to sygnał numer 9 (SIGKILL) do jednego procesu.topto nie polecenie do top procesów po pamięci — domyślnie sortuje wg CPU (po M sortuje wg RAM).ps aux≠ps -ef— to dwa różne style (BSD vs Unix), ale dają podobne rezultaty.lsnie diagnozuje sprzętu —lslistuje pliki, do sprzętu służylspci,lsusb,lshw,dmesg.freenie zwalnia pamięci — to polecenie WYŚWIETLAJĄCE użycie RAM.grepnie kończy procesów — to filtr tekstu; do zabijania służykill.- proces Zombie ≠ działający proces — to martwy proces, którego rodzic jeszcze nie odebrał statusu.
Najważniejsze do zapamiętania
ps wyświetla statyczny zrzut procesów (migawka), top pokazuje je dynamicznie (na bieżąco) — to kluczowa różnica egzaminacyjna. ps aux i ps -ef to dwa najpopularniejsze wywołania. Do zakończenia procesu służy polecenie kill PID (SIGTERM 15) lub kill -9 PID (SIGKILL — wymuszone). Polecenia diagnostyczne sprzętu: lspci, lsusb, lshw, dmesg, dmidecode, free, df, uname, smartctl. Polecenia operujące na plikach (ls, mkdir, cp, mv, rm, cat, chmod) NIE diagnozują sprzętu. htop to ulepszona wersja top z kolorowym interfejsem.