Dlaczego Linux jest ważny dla web developera
Nawet jeśli na co dzień pracujesz na macOS lub Windows, Twoja aplikacja webowa niemal na pewno działa na serwerze z Linuxem. Ponad 96% serwerów internetowych to systemy Linux — od małych VPS-ów po infrastrukturę gigantów technologicznych. Kontenery Docker, serwery CI/CD, środowiska chmurowe — wszędzie spotkasz Linuxa.
Znajomość podstawowych komend Linuxa to nie opcja, a konieczność. Debugowanie problemów na produkcji, analiza logów, konfiguracja serwera, deployment aplikacji — wszystko to wymaga umiejętności pracy z terminalem. Ten artykuł to praktyczny przewodnik po komendach, które używamy najczęściej.
Nawigacja i system plików
Linux organizuje pliki w drzewiastą strukturę z korzeniem /. Najważniejsze katalogi:
/home— katalogi domowe użytkowników/etc— pliki konfiguracyjne systemu i usług/var/log— logi systemowe i aplikacyjne/tmp— pliki tymczasowe (czyszczone przy restarcie)/opt— oprogramowanie zainstalowane ręcznie
Podstawowe komendy nawigacji:
pwd— wyświetla bieżący katalog (Print Working Directory)ls -la— lista plików z ukrytymi i szczegółami (uprawnienia, rozmiar, data)cd /var/log— zmiana katalogumkdir -p projekty/nowy— tworzenie katalogów (z-ptworzy brakujące katalogi nadrzędne)cp -r zrodlo/ cel/— kopiowanie katalogów rekurencyjniemv stary.txt nowy.txt— przenoszenie lub zmiana nazwyrm -rf katalog/— usuwanie katalogu z zawartością (uwaga — brak kosza, operacja nieodwracalna)
find to potężne narzędzie do wyszukiwania plików: find /var/log -name "*.log" -mtime -7 znajduje pliki .log zmodyfikowane w ostatnich 7 dniach.
Podgląd i edycja plików
cat plik.txt— wyświetla całą zawartość plikuless plik.txt— interaktywny podgląd z przewijaniem (strzałki do nawigacji,qwychodzi,/szukajdo wyszukiwania)head -n 20 plik.txt— pierwsze 20 liniitail -n 50 plik.txt— ostatnie 50 liniitail -f /var/log/app.log— śledzenie pliku w czasie rzeczywistym (nieocenione przy debugowaniu)
grep to król wyszukiwania tekstu: grep -r "error" /var/log/ przeszukuje rekurencyjnie wszystkie pliki w katalogu logów. Przydatne flagi: -i (ignoruj wielkość liter), -n (numery linii), -c (liczba dopasowań).
Do szybkiej edycji plików konfiguracyjnych na serwerze najlepiej sprawdza się nano — prosty edytor z podpowiedziami skrótów na dole ekranu. Bardziej zaawansowani użytkownicy sięgają po vim, który jest potężniejszy, ale wymaga nauki.
Uprawnienia — chmod i chown
System uprawnień w Linuxie to trzy grupy (właściciel, grupa, pozostali) i trzy typy (odczyt, zapis, wykonanie). Komenda ls -la pokazuje uprawnienia w formacie -rwxr-xr--:
r(read) = 4 — odczytw(write) = 2 — zapisx(execute) = 1 — wykonanie
chmod 755 skrypt.sh ustawia: właściciel może wszystko (7=4+2+1), grupa i pozostali mogą czytać i wykonywać (5=4+1).
chmod 644 index.html — właściciel czyta i pisze (6=4+2), reszta tylko czyta (4).
chown www-data:www-data /var/www/ — zmiana właściciela i grupy pliku.
Typowe uprawnienia na serwerze webowym: katalogi 755, pliki HTML/CSS/JS 644, skrypty i pliki binarne 755, pliki konfiguracyjne z hasłami 600 (tylko właściciel).
Zarządzanie procesami
ps aux— lista wszystkich procesów z użyciem CPU i pamięcitoplubhtop— interaktywny monitor procesów (htop jest czytelniejszy, ale wymaga instalacji)kill PID— wysyła sygnał SIGTERM do procesu (grzeczne zamknięcie)kill -9 PID— SIGKILL, natychmiastowe zabicie procesu (ostateczność)lsof -i :8080— pokazuje, który proces nasłuchuje na porcie 8080
Systemd — zarządzanie usługami
Na nowoczesnych dystrybucjach Linuxa (Ubuntu, Debian, CentOS) systemd zarządza usługami systemowymi:
systemctl status nginx— stan usługisystemctl start/stop/restart nginx— uruchamianie, zatrzymywanie, restartsystemctl enable nginx— automatyczne uruchamianie przy starcie systemujournalctl -u nginx -f— logi usługi w czasie rzeczywistym
Docker również jest usługą systemd: systemctl status docker.
Cron — zadania cykliczne
Cron to planista zadań w Linuxie. Komenda crontab -e otwiera edytor zadań. Format wpisu:
minuta godzina dzień_miesiąca miesiąc dzień_tygodnia komenda
Przykłady:
0 3 * * * /home/user/backup.sh— codziennie o 3:00*/5 * * * * curl -s https://example.pl/health— co 5 minut0 0 1 * * certbot renew— pierwszego dnia każdego miesiąca o północy
Przydatna strona: crontab.guru — wizualny edytor wyrażeń cron z opisem w prostym języku.
SSH — bezpieczny dostęp zdalny
SSH (Secure Shell) to standard zdalnego dostępu do serwerów:
ssh user@serwer.pl— połączenie z serweremssh -i klucz.pem user@serwer.pl— połączenie z kluczem prywatnymscp plik.txt user@serwer.pl:/home/user/— kopiowanie pliku na serwerrsync -avz lokalne/ user@serwer.pl:/zdalne/— synchronizacja katalogów (inteligentniejsze niż scp — przesyła tylko zmiany)
Klucze SSH zamiast haseł to standard bezpieczeństwa. Generowanie: ssh-keygen -t ed25519. Klucz publiczny dodajesz na serwerze do ~/.ssh/authorized_keys, klucz prywatny zostaje na Twoim komputerze.
Konfiguracja SSH w pliku ~/.ssh/config upraszcza połączenia:
Host produkcja
HostName 185.210.30.45
User deploy
IdentityFile ~/.ssh/deploy_key
Po takiej konfiguracji łączysz się jednym poleceniem: ssh produkcja.
Praktyczne kombinacje
Kilka przydatnych one-linerów, które używamy regularnie:
du -sh /var/log/*— rozmiar każdego pliku/katalogu w logachdf -h— użycie dysków w czytelnym formaciefree -h— użycie pamięci RAMnetstat -tlnplubss -tlnp— otwarte porty i nasłuchujące procesydocker logs --tail 100 -f kontener— ostatnie 100 linii logów kontenera Docker z śledzeniem
Podsumowanie
Znajomość Linuxa to fundament pracy web developera, niezależnie od specjalizacji. Nawigacja po systemie plików, zarządzanie uprawnieniami, analiza logów, konfiguracja SSH i cron — te umiejętności przydają się codziennie przy deploymencie, debugowaniu i utrzymaniu aplikacji.
Potrzebujesz pomocy z konfiguracją serwera Linux? Skontaktuj się z nami — skonfigurujemy infrastrukturę dopasowaną do Twojego projektu.