Powrót do strony głównej

Linux FS: nawigacja, wyszukiwanie, pliki dla deweloperów

Artykuł omawia strukturę systemu plików Linux, polecenia nawigacji (ls, cd, pwd), wyszukiwanie (find, locate), zarządzanie plikami (cp, mv, rm, mkdir, touch, ln). Przykłady dla deweloperów: od /etc do hard/sym links. Praktyka bez teorii.

Masterclass: Linux pliki, wyszukiwanie i struktura FS
Advertisement 728x90

# Podstawy Linuksa: struktura systemu plików, nawigacja i zarządzanie plikami

Katalog główny / to szczyt hierarchii, do którego montowane są wszystkie pozostałe partycje. Kluczowe katalogi określają przeznaczenie: /etc dla konfiguracji, /var dla danych dynamicznych, /proc i /sys jako wirtualne interfejsy do jądra.

/
├── etc        # konfiguracje systemu i aplikacji
├── var        # zmienne dane: logi, pamięć podręczna, kolejki
├── proc       # stan jądra i procesów
├── sys        # urządzenia i sterowniki
├── tmp        # pliki tymczasowe
├── home       # katalogi domowe użytkowników
├── root       # katalog domowy superużytkownika
├── dev        # pliki urządzeń
├── usr        # programy i biblioteki
├── bin        # podstawowe narzędzia (symboliczne odsyłanie do /usr/bin)
├── sbin       # polecenia administracyjne (symboliczne odsyłanie do /usr/sbin)
├── opt        # oprogramowanie zewnętrzne
├── run        # dane runtime procesów
├── mnt        # punkty ręcznego montowania
└── boot       # pliki bootloadera i jądro

/etc: scentralizowane ustawienia

Zawiera pliki konfiguracyjne usług, parametrów sieciowych i użytkowników. Główne: /etc/passwd — lista użytkowników, /etc/fstab — punkty montowania, /etc/hosts — lokalny plik hosts, /etc/ssh/sshd_config — parametry SSH.

/var: dane dynamiczne

Przechowuje pliki podlegające zmianom: logi w /var/log, poczta w /var/mail, spulery w /var/spool, treści serwerów WWW w /var/www. Pierwsze miejsce do diagnostyki.

Google AdInline article slot

Wirtualne systemy plików: /proc i /sys

/proc generuje dane o procesach i jądrze: /proc/cpuinfo dla procesora, /proc/meminfo dla pamięci, /proc/1/ dla procesu init. /sys — interfejs do urządzeń, umożliwia dynamiczną zmianę parametrów sterowników i sprzętu.

Katalogi użytkownika i urządzenia

/home/nazwa_użytkownika — osobiste pliki i konfiguracje (.config, .ssh). /root jest izolowany dla roota. /dev reprezentuje sprzęt: /dev/sda — dysk, /dev/null — pochłaniacz wyjścia, /dev/random — entropia.

Nawigacja: polecenia ls, cd, pwd

ls wyświetla zawartość katalogów z flagami dla szczegółów.

Google AdInline article slot
  • ls -l: uprawnienia, właściciel, rozmiar, data.
  • ls -a: ukryte pliki.
  • ls -lh: rozmiary w KB/MB/GB.
  • ls -lt: sortowanie po czasie.
  • ls -R: rekurencja.

cd zmienia katalog:

  • cd /etc: ścieżka bezwzględna.
  • cd ..: w górę.
  • cd ~: domowy.
  • cd -: poprzedni katalog.

pwd pokazuje bieżącą ścieżkę: pwd -P ignoruje dowiązania symboliczne.

Wyszukiwanie plików: find i locate

find skanuje rekurencyjnie według kryteriów.

Google AdInline article slot

Przykłady:

  • find . -name "*.log": logi.
  • find /var -type f: pliki.
  • find / -size +100M: duże pliki.
  • find /var/log -mtime -1: świeże logi.
  • find /tmp -name "*.tmp" -delete: czyszczenie.

locate korzysta z indeksu dla szybkości:

  • locate passwd.
  • sudo updatedb do aktualizacji.

W Ubuntu 22.04+ polecany jest plocate ze względu na wydajność.

tree buduje wizualne drzewo: tree -L 2 -a -I "node_modules".

Zarządzanie plikami: cp, mv, rm

cp kopiuje:

  • cp file.txt /tmp/.
  • cp -r dir1/ /backup/.
  • cp -p zachowuje metadane.
  • cp -u aktualizuje tylko nowe.

mv przenosi/przemianowuje: mv old.txt new.txt, mv *.log /archive/.

rm usuwa bez kosza:

  • rm -r dir/.
  • rm -rf / — niebezpieczne, unikać.
  • rm -i z potwierdzeniem.

Tworzenie i dowiązania: mkdir, touch, ln

mkdir -p /path/to/dir tworzy łańcuch.

touch file.txt — pusty plik lub aktualizacja znaczników czasu: touch -t 202501011200 file.txt.

ln dla dowiązań:

  • ln file.txt hardlink.txt — dowiązanie twarde (ten sam inode).
  • ln -s file.txt symlink.txt — dowiązanie symboliczne (ścieżka).

Dowiązania twarde nie działają między systemami plików, symboliczne są elastyczne, ale psują się po usunięciu oryginału.

Co ważne:

  • /proc i /sys — nie na dysku, dla danych runtime jądra.
  • find jest uniwersalny, locate — dla szybkości z indeksem do aktualizacji.
  • rm -rf wymaga ostrożności: brak Kosza.
  • mkdir -p i cd - — niezbędne w skryptach.
  • Dowiązania twarde vs symboliczne: wybierać według scenariusza (inode vs ścieżka).

— Editorial Team

Advertisement 728x90

Czytaj dalej