Linux · wiersz poleceń

Linux — podstawowe polecenia i ćwiczenia dla uczniów

pwd, ls, cd, mkdir, echo, cp, mv i rm na przykładzie folderu projektu. Trzy zadania, klucz z wynikami i skrypt rozwiązania.

45 minutPoziom podstawowyPliki i rozwiązania

Materiał redakcyjny TablicaPro · liceum i technikum

$ mkdir -p kolo/dokumenty
$ cd kolo
$ echo "Środa 14:30" > dokumenty/plan.txt
$ cat dokumenty/plan.txt
Środa 14:30
Projekt w kilku poleceniach.
Bez myszki, bez okien.

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, echo z przekierowaniem >);
  • wyświetlać, kopiować, przenosić i usuwać pliki (cat, cp, mv, rm);
  • znaleźć opis polecenia przez --help lub man.
CzasPraca na lekcji
0–5 minTerminal, znak zachęty, pierwsze pwd i ls
5–15 minDrzewo katalogów, cd, ścieżki względne i bezwzględne
15–22 minmkdir, touch, echo i cat — wspólny przykład
22–37 minTrzy zadania samodzielne
37–42 minSprawdzenie wyniku ls -R z kluczem
42–45 minPytania 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 podkatalogu kolo (ś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 samo cd — 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 objawCo sprawdzić
No such file or directoryLiterówka, wielkość liter albo polecenie wykonane w innym katalogu niż myślisz — sprawdź pwd.
command not foundLiterówka w nazwie polecenia, np. sl zamiast ls, albo spacja w środku nazwy.
Plik planu ma tylko jedną linię zamiast dwóchUżyto > zamiast >> — pojedynczy znak zastąpił zawartość pliku.
mkdir: cannot create directory: File existsKatalog już istnieje, np. przy drugim podejściu do ćwiczenia.
rmdir: failed to remove: Directory not emptyKatalog zawiera pliki lub podkatalogi; najpierw sprawdź jego zawartość przez ls.
Polecenie czeka i nic się nie dziejeBrak zamykającego cudzysłowu w echo; przerwij Ctrl+C i wpisz polecenie ponownie.
Permission deniedPróba zapisu poza katalogiem domowym; wróć poleceniem cd ~.

Pytania kontrolne i punktacja

  1. Czym różni się ścieżka względna od bezwzględnej? Podaj przykład każdej.
  2. Czym różni się echo "tekst" > plik.txt od echo "tekst" >> plik.txt?
  3. Dlaczego przed usunięciem pliku warto sprawdzić pwd i ls?

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

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 →

Zobacz program kursu