Linux · struktura katalogów

Struktura katalogów Linux — karta pracy z zadaniami

Korzeń i najważniejsze katalogi Linuksa na modelu drzewa: find, ls i wc. Trzy zadania, klucz z wynikami i skrypt rozwiązania.

45 minutPoziom podstawowyPliki i rozwiązania

Materiał redakcyjny TablicaPro · liceum i technikum

$ ls
bin  etc  home  tmp  usr  var
Drzewo katalogów jak w systemie.
Każdy ma swoje zadanie.

Windows ma osobne litery dysków (C:, D:), a Linux — jedno drzewo z korzeniem /, do którego „podpina się” wszystko inne. Ułożenie tego drzewa jest dość stałe: programy, ustawienia, dane użytkowników i dzienniki mają swoje katalogi. Znajomość tego układu pozwala szybko znaleźć konfigurację albo logi. Na lekcji uczniowie badają model takiego drzewa zbudowany w katalogu tymczasowym.

Scenariusz jest przeznaczony na 45 minut dla klasy znającej podstawowe polecenia — na przykład po lekcji o poleceniach Linux. Model w skrypcie jest uproszczony: prawdziwy system ma więcej katalogów i inne zawartości.

Przygotowanie stanowisk

Potrzebny jest terminal z powłoką bash (Ubuntu, WSL lub maszyna wirtualna). Ćwiczenia wykonuj na zwykłym koncie, bez sudo. Skrypt rozwiazanie.sh z pakietu odtwarza całą lekcję w katalogu tymczasowym (mktemp -d) i usuwa tylko ten katalog — nie zmienia Twoich plików; uruchamiasz go poleceniem bash rozwiazanie.sh. Ćwiczenia z karty pracy wykonaj ręcznie w terminalu, w osobnym katalogu ćwiczeniowym.

Cele i plan lekcji

Po zajęciach uczeń potrafi:

  • wskazać zadania najważniejszych katalogów: /bin, /etc, /home, /tmp, /usr, /var;
  • wyświetlić drzewo katalogów poleceniem find . -type d;
  • znaleźć pliki według typu i nazwy (find -type f, -name);
  • odróżnić katalog domowy użytkownika od katalogów systemowych.
CzasPraca na lekcji
0–5 minProblem: gdzie system trzyma swoje pliki?
5–15 minKorzeń i najważniejsze katalogi
15–22 minls i find na modelu drzewa
22–37 minTrzy zadania
37–42 minPorównanie z własnym systemem (ls /)
42–45 minPytania kontrolne

Najważniejsze katalogi

KatalogZawartość
/korzeń — początek całego drzewa
/bin, /usr/binprogramy (polecenia) dostępne dla wszystkich
/etcpliki konfiguracyjne systemu (np. hostname, passwd)
/homekatalogi domowe użytkowników (/home/ola)
/vardane zmienne: dzienniki (/var/log), kolejki, bazy
/tmppliki tymczasowe (czyszczone przy restarcie lub okresowo)
/usrprogramy i biblioteki zainstalowane w systemie, dokumentacja (/usr/share)

W modelu z lekcji drzewo ma korzeń system (zamiast /) i zawiera: bin, etc (pliki hostname, passwd), home (katalogi ola i jan), tmp, var/log (plik syslog) oraz usr (podkatalogi bin i share). Katalog domowy użytkownika to miejsce, w którym ma on prawo tworzyć pliki; w pozostałych katalogach zwykle może je tylko czytać.

Polecenia

  • ls — zawartość bieżącego katalogu; ls -R — rekurencyjnie;
  • find . -type d — wszystkie katalogi pod bieżącym; find . -type f — wszystkie pliki;
  • find home -name "*.txt" — pliki o nazwie pasującej do wzorca w katalogu home (wzorzec w cudzysłowie);
  • ... | sort — porządkuje wynik (kolejność z find nie jest gwarantowana); ... | wc -l — liczy wiersze.

Zadania

Zadanie 1. Drzewo. W katalogu system wypisz wszystkie katalogi (find . -type d, posortowane).

Zadanie 2. Zawartość. Wypisz zawartość katalogu system, a potem katalogów home i etc.

Zadanie 3. Pliki. Wypisz wszystkie zwykłe pliki (posortowane), policz je i znajdź w home pliki .txt.

Dla chętnych: zlokalizuj w prawdziwym systemie dziennik systemowy (ls /var/log) i plik z nazwą komputera (cat /etc/hostname).

Rozwiązanie i wyniki

set -e
TMP=$(mktemp -d)
cd "$TMP"
mkdir -p system/{bin,etc,home/{ola,jan},tmp,var/log,usr/{bin,share}}
touch system/etc/hostname system/etc/passwd system/var/log/syslog
touch system/home/ola/notatki.txt system/home/jan/zdjecie.jpg system/usr/bin/python3
cd system

echo "--- Zadanie 1"
find . -type d | sort

echo "--- Zadanie 2"
ls
ls home
ls etc

echo "--- Zadanie 3"
find . -type f | sort
find . -type f | wc -l
find home -name "*.txt"

cd /
rm -r "$TMP"

Skrypt rozwiazanie.sh z pakietu wykonuje te polecenia w katalogu tymczasowym i wypisuje:

--- Zadanie 1
.
./bin
./etc
./home
./home/jan
./home/ola
./tmp
./usr
./usr/bin
./usr/share
./var
./var/log
--- Zadanie 2
bin
etc
home
tmp
usr
var
jan
ola
hostname
passwd
--- Zadanie 3
./etc/hostname
./etc/passwd
./home/jan/zdjecie.jpg
./home/ola/notatki.txt
./usr/bin/python3
./var/log/syslog
6
home/ola/notatki.txt

Typowe błędy

ObjawCo sprawdzić
ls: cannot accessKatalog nie istnieje albo jesteś w innym miejscu (sprawdź pwd).
Wynik find w różnej kolejnościKolejność zależy od systemu plików; użyj sort.
find wypisuje także plikiBrak -type d (katalogi) lub -type f (pliki).
Wzorzec *.txt rozwija się przed findWzorzec w -name zapisz w cudzysłowie.
Nie możesz zapisać pliku w /etcTo katalog systemowy; zwykły użytkownik zapisuje w katalogu domowym (~) lub w /tmp.
Pomylenie /home/ola z ~~ oznacza katalog domowy bieżącego użytkownika.

Pytania kontrolne i punktacja

  1. W którym katalogu szukasz plików konfiguracyjnych systemu?
  2. Gdzie zwykły użytkownik może zapisywać swoje pliki?
  3. Co robi find . -type d?

Odpowiedzi: W /etc. W swoim katalogu domowym (/home/nazwa, czyli ~) oraz w /tmp. Wypisuje wszystkie katalogi znajdujące się pod bieżącym katalogiem.

Proponowana punktacja (razem 10 punktów): zadanie 1 — find . -type d z sort 3 pkt; zadanie 2 — trzy polecenia ls 2 pkt; zadanie 3 — lista plików, liczba i wzorzec .txt po 1 pkt; odpowiedzi o katalogach 2 pkt. Zadanie dla chętnych nie jest wymagane do pełnej oceny.

Materiały do pobrania

Rozpakuj ZIP przed otwarciem plików. Materiały są dostępne bez logowania; publiczne rozwiązanie służy nauce i samodzielnemu sprawdzeniu, a nie poufnemu sprawdzianowi.

Co dalej?

Następny krok to poruszanie się po drzewie (pwd, cd), uprawnienia plików i dowiązania. Ten materiał rozwija dział o systemie plików w kursie Linux w TablicaPro, gdzie znajdziesz prezentacje, ćwiczenia i testy do prowadzenia lekcji.

Źródła techniczne: hierarchia systemu plików (FHS) w Wikipedii oraz podręcznik GNU findutils. Zobacz też lekcję o find.

Poprowadź kolejne lekcje Linux

Pełny kurs: prezentacje, ćwiczenia i testy do pracy z klasą.

Kup dostęp do kursu Linux →

Zobacz program kursu