1 / 27

Proponowany program wykładu monograficznego

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.

mandell
Download Presentation

Proponowany program wykładu monograficznego

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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:

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

  4. Zmienne powłoki

  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ą setzmienna = `polecenie` np. set a = `echo Ala ma kota` Arytmetyka exprwyrażenie1 operator wyrażenie2 np. expr 2 + 3 Podstawienie: jak przy podstawieniu efektu wykonania polecenia set zmienna = `exprwyrażenie1 operator wyrażenie2` np. 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 poleceniuexpr 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. Instrukcje, które są bardzo użyteczne w skryptach (można je wykonywać również “z ręki”)

  11. Wyrażenia warunkowe: 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

  12. Porównywanie (w przypadku csh wyrażeń numerycznych i tekstowych w przypadku sh tylko numerycznych)

  13. 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ą

  14. Wyrażenia złożone

  15. Przykład skryptu csh z instrukcją case Przykład skryptu bash z instrukcją case

  16. 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}’

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

  18. 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] }

  19. 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.

  20. 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}

  21. 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

  22. 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

  23. 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

More Related