Bash (Bourne Again Shell) to interpreter poleceń w terminalu Linux i macOS – wpisujesz komendy tekstowe, a system je wykonuje: zarządzanie plikami, instalacja oprogramowania, konfiguracja serwera, automatyzacja zadań. Terminal (konsola) to okno, w którym piszesz te komendy. Każdy administrator VPS i serwera pracuje w terminalu Bash – loguje się przez SSH i zarządza serwerem komendami. Na macOS: terminal jest wbudowany (domyślnie zsh, kompatybilny z bash). Na Windows: Git Bash, WSL (Windows Subsystem for Linux) lub PowerShell.
Spis treści
ToggleNawigacja w systemie plików
| Komenda | Co robi | Przykład |
|---|---|---|
pwd |
Pokaż bieżący katalog | pwd → /home/user |
ls |
Lista plików | ls -la (wszystkie + szczegóły) |
cd |
Zmień katalog | cd /var/www |
cd .. |
Katalog wyżej | cd .. |
cd ~ |
Katalog domowy | cd ~ → /home/user |
mkdir |
Utwórz katalog | mkdir projekty |
rmdir |
Usuń pusty katalog | rmdir stary |
Operacje na plikach
| Komenda | Co robi | Przykład |
|---|---|---|
cat |
Wyświetl zawartość pliku | cat config.php |
less |
Przeglądaj duży plik (scroll) | less /var/log/nginx/error.log |
head |
Pierwsze 10 linii | head -20 plik.txt |
tail |
Ostatnie 10 linii | tail -f access.log (live follow) |
cp |
Kopiuj plik/katalog | cp plik.txt kopia.txt |
mv |
Przenieś / zmień nazwę | mv stary.txt nowy.txt |
rm |
Usuń plik | rm plik.txt |
rm -rf |
Usuń katalog z zawartością | rm -rf stary_projekt/ (ostrożnie!) |
find |
Znajdź pliki | find /var -name "*.log" -size +100M |
grep |
Szukaj tekstu w plikach | grep "error" /var/log/syslog |
Zarządzanie serwerem
| Komenda | Co robi |
|---|---|
sudo apt update && sudo apt upgrade |
Aktualizuj system (Ubuntu/Debian) |
sudo apt install nginx |
Zainstaluj pakiet |
sudo systemctl status nginx |
Sprawdź status usługi |
sudo systemctl restart nginx |
Restartuj usługę |
htop |
Monitor procesów (CPU, RAM) – interaktywny |
df -h |
Wolne miejsce na dyskach |
free -h |
Zużycie RAM |
du -sh /var/www/* |
Rozmiar katalogów |
uptime |
Czas działania serwera, load average |
whoami |
Jako kto jesteś zalogowany |
Operatory i pipe
Pipe | – przekaż wynik jednej komendy jako wejście drugiej: cat access.log | grep "404" | wc -l (policz ile razy wystąpił błąd 404 w logu).
Przekierowanie > i >> – zapisz wynik do pliku: ls -la > lista.txt (nadpisz), echo "nowa linia" >> plik.txt (dopisz).
&& – uruchom drugą komendę tylko gdy pierwsza się powiedzie: apt update && apt upgrade -y.
; – uruchom drugą komendę niezależnie od wyniku pierwszej: cd /var/www; ls.
Skrypty Bash – automatyzacja
Bash to też język skryptowy – zapisujesz komendy w pliku .sh i uruchamiasz jak program:
#!/bin/bash
# backup.sh – codzienny backup bazy i plików
DATE=$(date +%Y%m%d)
BACKUP_DIR="/home/user/backups"
# Backup bazy MySQL
mysqldump -u root mojabaza > "$BACKUP_DIR/db-$DATE.sql"
# Backup plików
tar -czf "$BACKUP_DIR/files-$DATE.tar.gz" /var/www/html
# Usuń backupy starsze niż 30 dni
find "$BACKUP_DIR" -name "*.sql" -mtime +30 -delete
find "$BACKUP_DIR" -name "*.tar.gz" -mtime +30 -delete
echo "Backup $DATE – done!"
Uruchomienie: chmod +x backup.sh && ./backup.sh. Automatycznie: dodaj do crontab – 0 3 * * * /home/user/backup.sh (codziennie o 3:00).
Przydatne skróty terminala
Ctrl+C – przerwij bieżącą komendę. Ctrl+D – wyloguj (EOF). Ctrl+R – szukaj w historii komend (wpisuj fragment → bash znajduje ostatnią pasującą komendę). Tab – autouzupełnianie nazw plików/komend. ���/↓ – przeglądaj historię komend. !! – powtórz ostatnią komendę (sudo !! – powtórz z sudo).
Najczęściej zadawane pytania
Bash vs zsh vs fish – co wybrać?
Bash – domyślny w większości dystrybucji Linux. Standard, skrypty na serwerach prawie zawsze w Bash. zsh – domyślny w macOS. Kompatybilny z Bash + rozszerzenia (Oh My Zsh – motywy, pluginy, lepsze autouzupełnianie). fish – nowoczesny, auto-sugestie, kolorowa składnia – ale: nie jest kompatybilny z Bash (skrypty .sh mogą nie działać). Rekomendacja: na serwerze Bash (standard), na desktopie zsh z Oh My Zsh (wygodniejszy).
Czy muszę znać terminal żeby administrować VPS?
Tak – VPS to Linux bez GUI. Wszystko robisz w terminalu: instalacja pakietów, konfiguracja serwera, zarządzanie plikami, monitoring. Alternatywa: zainstaluj panel webowy (HestiaCP, cPanel) – część zadań zrobisz klikaniem. Ale: terminal i tak jest niezbędny do zaawansowanych operacji.
Jak nauczyć się terminala?
Najlepszy sposób: zainstaluj Linux (na VPS za ~18 zł/mc lub dual boot na laptopie) i zacznij go używać. Każdy problem rozwiązuj w terminalu zamiast Google’ować GUI. Zasoby: linuxcommand.org (darmowy kurs), OverTheWire Bandit (gra edukacyjna – rozwiązujesz zagadki w terminalu), man [komenda] (wbudowana dokumentacja – np. man grep).

