Загрузка данных
Oto kompletne rozwiązanie zadań z komendami systemu Linux oraz wyjaśnieniami.
------------------------------
## ZADANIE 6 — Wyszukiwanie plików przez find## 1. Tworzenie struktury plików i katalogów
mkdir -p test-find/katalog1 test-find/katalog2
touch test-find/plik1.txt test-find/plik2.md test-find/katalog1/raport.txt test-find/katalog2/skrypt.sh
## 2. Wyszukiwanie konkretnego pliku po nazwie
find test-find -name "raport.txt"
## 3. Wyszukiwanie wszystkich plików z rozszerzeniem .txt
find test-find -name "*.txt"
## 4. Wyszukiwanie plików zaczynających się od wskazanego fragmentu (np. "plik")
find test-find -name "plik*"
## 5. Przeszukanie katalogu domowego w poszukiwaniu katalogu linux
Flaga -type d zawęża wyniki wyłącznie do katalogów.
find ~ -type d -name "linux"
## 6. Komunikaty o braku uprawnień (Permission denied)
Podczas przeszukiwania systemowych katalogów (np. /etc lub /var), komenda find może wyświetlić błędy typu:
find: ‘/etc/ssl/private’: Permission denied
* Przyczyna: Twój aktualny użytkownik nie ma uprawnień do odczytu niektórych katalogów systemowych należących do użytkownika root.
* Rozwiązanie (zapisanie błędów do pliku): Możesz przekierować strumień błędów (2) do pliku tekstowego:
find /etc -name "config*" 2> bledy.txt
## 7. Różnica między find a grep
| Cecha | find | grep |
|---|---|---|
| Co przeszukuje? | Strukturę katalogów na dysku. | Zawartość (tekst) wewnątrz plików lub strumienia danych. |
| Czego szuka? | Plików i folderów na podstawie ich metadanych (nazwa, rozmiar, data utworzenia, uprawnienia). | Linii tekstu pasujących do wzorca (słów, fraz, wyrażeń regularnych). |
| Przykład użycia | "Znajdź plik o nazwie rachunek.pdf." | "Znajdź słowo ERROR w pliku logi.txt." |
------------------------------
## ZADANIE 7 — Projekt końcowy „Porządek na komputerze”## 1. Tworzenie struktury katalogów
mkdir -p ~/projekt-linux/{dokumentacja,logi,backup,testy}
## 2. Tworzenie plików opisowych w każdym katalogu
touch ~/projekt-linux/dokumentacja/instrukcja.txt ~/projekt-linux/dokumentacja/wymagania.txt
touch ~/projekt-linux/logi/serwer.txt ~/projekt-linux/logi/aplikacja.txt
touch ~/projekt-linux/backup/kopia-stara.txt
touch ~/projekt-linux/testy/test1.txt ~/projekt-linux/testy/test2.txt ~/projekt-linux/testy/do-usuniecia.txt
mkdir ~/projekt-linux/testy/pusty-katalog
## 3. Kopiowanie, przenoszenie i zmiana nazwy plików
# Kopiowanie wybranego pliku do backup
cp ~/projekt-linux/dokumentacja/instrukcja.txt ~/projekt-linux/backup/
# Przenoszenie pliku
mv ~/projekt-linux/logi/serwer.txt ~/projekt-linux/backup/
# Zmiana nazwy pliku
mv ~/projekt-linux/dokumentacja/wymagania.txt ~/projekt-linux/dokumentacja/specyfikacja.txt
## 4. Usuwanie plików i pustego katalogu
# Usuwanie dwóch plików testowych
rm ~/projekt-linux/testy/test1.txt ~/projekt-linux/testy/do-usuniecia.txt
# Usuwanie pustego katalogu
rmdir ~/projekt-linux/testy/pusty-katalog
## 5. Utworzenie logu i filtrowanie przez grep
Najpierw tworzymy plik z wpisami:
cat << EOF > ~/projekt-linux/logi/system.log
2026-10-08 12:00:05 INFO Uruchomiono system pomyślnie.
2026-10-08 12:05:12 WARNING Niski poziom pamięci RAM.
2026-10-08 12:10:45 ERROR Błąd połączenia z bazą danych!
2026-10-08 12:15:20 INFO Odświeżono konfigurację.
EOF
Filtrowanie poszczególnych typów wpisów:
grep "INFO" ~/projekt-linux/logi/system.log
grep "WARNING" ~/projekt-linux/logi/system.log
grep "ERROR" ~/projekt-linux/logi/system.log
## 6. Analiza logu za pomocą head, tail i less
# Wyświetlenie pierwszych 2 linii logu
head -n 2 ~/projekt-linux/logi/system.log
# Wyświetlenie ostatnich 2 linii logu
tail -n 2 ~/projekt-linux/logi/system.log
# Interaktywne przeglądanie pliku (wyjście za pomocą klawisza Q)
less ~/projekt-linux/logi/system.log
Jeśli chcesz, możemy przejść do kolejnych kroków i np. zautomatyzować ten proces za pomocą skryptu Bash, dodać wyszukiwanie zaawansowane (np. po dacie modyfikacji) albo przećwiczyć wyrażenia regularne w grep. Daj znać, co interesuje Cię najbardziej!