Tech Handbook Null Yard

Debian - shell

To kompendium dotyczy codziennej pracy administracyjnej w Debianie z powłoki. Dla przeglądu samych powłok zobacz Shelle w Debianie - przegląd, a dla automatyzacji Programowanie w shellu. Zdalną pracę opisuje SSH i zdalna administracja.

Samodzielne kompendium do codziennej pracy w Debianie z terminala lub przez SSH.

Cel: sprawnie poruszać się po systemie, pracować z plikami, procesami i siecią, aktualizować pakiety, obsługiwać systemd, czytać logi i diagnozować typowe awarie.


Debian - administrator, system i katalogi

sudo

Polecenie uruchamia pojedynczą komendę z uprawnieniami administratora:

sudo apt update

Interaktywny shell roota:

sudo -i

Po zakończeniu:

exit

Nie ma potrzeby pracować cały czas jako root. sudo ogranicza ryzyko przypadkowego wykonania destrukcyjnej komendy.

Wersja Debiana

cat /etc/os-release

Przykładowy wynik:

PRETTY_NAME="Debian GNU/Linux 13 (trixie)"
NAME="Debian GNU/Linux"
VERSION_ID="13"

Najważniejsze katalogi

/            korzeń systemu
/etc         konfiguracja systemowa
/home        katalogi użytkowników
/root        katalog domowy roota
/var         zmienne dane systemowe
/var/log     klasyczne pliki logów
/tmp         dane tymczasowe
/usr         programy, biblioteki i dane
/opt         dodatkowe oprogramowanie
/dev         urządzenia
/proc        wirtualne informacje o procesach i kernelu
/sys         informacje o urządzeniach i kernelu
/boot        kernel i pliki startowe
/srv         dane usług, jeśli administrator tak je organizuje

1. Shell, terminal i polecenia - co właściwie robisz?

Terminal to okno, w którym wpisujesz polecenia.

Shell to program, który te polecenia interpretuje.

Typowe shelle:

  • Debian domyślnie często używa bash dla zwykłych użytkowników.
  • możesz też używać zsh, fish itd.

Sprawdzenie aktualnego shella:

echo "$SHELL"

Przykładowy wynik:

/bin/bash

To oznacza, że twoim domyślnym shellem jest Bash.

Sprawdzenie, jaki proces shella działa teraz:

ps -p $$ -o comm=

Przykładowy wynik:

bash

2. pwd - gdzie jestem?

Polecenie:

pwd

pwd oznacza print working directory.

Pokazuje pełną ścieżkę do katalogu, w którym aktualnie się znajdujesz.

Przykład:

pwd

Wynik:

/home/user/projects/example-site

Dzięki temu wiesz, że wszystkie polecenia z nazwami względnymi będą wykonywane względem tego katalogu.

Przydaje się szczególnie wtedy, gdy:

  • pracujesz głęboko w strukturze katalogów,
  • używasz rm, mv, cp,
  • logujesz się na obcy serwer i nie pamiętasz, gdzie jesteś.

3. ls - co jest w katalogu?

Podstawowa forma:

ls

Pokazuje pliki i katalogi w bieżącym katalogu.

Przykład:

ls

Wynik:

README.md  config  main.go  static  templates

Najważniejsze przełączniki

-l

ls -l

Pokazuje szczegóły:

  • prawa dostępu,
  • liczbę dowiązań,
  • właściciela,
  • grupę,
  • rozmiar,
  • datę modyfikacji,
  • nazwę.

Przykład:

-rw-r--r--  1 user user  1820 Sep 19 07:00 README.md
drwxr-xr-x  3 user user  4096 Sep 18 22:10 static

-a

ls -a

Pokazuje także pliki ukryte.

W Unixie plik jest ukryty, jeśli nazwa zaczyna się od kropki:

.git
.ssh
.config
.bashrc

-h

ls -lh

Pokazuje rozmiary w czytelnej formie:

1.2K
54M
2.1G

zamiast:

1256
56623104
2254857830

-t

ls -lt

Sortuje od najnowszych plików.

-S

ls -lS

Sortuje według rozmiaru.

Najczęściej używana wersja

ls -lah

Dostajesz:

  • wszystkie pliki,
  • szczegóły,
  • czytelne rozmiary.

4. cd - zmiana katalogu

Polecenie:

cd katalog

Przechodzi do wskazanego katalogu.

Przykład:

cd /etc

Teraz pracujesz w:

/etc

Najważniejsze warianty

Katalog wyżej

cd ..

Przykład:

/home/user/projects

po:

cd ..

trafisz do:

/home/user

Katalog domowy

cd ~

albo samo:

cd

Przenosi do katalogu domowego użytkownika.

Poprzedni katalog

cd -

Przełącza między bieżącym i poprzednim katalogiem.

Przykład:

cd /etc
cd /var/log
cd -

wróci do:

/etc

5. Ścieżki względne i absolutne

Ścieżka absolutna zaczyna się od /.

Przykład:

/etc/nginx/nginx.conf

Ścieżka względna jest liczona od bieżącego katalogu.

Jeśli jesteś w:

/home/user/project

to:

cat config/app.conf

oznacza:

/home/user/project/config/app.conf

.

Bieżący katalog:

./script.sh

..

Katalog nadrzędny:

../config

6. touch - tworzenie pustego pliku i zmiana czasu modyfikacji

touch test.txt

Jeśli plik nie istnieje, zostanie utworzony.

Jeśli istnieje, jego czas modyfikacji zostanie odświeżony.

Przydaje się do:

  • tworzenia pustych plików,
  • testów,
  • tworzenia placeholderów,
  • aktualizacji znacznika czasu.

Przykład:

touch README.md
ls -l README.md

7. mkdir - tworzenie katalogów

Podstawowo:

mkdir backup

Tworzy katalog backup.

-p

mkdir -p app/config/nginx

Tworzy całą strukturę, nawet jeśli katalogi pośrednie nie istnieją.

Bez -p polecenie zakończyłoby się błędem, jeśli app lub config nie istnieją.


8. cp - kopiowanie

Podstawowo:

cp source.txt copy.txt

Tworzy kopię pliku.

-r

Kopiowanie katalogu wraz z zawartością:

cp -r config/ config-backup/

-i

Pyta przed nadpisaniem:

cp -i config.conf config.conf.bak

-v

Pokazuje, co jest kopiowane:

cp -v file.txt /tmp/

Przykładowy wynik:

'file.txt' -> '/tmp/file.txt'

Typowy przypadek

Przed edycją konfiguracji:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

To prosty i bardzo dobry nawyk.


9. mv - przenoszenie i zmiana nazwy

Zmiana nazwy:

mv old.txt new.txt

Przeniesienie:

mv file.txt /tmp/

-i

Pyta przed nadpisaniem:

mv -i file.txt /etc/app/

-v

Pokazuje operację:

mv -v old.txt new.txt

10. rm - usuwanie

Usuwanie pliku:

rm file.txt

-i

Pyta przed usunięciem:

rm -i file.txt

-r

Usuwa katalog rekurencyjnie:

rm -r old-project/

-f

Wymusza usuwanie bez pytań:

rm -f file.txt

-rf

rm -rf directory/

Usuwa katalog i wszystko w środku bez pytania.

To jedna z najbardziej niebezpiecznych komend w Unixie.

Przed rm -rf warto sprawdzić:

pwd
ls

i dopiero potem wykonać usuwanie.


11. cat - szybkie wyświetlenie pliku

cat config.txt

Wyświetla cały plik na ekranie.

Dobre dla krótkich plików.

Słabe dla pliku mającego 20 000 linii, bo wszystko wyleci naraz.

Przydaje się do:

cat /etc/os-release
cat /etc/hostname
cat README.md

12. less - wygodne czytanie dużych plików

less /var/log/syslog

Pozwala przewijać plik.

Sterowanie:

strzałki       przewijanie
PgUp/PgDn      strony
g              początek
G              koniec
/tekst         wyszukiwanie
n              następny wynik
N              poprzedni wynik
q              wyjście

Bardzo przydatne:

less /var/log/messages

na FreeBSD albo:

journalctl | less

na Debianie.


13. head - początek pliku

Domyślnie:

head file.txt

pokazuje pierwsze 10 linii.

-n

head -n 30 file.txt

pokazuje pierwsze 30 linii.

Przydatne np. do szybkiego obejrzenia CSV, logu albo konfiguracji.


14. tail - koniec pliku

Domyślnie:

tail file.log

pokazuje ostatnie 10 linii.

-n

tail -n 100 file.log

pokazuje ostatnie 100 linii.

-f

tail -f file.log

Śledzi plik na żywo.

Kiedy aplikacja dopisuje nową linię do logu, widzisz ją od razu.

Zatrzymanie:

Ctrl+C

15. grep - wyszukiwanie tekstu

Najprościej:

grep "error" app.log

Pokazuje wszystkie linie zawierające error.

-i

Ignoruje wielkość liter:

grep -i "error" app.log

znajdzie:

error
Error
ERROR

-n

Pokazuje numery linii:

grep -n "listen" nginx.conf

-R

Szuka rekurencyjnie w katalogach:

grep -R "example.com" /etc/nginx/

-v

Pokazuje linie, które NIE pasują:

grep -v "^#" config.conf

Przydatne do usuwania komentarzy z widoku.

-E

Rozszerzone wyrażenia regularne:

grep -E "error|warning|critical" app.log

Bardzo praktyczne

Pokaż niepuste linie bez komentarzy:

grep -Ev '^\s*($|#)' config.conf

16. find - znajdowanie plików

Podstawowo:

find /etc -name "nginx.conf"

Szuka pliku od katalogu /etc.

-name

Dokładne dopasowanie wielkości liter:

find . -name "*.md"

-iname

Bez rozróżniania wielkości liter:

find . -iname "*.jpg"

-type

Tylko pliki:

find . -type f

Tylko katalogi:

find . -type d

-mtime

Pliki zmodyfikowane w ostatniej dobie:

find . -type f -mtime -1

Starsze niż 30 dni:

find . -type f -mtime +30

-size

Duże pliki:

find /var -type f -size +100M

Znajdzie pliki większe niż 100 MB.


17. which, command -v, whereis - gdzie jest program?

Najbardziej przenośne:

command -v nginx

Przykładowy wynik:

/usr/sbin/nginx

which:

which curl

też zwykle zwróci ścieżkę.

whereis może pokazać więcej:

whereis nginx

np.:

nginx: /usr/sbin/nginx /usr/share/man/man8/nginx.8.gz

18. file - czym jest plik?

file program

Możliwy wynik:

ELF 64-bit LSB pie executable, x86-64

albo:

ASCII text

albo:

PNG image data

Przydaje się, gdy rozszerzenie pliku nic nie mówi.


19. stat - szczegółowe informacje o pliku

stat README.md

Pokazuje m.in.:

  • rozmiar,
  • inode,
  • właściciela,
  • prawa,
  • czas modyfikacji,
  • czas dostępu.

20. man - dokumentacja poleceń

man grep

Otwiera manual do grep.

Sterowanie podobne jak w less.

Szukanie:

/pattern

Wyjście:

q

Sekcje manuala są ważne.

Przykład:

man 5 rc.conf

Sekcja 5 to formaty plików konfiguracyjnych.

Na FreeBSD to szczególnie użyteczne.


21. echo - wypisywanie tekstu i zmiennych

echo "Hello"

Wynik:

Hello

Zmienne:

echo "$HOME"

Przykład:

/home/user

Przydatne do sprawdzania:

echo "$PATH"
echo "$USER"
echo "$SHELL"

22. Przekierowanie > i >>

> zapisuje wynik do pliku i nadpisuje jego zawartość.

uname -a > system.txt

>> dopisuje na końcu:

df -h >> system.txt

Po tych dwóch poleceniach system.txt zawiera informacje o kernelu i dyskach.


23. Potok |

Przekazuje wynik jednego polecenia do kolejnego.

ps aux | grep nginx

Najpierw ps aux wypisuje procesy.

Potem grep nginx zostawia tylko linie zawierające nginx.

Inny przykład:

du -sh * | sort -h

Najpierw du liczy rozmiary katalogów.

Potem sort -h sortuje je według rozmiaru.


24. sort, uniq, wc

sort

sort names.txt

Sortuje linie alfabetycznie.

Numerycznie:

sort -n numbers.txt

Czytelne rozmiary:

sort -h

uniq

Usuwa powtarzające się kolejne linie:

sort names.txt | uniq

Zliczenie:

sort names.txt | uniq -c

wc

wc file.txt

Pokazuje:

  • linie,
  • słowa,
  • bajty.

Tylko linie:

wc -l file.txt

25. whoami, id, groups

whoami:

whoami

Wynik:

user

id:

id

Przykład:

uid=1000(user) gid=1000(user) groups=1000(user),27(sudo)

groups:

groups

Pokazuje grupy użytkownika.

Przydaje się przy problemach z prawami dostępu.


26. who i w

who:

who

Pokazuje zalogowanych użytkowników.

w:

w

Pokazuje:

  • kto jest zalogowany,
  • z jakiego adresu,
  • jak długo,
  • co wykonuje,
  • load average.

28. uname - kernel i platforma

uname

Najczęściej zwróci:

Linux

albo:

FreeBSD

-a

uname -a

Pokazuje dużo informacji naraz:

  • system,
  • hostname,
  • wersję kernela,
  • architekturę.

-r

uname -r

Wersja kernela.


30. hostname

hostname

Pokazuje nazwę komputera.

Debian może dodatkowo używać:

hostnamectl

który pokazuje:

  • hostname,
  • system,
  • kernel,
  • architekturę.

31. uptime

uptime

Przykładowy wynik:

07:24:01 up 12 days,  3:14,  1 user,  load average: 0.15, 0.22, 0.18

Odczytasz:

  • aktualny czas,
  • czas działania systemu,
  • liczbę użytkowników,
  • load average.

32. top - procesy i obciążenie

top

Pokazuje na żywo:

  • procesy,
  • CPU,
  • RAM,
  • load,
  • czas działania.

Wyjście:

q

Przydaje się, gdy system:

  • zwolnił,
  • grzeje CPU,
  • zużywa dużo RAM,
  • jakiś proces zwariował.

33. ps - lista procesów

Najczęściej:

ps aux

Pokazuje wszystkie procesy.

Najważniejsze kolumny:

  • USER - właściciel,
  • PID - numer procesu,
  • %CPU,
  • %MEM,
  • COMMAND.

Filtrowanie:

ps aux | grep nginx

34. pgrep - znajdź PID po nazwie

pgrep nginx

Wynik:

1234
1238

-f

Przeszukuje pełną linię polecenia:

pgrep -f "python.*worker"

-l

Pokazuje nazwę:

pgrep -l nginx

35. kill i pkill

Normalne zakończenie:

kill 1234

Wysyła domyślnie SIGTERM.

Proces może się poprawnie zamknąć.

Wymuszone:

kill -9 1234

wysyła SIGKILL.

Proces zostaje natychmiast zabity.

Stosuj dopiero, gdy zwykłe kill nie działa.

Po nazwie:

pkill nginx

36. df - wolne miejsce na systemach plików

df -h

Przykład:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2        40G   18G   20G  48% /

Najważniejsze:

  • Size - rozmiar,
  • Used - zajęte,
  • Avail - wolne,
  • Use% - procent,
  • Mounted on - punkt montowania.

To jedno z pierwszych poleceń przy dziwnym zachowaniu serwera.


37. du - ile miejsca zajmuje katalog?

du -sh /var/log

Przykład:

630M    /var/log

-s

Podsumowanie.

-h

Czytelny rozmiar.

Sprawdzenie katalogów w bieżącym miejscu:

du -sh *

Posortowanie:

du -sh * | sort -h

38. mount - co jest zamontowane?

mount

Pokazuje systemy plików i punkty montowania.

Przydaje się przy:

  • dyskach,
  • pendrive'ach,
  • ZFS,
  • NFS,
  • problemach z filesystemem.

39. lsblk - dyski w Debianie

lsblk

Przykład:

NAME   SIZE TYPE MOUNTPOINTS
sda    500G disk
├─sda1 512M part /boot
└─sda2 499G part /

Dostajesz czytelny widok dysków i partycji.

FreeBSD nie ma standardowo lsblk.


42. Debian - ip

Adresy:

ip addr

skrót:

ip a

Pokazuje:

  • interfejsy,
  • adresy IPv4,
  • IPv6,
  • MAC,
  • stan interfejsów.

Routing:

ip route

Przykład:

default via 192.168.1.1 dev enp3s0
192.168.1.0/24 dev enp3s0 proto kernel

Wiesz wtedy:

  • jaka jest brama,
  • którym interfejsem wychodzi ruch.

45. ping

ping 1.1.1.1

Testuje połączenie IP.

Jeśli działa:

ping google.com

testuje również DNS.

Typowa diagnostyka:

Jeśli:

ping 1.1.1.1

działa, ale:

ping google.com

nie działa, problem jest prawdopodobnie w DNS.


46. curl

Pobranie strony:

curl https://example.com

Pokazuje treść odpowiedzi.

Nagłówki:

curl -I https://example.com

Przykładowy wynik:

HTTP/2 200
content-type: text/html
server: nginx

Debugowanie:

curl -v https://example.com

Pobranie pliku:

curl -LO https://example.com/file.tar.gz

47. DNS - host i dig

host example.com

Pokazuje rozwiązany adres.

dig example.com

Pokazuje bardziej szczegółowe informacje DNS.

Tylko odpowiedź:

dig +short example.com

Przykład:

93.184.216.34

Debian:

sudo apt install dnsutils

FreeBSD:

pkg install bind-tools

48. Debian - ss

ss -tulpn

Pokazuje porty i procesy.

Przełączniki:

  • -t - TCP,
  • -u - UDP,
  • -l - nasłuchujące,
  • -p - proces,
  • -n - bez zamiany numerów na nazwy.

Przykład:

sudo ss -ltnp

Możesz dostać:

LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=1234,fd=6))

Wiesz wtedy:

  • port 80 działa,
  • nginx go obsługuje,
  • PID procesu to 1234.

50. ssh

Połączenie:

ssh user@server

Przykład:

ssh user@192.168.1.100

Inny port

ssh -p 2222 user@server

Więcej diagnostyki

ssh -v user@server

Jeszcze więcej:

ssh -vvv user@server

Przydaje się przy problemach z kluczami i autoryzacją.


51. scp

Kopiowanie na serwer:

scp file.txt user@server:/tmp/

Pobranie:

scp user@server:/tmp/file.txt .

Rekurencyjnie:

scp -r project/ user@server:/srv/

52. ssh-keygen

Nowoczesny klucz:

ssh-keygen -t ed25519

Pytania:

  • gdzie zapisać,
  • czy ustawić hasło.

Typowo powstają:

~/.ssh/id_ed25519
~/.ssh/id_ed25519.pub

Prywatnego klucza nie udostępniasz.


53. chmod

Prawa dostępu:

ls -l

Przykład:

-rwxr-xr--

Znaczenie:

owner: rwx
group: r-x
others: r--

Dodaj wykonywanie

chmod +x script.sh

Tryb numeryczny

chmod 644 file.conf

oznacza:

owner: rw-
group: r--
others: r--
chmod 755 script.sh

oznacza:

owner: rwx
group: r-x
others: r-x
chmod 600 secret.txt

oznacza:

owner: rw-
group: ---
others: ---

54. chown

Zmiana właściciela:

sudo chown user:user file.txt

Rekurencyjnie:

sudo chown -R www-data:www-data /srv/www

Przydaje się przy:

  • webserwerach,
  • plikach tworzonych przez roota,
  • wolumenach aplikacji,
  • backupach.

55. Debian - apt

apt update

sudo apt update

Nie aktualizuje jeszcze programów.

Pobiera nowe informacje o pakietach z repozytoriów.

Po wykonaniu zobaczysz m.in.:

Hit:1 ...
Get:2 ...
Reading package lists... Done

oraz informację, ile pakietów można zaktualizować.

apt upgrade

sudo apt upgrade

Aktualizuje zainstalowane pakiety.

Przed wykonaniem pokaże listę zmian i zapyta:

Do you want to continue? [Y/n]

Typowa aktualizacja

sudo apt update
sudo apt upgrade

apt full-upgrade

sudo apt full-upgrade

Może również:

  • doinstalować zależności,
  • usunąć pakiety,
  • wykonać bardziej złożone zmiany.

Instalacja

sudo apt install nginx

Usuwanie

sudo apt remove nginx

Zostawia część konfiguracji.

Purge

sudo apt purge nginx

Usuwa również konfigurację pakietu zarządzaną przez system pakietów.

Autoremove

sudo apt autoremove

Usuwa zależności, które nie są już potrzebne.

Szukanie

apt search nginx

Informacje

apt show nginx

56. Debian - dpkg

Czy pakiet jest zainstalowany:

dpkg -l nginx

Do jakiego pakietu należy plik:

dpkg -S /usr/bin/curl

Lista plików pakietu:

dpkg -L nginx

58. Debian - systemd i systemctl

Status:

systemctl status nginx

Dostaniesz:

  • czy usługa działa,
  • PID,
  • czas działania,
  • kilka ostatnich logów,
  • informację o błędzie.

Start:

sudo systemctl start nginx

Stop:

sudo systemctl stop nginx

Restart:

sudo systemctl restart nginx

Reload:

sudo systemctl reload nginx

Przeładowuje konfigurację, jeśli usługa to wspiera.

Autostart:

sudo systemctl enable nginx

Wyłączenie autostartu:

sudo systemctl disable nginx

Od razu start + autostart:

sudo systemctl enable --now nginx

Usługi z błędami:

systemctl --failed

59. Debian - journalctl

Cały journal:

journalctl

Ostatnie 100 wpisów:

journalctl -n 100

Na żywo:

journalctl -f

Konkretna usługa:

journalctl -u nginx

Ostatnie 100:

journalctl -u nginx -n 100

Na żywo:

journalctl -u nginx -f

Od ostatniego bootu:

journalctl -b

Tylko błędy:

journalctl -p err

Kernel:

journalctl -k

Bardzo użyteczne:

sudo journalctl -xe

65. Debian - NetworkManager

Sprawdzenie:

nmcli

Urządzenia:

nmcli device

Połączenia:

nmcli connection

Aktywne:

nmcli connection show --active

Szczegóły:

nmcli connection show "Wired connection 1"

66. dmesg

dmesg

Pokazuje komunikaty kernela.

Przydatne przy:

  • sprzęcie,
  • USB,
  • dyskach,
  • kartach sieciowych,
  • błędach sterowników.

Ostatnie wpisy:

dmesg | tail -n 50

67. lscpu, lspci, lsusb - Debian

CPU:

lscpu

PCI:

lspci

USB:

lsusb

Bardzo przydatne przy sprawdzaniu sprzętu.


69. date

date

Pokazuje aktualny czas systemowy.

Formatowanie:

date "+%Y-%m-%d %H:%M:%S"

Wynik:

2026-09-19 07:45:00

70. history

history

Pokazuje wcześniejsze polecenia.

Ponowne wykonanie ostatniego:

!!

Przykład:

apt update

dostajesz błąd braku uprawnień.

Możesz wpisać:

sudo !!

czyli:

sudo apt update

71. Ctrl+R

Interaktywne szukanie w historii.

Wciśnij:

Ctrl+R

i wpisz fragment:

ssh

Shell znajdzie poprzednie polecenie zawierające ssh.

To jedna z najbardziej użytecznych funkcji terminala.


72. Skróty klawiaturowe

Ctrl+C    przerwij polecenie
Ctrl+D    EOF / wylogowanie
Ctrl+L    wyczyść ekran
Ctrl+R    historia
Ctrl+A    początek linii
Ctrl+E    koniec linii
Ctrl+U    usuń do początku
Ctrl+K    usuń do końca
Tab       autouzupełnienie

73. &&, ||, ;

&&

Drugie polecenie wykona się tylko, jeśli pierwsze zakończy się sukcesem.

make && ./app

||

Drugie wykona się tylko, jeśli pierwsze się nie powiedzie.

ping -c 1 server || echo "Brak połączenia"

;

Wykonuje oba niezależnie:

date ; uptime

74. Procesy w tle

command &

Przykład:

sleep 300 &

Shell od razu wraca do prompta.

Lista:

jobs

Na pierwszy plan:

fg

Zatrzymanie bieżącego procesu:

Ctrl+Z

Wznowienie w tle:

bg

75. tmux

Instalacja Debian:

sudo apt install tmux

FreeBSD:

pkg install tmux

Start:

tmux

Odłączenie:

Ctrl+B
D

Lista:

tmux ls

Powrót:

tmux attach

Przydatne do pracy przez SSH.


76. Archiwa tar

Pakowanie:

tar -czf backup.tar.gz project/

Znaczenie:

  • -c - create,
  • -z - gzip,
  • -f - plik wynikowy.

Rozpakowanie:

tar -xzf backup.tar.gz
  • -x - extract.

Podejrzenie zawartości:

tar -tzf backup.tar.gz

77. gzip, gunzip

Kompresja:

gzip file.log

Powstanie:

file.log.gz

Rozpakowanie:

gunzip file.log.gz

78. crontab

Edycja:

crontab -e

Lista:

crontab -l

Format:

min godz dzień_mies miesiąc dzień_tyg polecenie

Codziennie o 07:30:

30 7 * * * /home/user/script.sh

Co 10 minut:

*/10 * * * * /home/user/check.sh

81. Szybka diagnostyka Debiana

uptime
df -h
free -h
ip a
ip route
systemctl --failed
journalctl -b -p err

Co z tego uzyskasz:

  • uptime - obciążenie i czas pracy,
  • df -h - czy dysk nie jest pełny,
  • free -h - RAM,
  • ip a - adresy sieciowe,
  • ip route - brama,
  • systemctl --failed - uszkodzone usługi,
  • journalctl -b -p err - błędy od bootu.

Przykłady z prawdziwego życia - Debian

1. Strona WWW przestała odpowiadać

Sprawdź usługę:

systemctl status nginx

Jeżeli jest failed, przeczytaj log:

journalctl -u nginx -n 100

Sprawdź port 80:

sudo ss -ltnp | grep ':80'

Sprawdź odpowiedź lokalnie:

curl -I http://127.0.0.1

Jeżeli lokalny curl zwraca 200, webserver działa i należy szukać dalej w firewallu, reverse proxy albo DNS.

2. Dysk jest prawie pełny

df -h

Znajdź największe katalogi:

sudo du -sh /var/* | sort -h

Jeżeli duży jest /var/log:

sudo du -sh /var/log/* | sort -h

Duże pojedyncze pliki:

sudo find /var -type f -size +500M

3. Nie pamiętasz, gdzie jest konfiguracja

sudo find /etc -name "nginx.conf"

albo tekst w konfiguracjach:

sudo grep -Rni "server_name" /etc/nginx/

4. Kto używa portu 8080?

sudo ss -ltnp | grep ':8080'

Dostaniesz nazwę programu i PID procesu.

5. Sieć nie działa

Sprawdź adres:

ip a

Trasę domyślną:

ip route

Internet po IP:

ping 1.1.1.1

DNS:

ping debian.org
dig debian.org

Jeżeli IP działa, a nazwa nie, problem zwykle dotyczy DNS.

6. Bezpieczna zmiana konfiguracji SSH

Najpierw kopia:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

Edycja:

sudo vi /etc/ssh/sshd_config

Sprawdzenie konfiguracji:

sudo sshd -t

Jeśli polecenie nic nie wypisze, konfiguracja jest poprawna składniowo.

Przeładuj usługę:

sudo systemctl reload ssh

Nie zamykaj starej sesji SSH, dopóki nie sprawdzisz nowego połączenia.

7. Aplikacja zjada CPU

top

Potem szczegóły procesu:

ps -p 8421 -f

Normalne zakończenie:

kill 8421

Dopiero gdy nie reaguje:

kill -9 8421

8. Chcesz oglądać log podczas testowania aplikacji

journalctl -u myapp -f

W drugim terminalu wykonujesz test i natychmiast widzisz nowe wpisy.

9. Szybko rozpoznajesz obcy serwer

hostname
cat /etc/os-release
uname -r
uptime
df -h
free -h
ip a

W minutę poznasz system, kernel, uptime, przestrzeń, RAM i adresy.

10. Aktualizacja Debiana

sudo apt update
sudo apt upgrade

Potem:

systemctl --failed

i ewentualnie:

sudo reboot

jeżeli aktualizacja wymaga restartu.

11. Długi proces przez SSH

tmux

Uruchom pracę:

./long-job.sh

Odłącz sesję Ctrl+B, potem D.

Po ponownym logowaniu:

tmux attach

12. Backup konfiguracji systemowej

sudo tar -czf /tmp/etc-backup-$(date +%F).tar.gz /etc

Sprawdzenie pliku:

ls -lh /tmp/etc-backup-*.tar.gz

Podejrzenie zawartości:

tar -tzf /tmp/etc-backup-$(date +%F).tar.gz | less

Debian - minimalny zestaw do pamięci

pwd
ls -lah
cd
cp
mv
rm
mkdir
less
tail
grep
find
man
ps aux
top
kill
df -h
du -sh
ip a
ip route
ping
curl
ssh
scp
sudo apt update
sudo apt upgrade
systemctl status
journalctl
ss -ltnp

Oficjalne źródła

  • Debian Reference: https://www.debian.org/doc/manuals/debian-reference/
  • Debian manpages: https://manpages.debian.org/
  • Debian documentation: https://www.debian.org/doc/