CZĘŚĆ 1: Narzędziownik administratora - operacje na plikach i katalogach
touch - powoływanie plików do życia
Analogia: Wyciągnięcie nowej, czystej kartki z szuflady i wpięcie jej do skoroszytu z nadanym tytułem.
Polecenie touch służy przede wszystkim do natychmiastowego tworzenia pustych plików (o rozmiarze 0 bajtów). W administracji systemem używa się go do przygotowywania szkieletów skryptów, plików konfiguracyjnych lub znaczników kontrolnych. Co ciekawe: jeśli plik już istnieje, touch nie zniszczy jego zawartości, a jedynie zaktualizuje datę jego ostatniej modyfikacji.
# Utworzenie pojedynczego, pustego pliku tekstowego:
touch notatka.txt
# Błyskawiczne utworzenie kilku różnych plików za jednym razem (oddzielonych spacją):
touch raport.txt skrypt.sh dane.csv
mkdir - budowanie przestrzeni (katalogów)
Analogia: Stawianie nowego, pustego regału w magazynie.
Polecenie mkdir (skrót od make directory) tworzy nowy katalog w bieżącej lub wskazanej ścieżce.
💡 Sekret mistrzów: Flaga -p (parents)
Domyślnie mkdir potrafi utworzyć tylko jeden poziom katalogu. Jeśli spróbujesz wpisać: mkdir Szkoła/Klasa3/Dokumenty, a foldery Szkoła i Klasa3 jeszcze nie istnieją - system odmówi posłuszeństwa i zgłosi błąd: No such file or directory.
Tutaj do gry wkracza flaga -p. Powoduje ona, że system w ułamku sekundy tworzy całą ścieżkę zagnieżdżeń (rodziców oraz dzieci). Jeśli któryś katalog pośredni już istnieje, system go pominie bez zgłaszania błędu.
# Zwykłe utworzenie pojedynczego katalogu:
mkdir Projekty
# Utworzenie całej zagnieżdżonej struktury jednym poleceniem (kluczowa technika na egzaminie INF.02!):
mkdir -p Firma/Dokumenty/Raporty
cp - powielanie zasobów
Analogia: Wizyta przy kserokopiarce. Oryginał leży nienaruszony na biurku, a Ty zanosisz świeżą kopię w nowe miejsce.
Polecenie cp (od copy) kopiuje pliki lub foldery ze źródła (źródło) do wskazanego miejsca docelowego (cel).
# Skopiowanie pliku konfiguracyjnego do innego katalogu:
cp config.cfg /etc/kopia_zapasowa/
# Skopiowanie pliku ze zmianą jego nazwy w nowym miejscu:
cp dane.csv archiwum/dane_kopia.csv
mv - zmiana lokalizacji lub tożsamości
Analogia: Fizyczne przeniesienie pudła na inną półkę w magazynie LUB przeklejenie naklejki z nową nazwą na tym samym pudle.
W Linuksie nie ma osobnego polecenia do zmiany nazwy (jak rename). Narzędzie mv (move) wykonuje dwie operacje zależnie od kontekstu:
- Przenosi plik do innego folderu.
- Zmienia nazwę pliku (jeśli ścieżka docelowa wskazuje ten sam folder, ale inną nazwę).
# Zmiana nazwy pliku w bieżącym katalogu:
mv stary_raport.txt nowy_raport.txt
# Przeniesienie pliku do podkatalogu 'Archiwum':
mv log.txt Archiwum/
rm - bezpowrotna utylizacja
Analogia: Wrzucenie dokumentu do przemysłowej niszczarki zintegrowanej z piecem hutniczym.
Narzędzie rm (remove) usuwa wskazane pliki.
WAŻNA ZASADA BEZPIECZEŃSTWA:
W konsoli Linuksa NIE MA KOSZA. Usunięte poleceniem
rmdane znikają natychmiastowo, a ich odzyskanie w warunkach produkcyjnych jest niezwykle trudne lub wręcz niemożliwe. System zakłada, że wiesz, co robisz!
💡Flaga -r (rekurencja)
Domyślnie polecenie rm odmawia usuwania katalogów. Aby usunąć katalog wraz ze wszystkimi znajdującymi się w nim plikami i podkatalogami, musisz zastosować flagę -r (ang. recursive - schodzenie w dół każdego zagnieżdżenia).
# Bezpieczne usunięcie pojedynczego pliku:
rm tymczasowy.txt
# Rekurencyjne usunięcie całego katalogu wraz ze wszystkim, co zawiera:
rm -r StaryProjekt/
CZĘŚĆ 2: Znaki globalne (Wildcards)
Wyobraź sobie, że w jednym katalogu masz 1500 zdjęć i musisz przenieść tylko te z rozszerzeniem .png. Przenoszenie ich pojedynczo zajęłoby godziny. Znaki globalne (ang. Wildcards) to szablony, które powłoka Bash podstawia w miejsce nazw pasujących plików.
Na egzaminie INF.02 absolutnym fundamentem są dwa znaki:
Gwiazdka * - "Dżoker Uniwersalny"
- Co oznacza: Zastępuje DOWOLNY ciąg znaków o DOWOLNEJ długości (w tym także ciąg pusty - czyli 0 znaków!).
- Kiedy stosować: Kiedy interesuje Cię tylko wspólny fragment (np. początek nazwy, rozszerzenie), a długość reszty wyrazu nie ma znaczenia.
# Dopasuje: raport.txt, test.txt, a.txt, bardzo_dluga_nazwa.txt
mv *.txt Dokumenty/
# Dopasuje każdy plik zaczynający się od słowa "kopia" (np. kopia.zip, kopia_bazy_2026.sql)
rm kopia*
Znak zapytania ? - "Snajper Jednego Znaku"
- Co oznacza: Zastępuje DOKŁADNIE JEDEN, dowolny znak.
- Kiedy stosować: Kiedy znasz precyzyjny schemat nazewnictwa i polujesz na pliki różniące się tylko jednym symbolem (np. numerem indeksu lub literą wersji).
# Dopasuje: test1.txt, test2.txt, testA.txt
# NIE dopasuje: test10.txt (bo "10" to dwa znaki!), ani test.txt (brak znaku)
rm test?.txt
🥊 Wielki pojedynek: plik*.txt vs plik?.txt
Załóżmy, że w Twoim folderze roboczym znajduje się 5 następujących plików:
plik.txtplik1.txtplik2.txtplik99.txtplikARCHIWUM.txt
Zobacz, jak zareagują na nie oba wzorce:
| Wzorzec wyszukiwania | Pasujące pliki | Dlaczego tak się stało? |
plik*.txt |
• plik.txt• plik1.txt• plik2.txt• plik99.txt• plikARCHIWUM.txt |
Dopasował WSZYSTKIE pliki! Gwiazdka dopasowała 0 znaków (plik.txt), 1 znak (plik1, plik2), 2 znaki (plik99) oraz długie słowo (plikARCHIWUM). |
plik?.txt |
• plik1.txt• plik2.txt |
Dopasował TYLKO TE DWA pliki! Pytajnik zażądał obecności dokładnie jednego symbolu po słowie „plik”. Odrzucił brak znaku (plik.txt) oraz więcej niż jeden znak (99, ARCHIWUM). |
SZYBKA ŚCIĄGAWKA PRZED WEJŚCIEM NA PRACOWNIĘ
| Polecenie / Znak | Kluczowe przełączniki | Podstawowe zastosowanie | Złota zasada / Cenna uwaga |
touch |
brak | Tworzenie pustych plików | Możesz podać wiele nazw po spacji: touch a b c |
mkdir |
-p (parents) |
Tworzenie folderów / struktur | Zawsze używaj -p, gdy tworzysz ścieżki zagnieżdżone |
cp |
-r (dla folderów) |
Kopiowanie danych | Składnia: cp [co] [gdzie] |
mv |
brak | Przenoszenie i zmiana nazwy | Służy zarówno do przeprowadzki pliku, jak i zmiany podpisu |
rm |
-r (rekurencyjnie) |
Usuwanie plików i katalogów | Brak kosza! Usunięcie z flagą -r czyści całe drzewo folderu |
* |
operator powłoki | Zastępuje od 0 do nieskończoności znaków | *.txt wybierze każdy plik tekstowy na świecie |
? |
operator powłoki | Zastępuje dokładnie 1 dowolny znak | dane?.csv złapie dane1.csv, ale zignoruje dane10.csv |
🚀 Wskazówka na egzamin: Przed wykonaniem groźnego polecenia
rm *wzorzec*, zawsze możesz najpierw wpisaćls *wzorzec*. W ten sposób na własne oczy zobaczysz listę plików, które za chwilę zostaną skasowane, i upewnisz się, że Twój Wildcard jest w 100% precyzyjny!