Laboratorium BASH – Rozwiązania zadań praktycznych

Poniżej znajdują się kompletne rozwiązania 10 zadań laboratoryjnych z zakresu programowania w powłoce Bash. Każde rozwiązanie zawiera działający kod skryptu wraz z opisem działania oraz wskazówkami uruchomienia. Wszystkie skrypty zostały zweryfikowane pod kątem poprawności składni.

Zadanie 1: Kalkulator ocen semestralnych

Rozwiązanie: Skrypt realizuje interaktywny kalkulator ocen z walidacją i obliczaniem średniej.
Opis działania:
Plik rozwiązania: Pobierz 01_bash_z01.sh

Uruchomienie:
chmod +x 01_bash_z01.sh
./01_bash_z01.sh

Zadanie 2: Monitor dostępności serwerów

Rozwiązanie: Skrypt sprawdza dostępność serwerów używając ping i generuje raport.
Opis działania:
Plik rozwiązania: Pobierz 01_bash_z02.sh

Uruchomienie:
chmod +x 01_bash_z02.sh
./01_bash_z02.sh

Wynik:
cat /tmp/raport_serwery.txt

Zadanie 3: Parser pliku logów

Rozwiązanie: Skrypt analizuje plik logów i wyświetla statystyki błędów.
Opis działania:
Plik rozwiązania: Pobierz 01_bash_z03.sh

Uruchomienie:
chmod +x 01_bash_z03.sh
./01_bash_z03.sh

Z własnym plikiem logów:
./01_bash_z03.sh /var/log/myapp.log

Zadanie 4: Automatyczny backup plików

Rozwiązanie: Skrypt tworzy i przywraca kopie zapasowe plików w formacie tar.gz.
Opis działania:
Plik rozwiązania: Pobierz 01_bash_z04.sh

Uruchomienie - backup:
./01_bash_z04.sh backup /home/użytkownik/dane
./01_bash_z04.sh backup "/sciezka/do/pliku" /tmp/backup

Uruchomienie - restore:
./01_bash_z04.sh restore /tmp/backup/dane_2024-01-15_14-30-00.tar.gz /home/użytkownik

Zadanie 5: Generator haseł

Rozwiązanie: Skrypt generuje bezpieczne hasła losowe z wymaganymi znakami.
Opis działania:
Plik rozwiązania: Pobierz 01_bash_z05.sh

Uruchomienie:
./01_bash_z05.sh          # długość domyślna 16
./01_bash_z05.sh 12       # długość 12
./01_bash_z05.sh 24       # długość 24

Zadanie 6: Menadżer procesów

Rozwiązanie: Skrypt do zarządzania procesami - list, find, kill.
Opis działania:
Plik rozwiązania: Pobierz 01_bash_z06.sh

Uruchomienie:
./01_bash_z06.sh list
./01_bash_z06.sh find bash
./01_bash_z06.sh kill 1234
./01_bash_z06.sh kill 1234 KILL

Zadanie 7: Konwerter jednostek

Rozwiązanie: Skrypt konwertuje jednostki długości, temperatury i wagi.
Opis działania:
Plik rozwiązania: Pobierz 01_bash_z07.sh

Uruchomienie:
./01_bash_z07.sh dlugosc 100 m ft    # 100m -> stopy
./01_bash_z07.sh temperatura 0 c f   # 0°C -> °F
./01_bash_z07.sh waga 1 kg lb     # 1kg -> funty

Zadanie 8: System logowania

Rozwiązanie: Biblioteka funkcji logujących do pliku z datą i poziomem ważności.
Opis działania:
Pliki rozwiązań: Pobierz 01_bash_z08a.sh (biblioteka)
Pobierz 01_bash_z08.sh (demonstracja)

Uruchomienie demonstracji:
chmod +x 01_bash_z08.sh
./01_bash_z08.sh

Zadanie 9: Masowa zmiana nazw plików

Rozwiązanie: Skrypt masowo transformuje nazwy plików według wzorca.
Opis działania:
Plik rozwiązania: Pobierz 01_bash_z09.sh

Uruchomienie:
./01_bash_z09.sh /tmp/pliki lowercase --preview
./01_bash_z09.sh /tmp/pliki prefix img_
./01_bash_z09.sh /tmp/pliki replace " " "_"

Zadanie 10: Automatyczny instalator oprogramowania

Rozwiązanie: Skrypt instaluje pakiety i konfiguruje aliasy w systemie Linux.
Opis działania:
Plik rozwiązania: Pobierz 01_bash_z10.sh

Uruchomienie:
chmod +x 01_bash_z10.sh
sudo ./01_bash_z10.sh    # jako root - pełna instalacja
./01_bash_z10.sh        # bez roota - tylko aliasy

Podsumowanie