Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Proponowany program wykładu monograficznego

Podobne prezentacje


Prezentacja na temat: "Proponowany program wykładu monograficznego"— Zapis prezentacji:

1 Proponowany program wykładu monograficznego
Elementy programowania w językach skryptów w systemie UNIX. Posługiwanie się językiem awk i edytorem strumieniowym sed Praca na klastrach i superkomputerach w centrach obliczeniowych; systemy kolejkowania. Obliczenia równoległe. Baza danych PDB i inne bazy danych cząsteczek. Wizualizacja cząsteczek i wielkości z nimi związanych. Programy obliczeniowe używane w chemii kwantowej oraz obliczeniach dynamiki dużych układów molekularnych.

2 Języki skryptów Powłoka - Interpreter poleceń wydawanych przez użytkownika. Powłoki w systemie UNIX: Nazwa Autor Pliki konfiguracyjne Zastosowania sh Ken Thompson Steven Bourne Nieinteraktywne (skrypty) bash .bashrc wszystkie ksh David Korn .profile csh Bill Joy .cshrc .login tcsh .tcshrc .login

3 Jakie powłoki są dostępne w systemie:
etoh:~> ls -l /bin/*sh* lrwxrwxrwx 1 root root Oct /bin/ash -> dash -rwxr-xr-x 1 root root Dec /bin/bash lrwxrwxrwx 1 root root Oct /bin/csh -> /etc/alternatives/csh -rwxr-xr-x 1 root root May /bin/dash lrwxrwxrwx 1 root root Oct /bin/rbash -> bash lrwxrwxrwx 1 root root Oct /bin/sh -> bash -rwxr-xr-x 1 root root May /bin/tcsh Sprawdzanie powłoki etoh:~> env | grep SHELL SHELL=/bin/tcsh

4 Ustawianie zmiennych lokalnych
Zmienne powłoki csh sh Ustawianie zmiennych lokalnych set zmienna = wartość np. set zm = “ala” zmienna = wartość zm = “ala” Ustawianie zmiennych środowiskowych (przekazywanych do procesów wywoływanych przez skrypt) setenv zmienna = wartość setenv zm = “ala” export zmienna albo: export zmienna=wartość export zm=“ala”

5 Skrypt: zbiór poleceń w języku powłoki zapisanych w pliku i wykonywanych zgodnie z sekwencją zapisu
Składnia (ogólnie): #!powłoka opcje polecenie1 #komentarz polecenien Przykład (csh) #!/bin/csh -f echo “Prosty skrypt” echo –n “dzisiaj jest ” date #Podawanie aktualnego katalogu echo “Jestesmy w katalogu ”$cwd echo “Mamy tu nastepujace pliki” #Listowanie plikow ls -l

6 Parametry (argumenty) skryptu
Skrypt można wywoływać jak każde polecenie unixowe, np: ./skrypt.sh ala ma kota Każdy parametr stojący za nazwą skryptu jest argumentem, który jest widziany we wnętrzu skryptu. Wewnątrz skryptu odwołujemy się do argumentów poprzez $1, $2, …, itd. Argument zerowy ($0) jest nazwą skryptu Liczba argumentów jest zakodowana w zmiennej $#argv

7 Podstawienie efektu wykonania polecenia pod zmienną
set zmienna = `polecenie` np. set a = `echo Ala ma kota` Arytmetyka expr wyrażenie1 operator wyrażenie2 np. expr 2 + 3 Podstawienie: jak przy podstawieniu efektu wykonania polecenia set zmienna = `expr wyrażenie1 operator wyrażenie2` set x = `expr 2 ‘*’ 3`

8 Operatory w poleceniu expr
+ dodawanie - odejmowanie ‘*’ albo \* mnożenie ‘/’ albo \/ dzielenie całkowite % reszta z dzielenia Uwaga! Polecenie expr umożliwia tylko arytmetykę całkowitą. Do arytmetyki rzeczywistej należy użyć języka awk albo kalkulatora bc wywoływanego z opcją –l.

9 Do grupowania poszczególnych części wyrażenia w poleceniu expr służą nawiasy – tak jak w zwykłej arytmetyce. Nawias należy poprzedzić odwróconym ukośnikiem (backslashem) Przykłady: expr \( $a + $b \) \* $c (wymuszanie dodawania przed mnożeniem) set i = `expr $i - \( $i / 2 \) \* 2 ` (zmienna i będzie miała po tej operacji wartość równą reszcie z dzielenia całkowitego i przez 2)

10 Prosta instrukcja if csh sh
Instrukcje, które są bardzo użyteczne w skryptach (można je wykonywać również “z ręki”) Prosta instrukcja if csh sh if (warunek) polecenie if (warunek) then polecenie1 polecenien endif if [ warunek ] then fi

11 Złożona instrukcja if csh sh if (warunek1) then blok_poleceń
else if (warunek2) then else endif if [ warunek1 ] then elif [ warunek2 ] fi

12 Wyrażenia warunkowe dotyczące plików
Wyrażenia proste: 0 – fałsz; 1 – prawda. Wyrażenia warunkowe dotyczące plików -d plik : plik jest katalogiem -e plik : plik istnieje -f plik : zwykły plik -g plik : plik należy do okr. grupy -r plik : plik daje się czytać -s plik : plik zawiera jakieś dane -w plik : plik jest dostęny do zapisu -z plik : plik jest pusty -x plik jest wykonywalny -L plik : plik jest linkiem (dowiązaniem) symbolicznym

13 Porównywanie (w przypadku csh wyrażeń numerycznych i tekstowych w przypadku sh tylko numerycznych)
znaczenie W1 = = W2 W2 < W2 W1 > W2 W1 <= W2 W1 >= W2 W1 != W2 W1 –eq W2 W1 –lt W2 W1 –gt W2 W1 –le W2 W1 –ne W2 Równe Mniejsze Większe Mniejsze lub równe Większe lub równe Różne

14 Porównywanie tekstów w sh: polecenie test
test W1=W2 teksty są równe test W1!=W2 teksty są różne test –z W tekst ma długość zerową lub jest niezdefiniowany test –n W tekst ma długość niezerową

15 (op oznacza operator koniunkcji lub alternatywy)
Wyrażenia złożone csh sh znaczenie !W Przeczenie W1 || W2 Alternatywa W1 && W2 Koniunkcja (W1) op W2 [ W1 ] op [W2 ] grupowanie (op oznacza operator koniunkcji lub alternatywy)

16 Instrukcja wyboru case
csh sh switch zmienna case ‘wartość1’ blok_poleceń breaksw case ‘wartość2’ case default endsw case zmienna in wartość1) wartość2) *) esac

17 Przykład skryptu csh z instrukcją case
Przykład skryptu bash z instrukcją case

18 Instrukcje pętli foreach i for
csh sh foreach (lista) polecenie1 polecenien end for zmienna in lista do done

19 Instrukcja pętli while
csh sh while (warunek) polecenie1 polecenien end while [ warunek ] do done

20 Język awk awk ‘{polecenia}END{polecenia}’ plik_albo_dane_z_STDIN
awk –f plik_z_poleceniami plik_albo_dane_z_STDIN Polecenia przed słowem END dotyczą przetwarzania strumienia wejściowego linia po linii a polecenia po słowie END są wykonywane po wyczerpaniu strumienia wejściowego. Przykład polecenia “z ręki” (sumowanie liczb kolejno wprowadzanych z klawiatury). awk ‘{sum=sum+$1}END{print sum}’

21 Edytor strumieniowy sed
sed [opcje] –e ‘polecenia’ plik(i) sed [opcje] –f plik_z_poleceniami plik(i)

22 Przykład zawartości pliku z poleceniami (różniczkowanie numeryczne funkcji):
{ x[NR]=$1 f[NR]=$2 }END{ n=NR for (i=1;i<n;i++) p[i]=(f[i+1]-f[i])/(x[i+1]-x[i]) for (i=1;i<n-1;i++) b[i]=(p[i+1]-p[i])/(x[i+1]-x[i]) for (i=1;i<n-1;i++) print x[i],f[i],p[i],b[i] }

23 Podstawowe pojęcia języka awk:
Pole: kolejny element linii strumienia danych. Pola są oddzielone odstępami jak w zwykłym tekście chyba, że zaspecyfikowano inny separator opcją –F. Pola są identyfikowane przez $1, $2,.... Symbol $0 oznacza całą linię. NF: liczba pól w bieżącej linii strumienia danych NR: liczba linii strumieni danych przeczytana dotychczas. Zmienna: cokolwiek co się pojawia i zaczyna od litery oprócz słów kluczowych. Słowo kluczowe: służy do konstrukcji poleceń awk Składnia poleceń języka awk bardzo przypomina składnię języka C.

24 Instrukcje: Podstawienie: a=wyrażenie Instrukcja warunkowa: if (warunek1) {blok_instrukcji} else if (warunek2) {blok instrukcji} ... else {blok instrukcji} Instrukcja pętli określonej: for (zmienna=start;warunek zakończenia; zmienna++) {blok_instrukcji} Instrukcja pętli z warunkiem: while (warunek) {blok instrukcji}

25 Funkcje arytmetyczne w awk:
cos(x) exp(x) int(x) część całkowita log(x) logarytm naturalny sin(x) sqrt(x) atan2(y,x) arctan(y/x) rand() liczba losowa z przedziału <0,1) srand(x) ustawianie ziarna liczby generatora liczb losowych

26 Funkcje łańcuchowe w awk:
gsub(r,s,t) zamienia wszystkie podlańcuchy odpowiadające wyrażeniu regularnemu r łańcucha t na wyrażenie s. index(s,t) podaje położenie podłańcucha t w łańcuchu s. length(s) długość łańcucha s match(s,r) podaje położenie wyrażenia regularnego r w łańcuhu s. split(s,a,sep) dzieli łańcuch s na elementy przechowywane w tablicy a używając separatora sep. sprintf(‘fmt’,expr) drukuje expr do łańcucha używając printf sub(r,s,t) zamienia pierwszy podlańcuch odpowiadający wyrażeniu regularnemu r łańcucha t na wyrażenie s. substr(s,p,n) wycina z łańcucha s podłańcuch o maksymalnej długości p, poczynając od pozycji n. tolower(s) zmienia duże litery na małe toupper(s) zmienia małe litery na duże

27 Literatura: Unix i skrypty:
J.C.Armstrong, D. Taylor „Unix dla każdego”, Helion, Gliwice 2000 A.Southerton, E.C. Perkins, Jr. „Słownik poleceń systemu Unix i X”, WNT, Warszawa 1995 sed i awk: 1. D. Dougerty, A. Robbins „sed i awk”, O’Reilly & Associates, 1997


Pobierz ppt "Proponowany program wykładu monograficznego"

Podobne prezentacje


Reklamy Google