Pracownia Technik Obliczeniowych

Transkrypt

Pracownia Technik Obliczeniowych
Pracownia Technik Obliczeniowych
bash
Paweł Daniluk
Wydział Fizyki
Wiosna 2016
P. Daniluk(Wydział Fizyki)
PTO VI
Wiosna 2016
1 / 11
Powłoka systemu
Powłoka systemu (shell) jest doskonałym narzędziem, które pozwala zrobić
sporo więcej niż tylko uruchamiać programy.
Shell jest kompletnym językiem programowania.
Shell pozwala uruchamiać wiele zadań i nad nimi panować.
P. Daniluk(Wydział Fizyki)
PTO VI
Wiosna 2016
2 / 11
Zadania w tle
Każdy (?) działający program można zatrzymać (Ctrl-Z) i następnie
wznowić.
Polecenia fg, bg i jobs pozwalają zarządzać uruchomionymi zadaniami.
Należy odróżniać zadania (jobs) bashowe od procesów systemu
operacyjnego.
Przydatne kombinacje klawiszy:
1
Ctrl-C – kończy działanie programu (wysyła SIGTERM)
2
Ctrl-Z – zawiesza działanie zadania
3
Ctrl-Y – zawiesza działanie zadania w momencie, gdy oczekuje ono na
standardowym wejściu
4
Ctrl-D – zamyka standardowe wejście zadania
P. Daniluk(Wydział Fizyki)
PTO VI
Wiosna 2016
3 / 11
Krótki slajd o zabijaniu
kill [-s sigspec | -n signum | -sigspec] [pid | jobspec] ...
killall [-e|--exact] [-g|--process-group] [-i|--interactive] [
Przydatne sygnały
(6) SIGABRT
(9) SIGKILL
(11) SIGSEGV
(15) SIGTERM
P. Daniluk(Wydział Fizyki)
PTO VI
Wiosna 2016
4 / 11
Uruchamianie programów
W skrypcie bashowym można umieszczać dowolne polecenia, które bash
interpretuje. Aby uruchomić program nie potrzeba nic szczególnego.
Chyba, że trzeba przechwycić wyjście.
Stary sposób – odwrotne apostrofy (backticks)
‘ls‘
Nowy sposób
$(ls)
P. Daniluk(Wydział Fizyki)
PTO VI
Wiosna 2016
5 / 11
Pętla for
Bash ma zwykłą pętlę for-each.
f o r i i n $ ( l s ) ; do
echo i t e m : $ i
done
Pętli można używać w linii komend.
P. Daniluk(Wydział Fizyki)
PTO VI
Wiosna 2016
6 / 11
Pętla for
Pętlę po liczbach można zrobić korzystając z programu seq.
for i in ‘ seq 1 10 ‘;
do
echo $ i
done
P. Daniluk(Wydział Fizyki)
PTO VI
Wiosna 2016
7 / 11
bash jest językiem programowania
Wyrażenia arytmetyczne
echo $(( 2 + 2 ))
Przypisania
b = $(( $a + 2 ))
Instrukcja warunkowa
i f [ $a − l t 5 ] ; then
echo " a ␣ j e s t ␣ male . " ;
else
echo " a ␣ j e s t ␣ s p o r e . " ;
fi
P. Daniluk(Wydział Fizyki)
PTO VI
Wiosna 2016
8 / 11
Zadanie 1
Napisz program generujący w nieskończoność kolejne liczby naturalne.
Uruchom go tak, aby po wylogowaniu się i ponownym zalogowaniu nadal
działał.
P. Daniluk(Wydział Fizyki)
PTO VI
Wiosna 2016
9 / 11
Zadanie 2
Stwórz katalog zawierający bardzo dużo (>10k) plików o nazwach
będących liczbami naturalnymi. Usuń pliki o nazwach podzielnych przez 10.
P. Daniluk(Wydział Fizyki)
PTO VI
Wiosna 2016
10 / 11
Zadanie 3
Napisz skrypt, który przy pomocy wc zlicza linie w plikach o nazwach
podanych w linii parametrów.
P. Daniluk(Wydział Fizyki)
PTO VI
Wiosna 2016
11 / 11