POLITECHNIKA OPOLSKA
Wydział Elektrotechniki, Automatyki
i Informatyki
Laboratorium Systemy operacyjne II
Lista 6a
Dawid Szymczak, W2 L7
Teoria
Skrypty są odpowiednikami plików wsadowych systemu DOS. Skrypty czyli programy powłoki są prostymi plikami tekstowymi zawierającymi niektóre polecenia Linuksa i powłoki bash. Po uruchomieniu programu powłoki polecenia te są wykonywane jedno po drugim. Program powłoki może mieć przekazane parametry, tak jak w wypadku jakiegokolwiek normalnego polecenia. Parametry te mogą być oceniane wewnątrz programu. Ponieważ proste, sekwencyjne wykonywanie kilku poleceń nie zostawia wiele miejsca dla złożonych zadań, bash wspiera programowanie powłoki poleceniami do konstruowania pętli i rozgałęzień. Typowym zastosowaniem programów powłoki jest automatyzacja najczęściej wykorzystywanych sekwencji poleceń do instalacji programów, administracji systemem, tworzenia kopii zapasowych, konfiguracji i wykonywania pojedynczych programów itd. Czyli podsumowując skrypt to niekompilowany tekstowy plik wykonywalny, zawierający jakieś polecenia systemowe oraz polecenia sterujące jego wykonaniem (instrukcje, pętle itp.). Wykonywany jest tylko i wyłącznie przez interpreter ( tutaj /bin/bash), który tłumaczy polecenia zawarte w skrypcie na język zrozumiały dla procesora.
Zadania do wykonania
1. Napisać skrypt, który będzie wyświetlał liczbę użytych przy wywołaniu skryptu parametrów oraz te parametry.
Do wyświetlenia tekstu używamy polecenia echo. $# wyświetla liczbę użytych parametrów, a $* wyświetla wszystkie użyte parametry.
Po uruchomieniu skryptu mamy następujący efekt:
2. Napisać skrypt, który w trakcie działania pobierze dwie liczby i określi, która z liczb jest większa.
To, co zostaje wpisane przez użytkownika, zostaje kolejno przypisane zmiennej a i b. Do spełnienia mamy 3 warunki: czy liczba jest wieksza, czy liczba jest mniejsza i czy liczba jest równa. Parametr –gt sprawdza czy pierwsza liczba jest wieksza. Parametr –lt sprawdza czy druga liczba jest wieksza. Jeżeli oba powyższe warunki nie zostaną spełnione to znaczy ze podane liczby sa równe.
Pierwsza liczba jest większa:
Druga liczba jest większa:
Obie wartości są równe:
3. Napisać skrypt, który sprawdza ilu użytkowników ma na
naszym komputerze konta oraz wyświetla, którzy z nich są
aktualnie zalogowani.
Komendą Cat /etc/passwd/wc-w sprawdzamy ilu użytkowników ma konto na komputerze. Za pomocą komendy who z parametrem –q widzimy, którzy użytkownicy są teraz zalogowani.
Efekt uruchomienia skryptu:
4. Napisać skrypt wyświetlający konfigurację sieciową w następujący sposób: "Dostępne są XX interfejsy siecowe o następujących adresach IP:".
Przy pomocy komendy grep możemy znaleźć pliki zawierające w swojej zawartości określone wyrazy. Za pomocą polecenia wc możemy dowiedzieć się (nie otwierając pliku w edytorze tekstowym) informacji na temat ilości bajtów, słów, znaków, linii, oraz rozmiarze najdłuższej linii. Awk używamy, gdy chcemy wypisać tylko określone wiersze lub kolumny z pliku lub czytane z wyjścia jakiegoś polecenia.
lInt=$ (cat ifc | grep „Link en cap” wc –i)
echo “Dostepne sa $lInt interfejsy sieciowe o nastepujacych adresach IP: “
ip=$(cat ifc | grep inet | awk –F ‘Mask:’ ‘(print $2)’ | awk –F ” ” ‘(print $$)’
mask=$ (cat ifc | grep inet | awk –F ‘Mask:’ ‘(print $2)’ | awk –F “ ” ‘(print $$)’
iptab=($ip)
masktab=($mask)
for ((i=0; i<lInt; i++))
do
echo $(iptab[i]) “z maska “ $(masktab[i])
done
konopia0700