Petr Kulhánek, Zora Střelcová a Jakub Štěpán kulhanek@chemi.muni.cz Národní centrum pro výzkum biomolekul, Masarykova univerzita, Kotlářská 2, CZ-61137 Brno C2110 Operační systém UNIX a základy programování 4. lekce C2110 Operační systém UNIX a základy programování - 1 - ObsahObsah Skripty skripty versus programy, editory, spouštění GNUPlot příkazy, terminály C2110 Operační systém UNIX a základy programování - 2 - Skripty programy versus skripty jak psát skripty spouštění skriptů C2110 Operační systém UNIX a základy programování - 3 - Programy SkriptyProgramy Skripty zdrojový kód program vstup výstuppřeklad (kompilace) Program je soubor strojových instrukcí zpracovávaných přímo procesorem. Program vzniká překladem zdrojového kódu programovacího jazyka. Překládané jazyky: C/C++ Fortran Skript je textový soubor obsahující příkazy a řídící sekvence, které jsou vykonávány interpreterem použitého skriptovacího jazyka. Skriptovací jazyky: bash gnuplot awk JavaScript PHP skript interpreter vstup výstup C2110 Operační systém UNIX a základy programování - 4 - Programy SkriptyProgramy Skripty zdrojový kód program vstup výstuppřeklad (kompilace) snadná optimalizace rychlé vykonávání nutnost rekompilace nelze vytvářet samospustitelný kód skript interpreter vstup výstup nevyžaduje rekompilaci vytváření samospustitelného kódu špatná optimalizovatelnost pomalejší vykonávání C2110 Operační systém UNIX a základy programování - 5 - Jak psát skriptyJak psát skripty Jelikož jsou skripty textové soubory, lze použít libovolný textový editor umožnující uložení textu v čisté formě (bez formátovacích metadat). Textové editory: vi kwrite kate gedit K psaní scriptů lze používat i specializované vyvojové prostředí ­ IDE (Integrated Development Enviroment). IDE obsahuje kromě editoru i správce projektu, ladící nástroje (debugger) a další. Většinou dostupné pro komplexnější jazyky: JavaScript, Python, PHP, atd. Vývojové prostředí: kdevelop NetBeans Eclipse C2110 Operační systém UNIX a základy programování - 6 - Spouštění skriptůSpouštění skriptů 1) Nepřímé spouštění Spouštíme interpreter jazyka a jako argument uvádíme jméno skriptu. $ bash muj_skript_v_bashi $ gnuplot muj_skript_v_gnuplotu Skripty nemusí mít nastaven příznak x (executable). 2) Přímé spouštění Spouštíme přímo skript (shell automaticky spustí interpreter). $ ./muj_skript_v_bashi $ ./muj_skript_v_gnuplotu Skripty musí mít nastaven příznak x (executable) a interpreter (součást skriptu). C2110 Operační systém UNIX a základy programování - 7 - Určení interpreteruUrčení interpreteru #!/bin/bash echo "Toto je skript v bashi!" #!/usr/bin/gnuplot set xrange[0:6] plot sin(x) pause -1 Skript v bashi Skript v gnuplotu #!/absolutní/cesta/k/interpreteru/skriptu Specifikace interpreteru (první řádek skriptu): Pokud není interpreter skriptu při jeho přímém spuštění uveden, použije se interpreter shellu. Interpreter uvedený ve skriptu se ignoruje při nepřímém spuštění. C2110 Operační systém UNIX a základy programování - 8 - Přímé spouštěníPřímé spouštění Spouštíme přímo skript (shell automaticky spustí interpreter). $ ./muj_skript musí mít nastaven příznak x (executable) $ chmod u+x muj_skript_v_gnuplotu Cesta (relativní či absolutní) ke skriptu je uvedena. Systém spustí uvedený soubor. $ muj_skript Cesta ke skriptu není uvedena. Shell hledá skript v adresářích určených systémovou proměnnou PATH. C2110 Operační systém UNIX a základy programování - 9 - GNUPlot úvod, interaktivní mód základní příkazy typy terminálů PM3 http://www.gnuplot.info/ C2110 Operační systém UNIX a základy programování - 10 - GNUPlotGNUPlot GNUPlot slouží k vykreslování 2D a 3D grafů umožnující práci v interaktivním tak i skriptovacím režimu. $ gnuplot G N U P L O T Version 4.2 patchlevel 2 last modified 31 Aug 2007 System: Linux 2.6.24.5-laptop-2mnb Copyright (C) 1986 - 1993, 1998, 2004, 2007 Thomas Williams, Colin Kelley and many others Type `help` to access the on-line reference manual. The gnuplot FAQ is available from http://www.gnuplot.info/faq/ Send bug reports and suggestions to Terminal type set to 'x11' gnuplot> Interaktvní mód příkazová řádka gnuplotu C2110 Operační systém UNIX a základy programování - 11 - GNUPlot - příkazyGNUPlot - příkazy set title "graph title" nastaví název grafu set xrange[min_value:max_value] nastaví rozsah x-vé osy set yrange[min_value:max_value] nastaví rozsah y-vé osy set nokey nezobrazí legendu k datovým řadám plot "file.dat" using x_column_id:y_column_id with lines title "data title" zobrazí XY graf zobrazující data ze souboru file.dat pause -1 čeká na zmáčknutí klávesy C2110 Operační systém UNIX a základy programování - 12 - GNUPlot - terminályGNUPlot - terminály Terminál určuje kam bude graf vykreslen. set term x11 výstup je vykreslen do okna set term png size 800,600 výstup je vykreslen jako obrázek ve formátu png set output "output.png" výstup bude uložen do souboru output.png C2110 Operační systém UNIX a základy programování - 13 - LiteraturaLiteratura GNUPlot Domovská stránka: http://www.gnuplot.info/ (dokumentace, tutoriály, zdrojové kódy) C2110 Operační systém UNIX a základy programování - 14 -