Podstawy Linux #5: Nawigacja i system plików

Po zalogowaniu się na serwer Linux widzisz terminal — czarny ekran z migającym kursorem. To Twoje główne narzędzie pracy. W tej lekcji nauczysz się poruszać po systemie plików, tworzyć i zarządzać plikami, oraz czytać ich zawartość.

Gdzie jestem? Nawigacja po katalogach

pwd — wyświetl bieżący katalog

pwd

Wynik np. /home/roman — to Twój katalog domowy.

ls — lista plików i katalogów

ls          # podstawowa lista
ls -l       # szczegóły (uprawnienia, rozmiar, data)
ls -la      # jak wyżej + pliki ukryte (zaczynające się od kropki)
ls -lh      # rozmiary w czytelnym formacie (KB, MB)

📋 Przykład

ls -la /etc/nginx/

Pokaże wszystkie pliki konfiguracyjne Nginx, łącznie z ukrytymi.

cd — zmiana katalogu

cd /var/log          # przejdź do katalogu /var/log
cd ..                # katalog nadrzędny (o jeden poziom w górę)
cd ~                 # katalog domowy użytkownika
cd -                 # powrót do poprzedniego katalogu
cd                   # to samo co cd ~ (do katalogu domowego)

💡 Podpowiedź

Klawisz Tab automatycznie uzupełnia nazwy katalogów i plików. Naciśnij Tab dwa razy, żeby zobaczyć dostępne opcje.

Ścieżki absolutne vs względne

cd /var/log/nginx    # ścieżka absolutna (od korzenia /)
cd log/nginx         # ścieżka względna (od bieżącego katalogu)

💡 Zasada

Ścieżka zaczynająca się od / jest absolutna. Bez / na początku — względna.

Tworzenie plików i katalogów

touch — utwórz pusty plik

touch config.yml
touch plik1.txt plik2.txt    # kilka plików naraz

mkdir — utwórz katalog

mkdir projekty
mkdir -p projekty/klient-a/backupy    # tworzy całą strukturę

📋 Scenariusz: Przygotowanie struktury projektu

mkdir -p /opt/projekty/moj-projekt/{config,data,logs,backups}
ls /opt/projekty/moj-projekt/

Nawiasy klamrowe {} to skrót — bash tworzy osobny katalog dla każdego elementu oddzielonego przecinkiem. Wynik: backups config data logs — cztery katalogi stworzone jednym poleceniem.

Kopiowanie, przenoszenie, usuwanie

cp — kopiuj

cp plik.txt kopia.txt              # kopia pliku
cp plik.txt /tmp/                  # kopia do innego katalogu
cp -r katalog/ kopia-katalogu/     # kopia katalogu (rekurencyjnie)

mv — przenieś / zmień nazwę

mv stara-nazwa.txt nowa-nazwa.txt    # zmiana nazwy
mv plik.txt /opt/projekty/           # przeniesienie

rm — usuń

rm plik.txt              # usuń plik
rm -r katalog/           # usuń katalog z zawartością
rm -rf katalog/          # usuń bez pytania (ostrożnie!)

⚠️ Uwaga

rm -rf nie pyta o potwierdzenie i nie ma kosza. Usunięte pliki są nie do odzyskania. Zawsze sprawdź dwa razy co usuwasz, szczególnie przy użyciu zmiennych w ścieżce.

📋 Scenariusz: Backup przed usunięciem

cp -r /opt/projekty/stary-projekt /opt/backups/stary-projekt-$(date +%Y%m%d)
# $(date +%Y%m%d) — bash wykonuje komendę w $() i wstawia wynik, np. "20260212"
rm -rf /opt/projekty/stary-projekt

Najpierw backup z datą w nazwie, potem usunięcie.

Wyświetlanie zawartości plików

cat — wyświetl cały plik

cat /etc/hostname

less — przeglądanie z przewijaniem

less /var/log/syslog

Nawigacja w less: spacja = strona w dół, b = strona w górę, q = wyjście, / = wyszukiwanie.

head i tail — początek i koniec pliku

head -n 20 plik.txt      # pierwsze 20 linii
tail -n 20 plik.txt      # ostatnie 20 linii
tail -f /var/log/syslog   # śledzenie na żywo (CTRL+C żeby przerwać)

📋 Scenariusz: Monitoring logów

tail -f /var/log/nginx/access.log

Widzisz na żywo każde wejście na Twoją stronę. Przydatne przy debugowaniu.

Przekierowania i potoki

Zapisywanie do pliku

echo "Hello" > plik.txt     # nadpisuje plik
echo "World" >> plik.txt    # dopisuje na końcu

Potok | (pipe)

Łączy wyjście jednej komendy z wejściem następnej:

ls -la /etc | less                    # lista plików z przewijaniem
cat /var/log/syslog | grep "error"    # szukaj "error" w logach
ps aux | grep nginx                   # znajdź procesy Nginx

Łączenie komend

mkdir backup && cp dane.txt backup/      # && = wykonaj następne JEŚLI poprzednie się udało
komenda1 || komenda2                      # || = wykonaj następne JEŚLI poprzednie się NIE udało
komenda1 ; komenda2                       # ; = wykonaj następne NIEZALEŻNIE od wyniku

📋 Scenariusz: Szybki backup z potwierdzeniem

cp -r /opt/app/data /opt/backups/data-$(date +%Y%m%d) && echo "Backup OK" || echo "Backup FAILED"

Podsumowanie

Komenda Co robi
pwd Gdzie jestem
ls -la Co tu jest
cd Idź do
mkdir -p Stwórz katalog(i)
cp -r Kopiuj
mv Przenieś/zmień nazwę
rm -r Usuń
cat / less Czytaj plik
tail -f Śledź na żywo
> / >> / \| Przekieruj / potok
Roman Rozenberger
Roman Rozenberger

Jestem digital marketerem ze specjalizacją w marketingu w wyszukiwarkach internetowych. Wdrażam automatyzacje z wykorzystaniem narzędzi LowCode, NoCode i AI. Identyfikuje procesy i rozwiązuję problemy.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *