Page tree
Skip to end of metadata
Go to start of metadata

Język skryptowy Bash

Zadanie 1 (imie.sh)

Napisz skrypt imie.sh, który będzie wyświetlał na ekranie Twoje imię i nazwisko.

Zadanie 2 (zalogowanych.sh)

Napisz skrypt zalogowanych.sh, który zwróci liczbę aktualnie zalogowanych użytkowników.

Wywołanie:

$ ./zalogowanych.sh

Przykładowy wynik:

12

Zadanie 3 (szukaj-tutaj.sh)

Napisz skrypt szukaj-tutaj.sh, który będzie wyszukiwał pliki o nazwie podanej w parametrze skryptu. Wyszukiwanie ma się odbywać od katalogu w którym aktualnie pracuje użytkownik. Przykład użycia:

$ cd /home/zasoby/
$ szukaj-tutaj.sh "*mp3"

Zadanie 4 (zmienne.sh)

Napisz skrypt zmienne.sh, w którym zdefiniuj zmienne:

  • liczbową o nazwie L z wartością 555
  • tekstową o nazwie N z wartością „napis”

Wyświetl zawartość zmiennych na ekranie.

Zadanie 5 (zmienna $0)

Sprawdź przy pomocy dowolnego skryptu Bash, jaka wartość przypisana jest do zmiennej $0.

Zadanie 6 (suma.sh)

Napisz skrypt suma.sh, który obliczy sumę dwóch liczb: 12345, 98765 i wyświetli wynik na ekranie.

Zadanie 7 (suma2.sh)

Napisz skrypt w pliku o nazwie „suma2.sh”, który będzie zwracał sumę dwóch liczb podanych w parametrach skryptu. Na przykład, po wywołaniu skryptu:

$ ./suma2.sh 59 11

na ekranie powinien pojawić się wynik:

70

Zadanie 8 (ktorywiekszy.sh)

Napisz skrypt w pliku o nazwie ktorywiekszy.sh sprawdzający, który z dwóch podanych przez użytkownika parametrów liczbowych przy wywołaniu skryptu jest większy.

$ ./ktorywiekszy.sh 12 32
32

Zadanie 9 (serwer.sh)

Napisz skrypt serwer.sh, który przyjmuje tylko trzy parametry: „start”, „stop” i „restart”.

  • Przy błędnym podaniu parametru skrypt powinien wyświetlić użytkownikowi sposób użycia skryptu.
  • Przy „start” ma wyświetlić „Usluga jest uruchamiana…”
  • Przy „stop” ma wyświetlać „Usluga jest zatrzymywana…”
  • Przy „restart” ma wyświetlać „Usluga jest restartowana…”

Zadanie 10 (listuj-pliki-i-katalogi.sh)

Napisz skrypt listuj-pliki-i-katalogi.sh, który będzie wyświetlał nazwy wszystkich plików i katalogów z katalogu /etc w następującej formie

katalog nazwa-katalogu
plik nazwa-pliku

Przykładowy output programu:

katalog CORBA
katalog RCS
katalog acpi
plik adjtime
katalog apache
plik resolv.conf
katalog X11

Podpowiedź: wykorzystaj pętle.

Zadanie 11 (pliki-wykonywalne.sh)

Napisz skrypt pliki-wykonywalne.sh, który wyświetli nazwy wszystkich plików z katalogu /bin/, które użytkownik ma prawo uruchamiać.

Wykorzystaj pętlę for i testy, nie używaj programu find.

Zadanie 12 (modyfikacja 10 i 11)

Zmodyfikuj skrypty 10 i 11, aby użytkownik mógł w parametrze skryptów podać nazwę katalogu, który wyświetli pliki. Na początku skryptu należy sprawdzić, czy katalog ten istnieje i w razie błędu powiadomić użytkownika.

Zadanie 13 (info.sh)

Napisz skrypt w pliku o nazwie info.sh, który będzie wyświetlał informacje o działającym systemie. Program ma mieć następującą funkcjonalność:

  1. wyświetlanie informacji o wolnej przestrzeni dyskowej;
  2. wyświetlanie informacji o wolnej pamięci ram;
  3. wyświetlanie informacji o procesorach zainstalowanych w jednostce głównej;
  4. wyświetlenie wszystkich powyższych.

Wybrane informacje maja być wyświetlane tylko przy odpowiednio użytych parametrach skryptu, odpowiednio:

  1. –hd
  2. –ram
  3. –cpu
  4. –all

Jeśli użytkownik użyje argumentu „–help” lub poda zły argument skrypt ma wyświetlić treść pomocy.

Zadanie 14 (serwery.sh)

Napisz skrypt serwisy.sh, który będzie przyjmował dwa argumenty: start lub stop. Pierwszy parametr uruchomi w systemie serwisy sshd i ntpd, parametr „stop” zatrzyma te usługi.

Zadanie 15 (zajetosc90.sh)

Napisz skrypt zajetosc90.sh, które:

  • przyjmuje jako argument nazwę katalogu
  • dla tego katalogu sprawdza, ile jest wolnej przestrzeni na partycji na której jest ten katalog
  • jeśli wolnej przestrzeni pozostało poniżej 10% wysyłany jest e-mail do roota o treści „Na partycji z katalogiem X jest mało miejsca”

Podpowiedzi:

Aby mieć możliwość wysyłania maili i wygodnego ich odbierania zainstaluj pakiety mail (wysyłka) i mutt (klient). Przykład komendy wysyłającej maila do roota:

echo Tresc | mail -s Temat root

Zadanie 16 (dostepne-dla-usera.sh)

Napisz skrypt dostepne-dla-usera.sh, który:

  • może być uruchomiony tylko jako root;
  • przyjmuje jako argument nazwę konta użytkownika;
  • jeśli zostanie uruchomiony jako nie-root zwróci o tym informację i zakończy działanie;
  • jeśli konto użytkownika nie istnieje zwróci o tym informację i zakończy działanie;
  • wyświetla na ekranie wszystkie pliki (nie katalogi) do których podany w argumencie użytkownik ma prawo odczytu.
  • No labels
Write a comment…