Na tej lekcji uczniowie zbudują w terminalu folder projektu koła zainteresowań: utworzą katalogi, zapiszą plik z planem spotkania, zrobią kopię, zmienią nazwę pliku i posprzątają po sobie. Wszystko za pomocą dziesięciu podstawowych poleceń, bez okien i myszki.
Materiał jest przeznaczony na 45 minut dla uczniów, którzy pierwszy raz pracują w wierszu poleceń. Polecenia działają w powłoce bash na Ubuntu, Debianie i innych dystrybucjach Linuksa, a także w WSL na Windowsie.
Przygotowanie stanowisk
Każdy uczeń potrzebuje dostępu do terminala na zwykłym koncie użytkownika — nie na koncie root i bez sudo. Wszystkie ćwiczenia odbywają się w katalogu domowym, w nowym folderze kolo. Jeżeli pracownia nie ma Linuksa, można użyć WSL z Ubuntu albo maszyny wirtualnej; konfigurację wykonaj przed lekcją.
Ustal z klasą jedną zasadę bezpieczeństwa: rm usuwa plik od razu, bez kosza. Na tej lekcji usuwamy wyłącznie pliki, które sami przed chwilą utworzyliśmy, i nigdy nie używamy rm -r na katalogach, których zawartości nie znamy.
Pakiet z materiałami zawiera kartę pracy, klucz z oczekiwanymi wynikami oraz skrypt rozwiazanie.sh. Skrypt odtwarza wszystkie kroki w osobnym katalogu tymczasowym — nauczyciel może go uruchomić, aby zobaczyć cały przebieg.
Cele i plan lekcji
Po zajęciach uczeń potrafi:
- sprawdzić bieżący katalog (
pwd) i wyświetlić jego zawartość (ls,ls -l); - przechodzić między katalogami (
cd) ścieżką względną i bezwzględną; - tworzyć katalogi i pliki (
mkdir,touch,echoz przekierowaniem>); - wyświetlać, kopiować, przenosić i usuwać pliki (
cat,cp,mv,rm); - znaleźć opis polecenia przez
--helplubman.
| Czas | Praca na lekcji |
|---|---|
| 0–5 min | Terminal, znak zachęty, pierwsze pwd i ls |
| 5–15 min | Drzewo katalogów, cd, ścieżki względne i bezwzględne |
| 15–22 min | mkdir, touch, echo i cat — wspólny przykład |
| 22–37 min | Trzy zadania samodzielne |
| 37–42 min | Sprawdzenie wyniku ls -R z kluczem |
| 42–45 min | Pytania kontrolne |
Gdzie jestem? pwd, ls i cd
Po otwarciu terminala widać znak zachęty, np. uczen@pracownia:~$. Tylda ~ oznacza katalog domowy użytkownika, a $ — że powłoka czeka na polecenie. Wpisz:
pwd
ls
ls -l
pwd (print working directory) pokazuje bieżący katalog, np. /home/uczen. ls wypisuje jego zawartość, a ls -l dodaje szczegóły: uprawnienia, właściciela, rozmiar i datę modyfikacji. Literka d na początku wiersza oznacza katalog. Wynik ls -l na każdym komputerze będzie inny — liczy się jego struktura, nie konkretne daty.
Polecenie cd zmienia bieżący katalog:
cd kolo— wejście do podkatalogukolo(ścieżka względna, liczona od bieżącego miejsca);cd /home/uczen/kolo— ta sama zmiana ścieżką bezwzględną, zaczynającą się od korzenia/;cd ..— o jeden poziom w górę;cd ~lub samocd— powrót do katalogu domowego.
Wielkość liter ma znaczenie: Kolo i kolo to dwa różne katalogi. Klawisz Tab uzupełnia nazwy plików i katalogów — warto go używać od pierwszej minuty, bo zapobiega literówkom.
Katalogi i pliki: mkdir, touch, echo, cat
Wspólny przykład — uczniowie wpisują razem z nauczycielem, w katalogu domowym:
mkdir kolo
cd kolo
mkdir dokumenty obrazy
touch dokumenty/notatki.txt
echo "Spotkanie: środa 14:30, sala 12" > dokumenty/plan.txt
cat dokumenty/plan.txt
ls dokumenty
mkdir tworzy katalogi — można podać kilka nazw naraz. touch tworzy pusty plik (albo aktualizuje datę istniejącego). echo wypisuje tekst, a znak > przekierowuje ten tekst do pliku: tworzy go albo zastępuje jego zawartość. Podwójny znak >> dopisuje tekst na końcu pliku. cat wyświetla zawartość pliku.
Ostatnie polecenie wypisze notatki.txt plan.txt. Polecenia nie wyświetlają komunikatu „gotowe” — w systemach uniksowych brak komunikatu zwykle oznacza sukces. Komunikat pojawia się przy błędzie.
Opis każdego polecenia znajdziesz w podręczniku systemowym: man ls (wyjście klawiszem q) albo krótszą pomoc ls --help.
Trzy zadania w terminalu
Wszystkie zadania wykonuj w katalogu ~/kolo utworzonym we wspólnym przykładzie.
Zadanie 1. Struktura projektu. Będąc w ~/kolo, utwórz katalog projekty, a w nim katalog strona. Przejdź do projekty/strona jedną komendą cd, sprawdź pwd, a potem wróć do ~/kolo poleceniem cd ../... Zapisz na karcie, co pokazało pwd.
Zadanie 2. Kopia i zmiana nazwy. Skopiuj dokumenty/plan.txt do katalogu projekty jako plan-kopia.txt. Następnie dopisz do oryginału drugą linię Temat: system binarny (użyj >>). Zmień nazwę dokumenty/notatki.txt na dokumenty/pomysly.txt poleceniem mv. Wyświetl cat oba pliki planu i wyjaśnij, dlaczego kopia ma tylko jedną linię.
Zadanie 3. Porządki i kontrola. Usuń plik projekty/plan-kopia.txt i pusty katalog obrazy (polecenie rmdir). Wyświetl całą strukturę poleceniem ls -R i porównaj ją z kluczem.
Dla chętnych: policz linie w pliku planu poleceniem wc -l dokumenty/plan.txt. Następnie sprawdź, co się stanie, gdy spróbujesz usunąć rmdir projekty — dlaczego polecenie odmawia?
Rozwiązanie z oczekiwanym wynikiem
Kolejne polecenia, wykonywane w ~/kolo po wspólnym przykładzie:
# Zadanie 1
mkdir projekty
mkdir projekty/strona
cd projekty/strona
pwd
cd ../..
# Zadanie 2
cp dokumenty/plan.txt projekty/plan-kopia.txt
echo "Temat: system binarny" >> dokumenty/plan.txt
mv dokumenty/notatki.txt dokumenty/pomysly.txt
cat dokumenty/plan.txt
cat projekty/plan-kopia.txt
# Zadanie 3
rm projekty/plan-kopia.txt
rmdir obrazy
ls -R
W zadaniu 1 pwd pokaże ścieżkę kończącą się na /kolo/projekty/strona, np. /home/uczen/kolo/projekty/strona. Zamiast dwóch poleceń mkdir można użyć mkdir -p projekty/strona — opcja -p tworzy też brakujące katalogi nadrzędne.
W zadaniu 2 cat dokumenty/plan.txt wypisze dwie linie, a cat projekty/plan-kopia.txt tylko pierwszą. Kopia jest osobnym plikiem: zmiany w oryginale wykonane po skopiowaniu nie przenoszą się do niej.
Oczekiwany wynik ls -R po zadaniu 3:
.:
dokumenty projekty
./dokumenty:
plan.txt pomysly.txt
./projekty:
strona
./projekty/strona:
Dla chętnych: wc -l wypisze 2 dokumenty/plan.txt. rmdir projekty zakończy się komunikatem, że katalog nie jest pusty (Directory not empty) — rmdir usuwa tylko puste katalogi i właśnie dlatego jest bezpieczniejszy od rm -r.
Typowe błędy
| Komunikat lub objaw | Co sprawdzić |
|---|---|
| No such file or directory | Literówka, wielkość liter albo polecenie wykonane w innym katalogu niż myślisz — sprawdź pwd. |
| command not found | Literówka w nazwie polecenia, np. sl zamiast ls, albo spacja w środku nazwy. |
| Plik planu ma tylko jedną linię zamiast dwóch | Użyto > zamiast >> — pojedynczy znak zastąpił zawartość pliku. |
| mkdir: cannot create directory: File exists | Katalog już istnieje, np. przy drugim podejściu do ćwiczenia. |
| rmdir: failed to remove: Directory not empty | Katalog zawiera pliki lub podkatalogi; najpierw sprawdź jego zawartość przez ls. |
| Polecenie czeka i nic się nie dzieje | Brak zamykającego cudzysłowu w echo; przerwij Ctrl+C i wpisz polecenie ponownie. |
| Permission denied | Próba zapisu poza katalogiem domowym; wróć poleceniem cd ~. |
Pytania kontrolne i punktacja
- Czym różni się ścieżka względna od bezwzględnej? Podaj przykład każdej.
- Czym różni się
echo "tekst" > plik.txtodecho "tekst" >> plik.txt? - Dlaczego przed usunięciem pliku warto sprawdzić
pwdils?
Odpowiedzi: ścieżka bezwzględna zaczyna się od / i prowadzi od korzenia systemu plików (/home/uczen/kolo), a względna jest liczona od bieżącego katalogu (kolo/dokumenty, ..). Pojedynczy > zastępuje zawartość pliku, a >> dopisuje tekst na końcu. rm usuwa plik od razu, bez kosza — trzeba mieć pewność, w którym katalogu jesteśmy i co dokładnie usuwamy.
Proponowana punktacja (razem 10 punktów): zadanie 1 — katalogi 1 pkt, przejście i zapisane pwd 1 pkt, powrót cd ../.. 1 pkt; zadanie 2 — kopia 1 pkt, dopisanie >> 1 pkt, mv 1 pkt, wyjaśnienie różnicy między plikami 1 pkt; zadanie 3 — rm i rmdir 1 pkt, zgodny wynik ls -R 1 pkt; odpowiedź na pytanie 1 — 1 pkt. Zadanie dla chętnych nie jest wymagane do kompletu punktów.
Materiały do pobrania
- Pakiet: karta pracy, klucz z oczekiwanymi wynikami i skrypt rozwiązania
- Karta pracy ucznia — otwórz i wydrukuj
- Klucz odpowiedzi dla nauczyciela
Skrypt rozwiazanie.sh tworzy katalog tymczasowy (mktemp -d), wykonuje w nim wspólny przykład i trzy zadania, wypisuje wynik ls -R i na końcu usuwa tylko ten katalog. Uruchom go poleceniem bash rozwiazanie.sh. Nie zmienia on katalogu ~/kolo uczniów. Materiały są dostępne bez logowania; klucz jest publiczny i służy nauce, nie poufnemu sprawdzianowi.
Co dalej po podstawowych poleceniach?
Kolejne lekcje to uprawnienia plików (chmod, chown), wyszukiwanie (find, grep), potoki i pierwsze skrypty powłoki. Ten zakres, razem z użytkownikami, procesami, dyskami i administracją systemem, obejmuje kurs Systemy operacyjne — Linux w TablicaPro, przygotowany pod kwalifikację INF.02, z prezentacjami, ćwiczeniami i testami. Do zadania o planie koła pasuje też lekcja o systemie binarnym.
Źródła: podręcznik GNU Coreutils (ls, cp, mv, rm, mkdir, touch) oraz przekierowania w podręczniku powłoki Bash.
Poprowadź kolejne lekcje Linux
Pełny kurs: prezentacje, ćwiczenia i testy do pracy z klasą.
Kup dostęp do kursu Linux →