systemy_operacyjne_cw_04_linux_bash.pdf
(
287 KB
)
Pobierz
Microsoft Word - systemy_operacyjne_cw_04_linux_bash.docx
Ćwiczenie 4
Temat:
Skrypty powłoki
systemowej Bash.
Tworzenie programów w języku
Cel ćwiczenia:
Celem ćwiczenia jest zapoznanie studenta ze składnią języka powłoki
systemowej Bash, między innymi ze zmiennymi systemowymi, zmiennymi
specjalnymi, instrukcjami warunkowymi, pętlami. Student w tym ćwiczeniu
zapozna się z metodami tworzenia własnych programów w języku powłoki oraz
pozna możliwości zastosowania własnych skryptów.
powłoki.
Powłoka Bash – Wstęp
Powłoka Bash jest obecnie najpopularniejszym interpreterem poleceń w systemach
Linux. Powstał jako rozszerzenie powłoki „sh”, „ksh” oraz „csh”. Składnia języka pozwala na
tworzenie własnych programów skryptowych, które znacznie ułatwiają pracę
administratorom systemów oraz umożliwiają zautomatyzowane zarządzanie systemem.
W wielu dystrybucjach systemu Linux podstawowa instalacja (
z ang. „base”
) nie zawiera
powłoki
bash
, a jedynie powłokę
sh
(w takiej sytuacji powłoka
bash
może zostać oczywiście
doinstalowana). Natomiast większość instalacji typu domyślnego (
z ang. „default”
) zawiera
powłokę
bash
jako domyślny interpreter komend. W celu sprawdzenia, czy w systemie
zainstalowany jest interpreter
bash
oraz w której wersji, wydać należy polecenie:
/bin/bash version
Skrypty powłoki Bash
Skrypty to pliki tekstowe zawierające polecenia danego języka skryptowego interpretowane
przez zdefiniowany interpreter. Skrypty tym różnią się od innych programów
komputerowych, że nie muszą być kompilowane.
Skrypty pisane w języku powłoki
bash
powinny mieć rozszerzenie
.sh
oraz powinny
rozpoczynać się linią informującą, jaki interpreter powinien zostać użyty:
#!/bin/bash
Aby skrypt mógł zostać uruchomiony powinien mieć ustalone prawa dostępu do pliku
umożliwiające jego wykonanie:
chmod 700 moj_pierwszy_skrypt.sh
Skrypt może zawierać dowolne polecenie, które może zostać wydane w konsoli. Skrypty
umożliwiają dodatkowo stosowanie zmiennych, interakcję z użytkownikiem, stosowanie
instrukcji warunkowych, pętli, okien dialogowych itp.
Tworzenie programów w języku powłoki.
52
Zadanie 1 Pierwszy skrypt powłoki Bash
1.
Stworzyć skrypt wg poniższych wytycznych:
1.1.
W konsoli
tty1
, za pomocą edytora Vim stworzyć plik:
program_01.sh
1.2.
Uzupełnić plik treścią:
#!/bin/bash
echo ”Witaj !”
sleep 5
echo e ”Minęło 5 sekund! \n Witaj \t\tponownie !!! ”
* polecenie
sleep
zatrzymuje wykonanie kodu na zadeklarowaną ilość sekund,
natomiast polecenie
echo
wywołane z flagą
-e
umożliwia interpretację znaków
reprezentujących (\n) nową linię czy (\t) tabulator.
1.3.
Zapisać zmiany i zamknąć edytor Vim
1.4.
Zmienić prawa dostępu do skryptu poleceniem:
chmod 700 program_01.sh
1.5.
Wykonać skrypt, za pomocą polecenia:
./program_01.sh
Zmienne
W języku powłoki Bash zmienne można podzielić na zmienne:
programowe
specjalne
tablicowe
Tworzenie programów w języku powłoki.
53
Zmienne programowe
Zmienne programowe to zmienne tworzone i widoczne w ramach jednego programu.
Zmienne w języku Bash nie mają jawnie zdefiniowanego typu. Ich deklaracja odbywa się na
zasadzie wskazania nazwy zmiennej oraz przypisaniu jej wartości np.:
x=15
y=10
tekst=”Zmienna tekstowa”
W powyższym przykładzie zmienne x,y zostały zdefiniowane jako zmienne liczbowe,
natomiast zmienna tekst jako zmienna tekstowa.
Odwołania do tak zdefiniowanych zmiennych wykonuje się stosując symbol „$” przed nazwą
zmiennej np:
echo $$$$x
echo $$$$y
lub np. poprzez bardziej złożone konstruowanie ciągów tekstowych z wykorzystaniem
polecenia echo:
echo e "zmienna x wynosi \t$$$$x \nnatomiast y wynosi \t$$$$y"
Przypisywanie wartości do zmiennych programowych
Przypisanie wartości do zmiennej może odbywać się w najprostszym wypadku tak jak to
zostało zaprezentowane w powyższym przykładzie, poprzez bezpośrednie przypisanie :
y=10
Wartość zmiennej może także zostać pograna z konsoli, za pomocą polecenia read, którego
składnia jest następująca:
read nazwa_zmiennej
Polecenie to pozwala na pobranie z konsoli wartości i przypisanie jej do zmiennej np:
echo ”Podaj wartość zmiennej x:”
read x
echo ”Zmienna x wynosi: $x”
Zmienne programowe
54
read x
Za pomocą polecenia
read
możliwe jest także pobranie wartości kilku zmiennych:
echo ”Podaj dwie liczby oddzielone spacjami:”
read x y
echo ”Zmienna x wynosi: $x \nZmienna y wynosi: $y”
Kolejną metodą przypisywania wartości do zmiennych jest zagnieżdżanie poleceń, których
wyjście zostanie przypisane jako wartość zmiennych.
A=`polecenie1`
W powyższym przykładzie wynik działania polecenia1 zostanie przypisany do zmiennej A.
Należy zwrócić uwagę, iż polecenia zagnieżdżone muszą znajdować się pomiędzy ukośnymi
symbolami apostrofu (symbol ten na klawiaturze znajduje się najczęściej razem z symbolem
„tyldy” (~) . Np:
linie=`cat /etc/group | wc l`
echo ”Ilość linii w pliku Group wynosi: $linie”
Zadanie 2 Zmienne programowe
1.
Utworzyć skrypt:
program_02.sh
który zapyta o nazwę użytkownika systemowego, a po
wprowadzeniu za pomocą konsoli nazwy użytkownika wyświetli jego ID, oraz ID jego
grupy na podstawie danych w pliku
/etc/passwd
Przypisywanie wartości do zmiennych programowych
55
Plik z chomika:
madzienx
Inne pliki z tego folderu:
systemy_operacyjne_cw_13_wsus_iis_ftp.pdf
(1856 KB)
systemy_operacyjne_cw_11_active_directory_cz2.pdf
(1061 KB)
systemy_operacyjne_cw_08_podstawy_administracji_cz1.pdf
(896 KB)
systemy_operacyjne_cw_07_linux_apache_mysql(1).pdf
(168 KB)
systemy_operacyjne_cw_12_wds_dhcp.pdf
(1281 KB)
Inne foldery tego chomika:
Administrowanie systemami
Automatyka
Bazy Danych
Bezpieczenstwo systemów
czujniki i przetworniki
Zgłoś jeśli
naruszono regulamin