unix/linux alapok

25
Unix/Linux alapok Hága Péter ELTE Komplex Rendszerek Fizikája tanszék

Upload: imala

Post on 22-Feb-2016

58 views

Category:

Documents


1 download

DESCRIPTION

Unix/Linux alapok. Hága Péter ELTE Komplex Rendszerek Fizikája tanszék. Unix és Linux. Unix: gyors, biztonságos szerver operációs rendszer 1969 -ből . Sun - Solaris, IBM - AIX, Hewlett-Packard - HP-UX. . - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Unix/Linux alapok

Unix/Linux alapok

Hága PéterELTE Komplex Rendszerek Fizikája tanszék

Page 2: Unix/Linux alapok

Unix és Linux

• Unix: gyors, biztonságos szerver operációs rendszer 1969-ből. Sun - Solaris, IBM - AIX, Hewlett-Packard - HP-UX.

• Linux: legelterjedtebb Unix változat, amit 1991-től fejlesztenek. Linus Torvalds, finn programozó fejlesztett ingyenes Unix alapú OS-t, és megosztotta a kódjait azokkal akik részt akartak venni a munkában.

Page 3: Unix/Linux alapok

Miért használjunk Linux-ot? - általában• Linux robosztus és stabil

– Linuxban kevesebb bug található, mint más OS-ben• Linux erőteljes

– Linux nagy teljesítményű– Linux szinte minden eszközzel együttműködik

• Linux flexibilis– Testreszabható hardver támogatás– Teljes mértékben testreszabható szoftverek– Linux számos platformon fut

• Linux jól támogatott• Linux meglehetősen olcsó

– Nincsenek licensz díjak– Hatékony szoftverek egybecsomagolva a rendszerrel

Page 4: Unix/Linux alapok

Miért használjunk Linux-ot? - szerintem• Linux erőteljes

– Linux nagy teljesítményű– Linux szinte minden eszközzel együttműködik

• Linux jól támogatott• Linux meglehetősen olcsó

– Ezért elterjedt egyetemi környezetben– Elterjedt szerveres, superszámítógépes környezetben– Hatékony szoftverek egybecsomagolva a rendszerrel

• Linux jól scriptelhető– Szinte minden szoftver meghívható parancssorból– Szoftverek jól kapcsolózhatóak, paraméterezhetőek

• Linux parancsok összefűzhetőek (pipe-olás)• Linux szerverek távolról könnyen elérhetőek• Linux jogosultságkezelés

Page 5: Unix/Linux alapok

Linux a valóságban

• Disztribuciók– Debian– Mandrake– Red Hat– Ubuntu

• Cygwin• Virtuális gépek• Felhasználói felületek (GUI)

– Gnome– KDE

Page 6: Unix/Linux alapok

Linux belépési módok

• accountra van szükség– username és password

• helyi login• távoli login– parancs soros terminál– grafikus belépés – ssh [-X] username@machineAddress

Page 7: Unix/Linux alapok

File rendszer felépítése

Page 8: Unix/Linux alapok

Egyszerű parancsok• Tab-ra kiegészítés• Fel nyílra ugrik az előző parancsra• Bash history• Reguláris kifejezések• parancs & - parancsok háttérben futtatása• | - (pipe) parancsok összefűzése• man - manual (help)• Apropos• gcc – c fordító

Page 9: Unix/Linux alapok

Egyszerű parancsok• grep – kifejezés keresés• less, more, cat • emacs, gedit, vim ,...

• pwd - shows the current directory• cd - changes directory• / -abszolút path• ./ -relatív path• ../ - egy könyvtárral feljebb• ls • mkdir - makes directory• rmdir - removes directory• cp - copies• mv - moves• rm - removes [-r]

Page 10: Unix/Linux alapok

Megoldandó feladat

Page 11: Unix/Linux alapok

Feladat• Ellenőrizzük azt az állítást, hogy a tőzsdei részvényárfolyamok véletlen

bolyongással modellezhetőek!• Azaz hasonlítsunk össze véletlen bolyongási adatokat valódi részvény

árfolyamokkal• Az statisztikai összehasonlítás módja pl. az eloszlás függvényeik, vagy a

hisztogramjaik összehasonlítása

Page 12: Unix/Linux alapok

Megoldás lépései• Két részfeladat:

– Véletlen bolyongás megvalósítása és vizsgálata– Részvény árfolyam vizsgálata

• Véletlen bolyongás leprogramozása– c nyelven– adatsor elemzése awk segítségével– ábrázolás gnuplottal

• Részvény árfolyam vizsgálata– adatsor letöltés: Google Finance– adatsor elemzése awk segítségével– ábrázolás gnuplottal

• Eredmények összehasonlítása, interpretációja, diszkusszió

Page 13: Unix/Linux alapok

Véletlen bolyongás

Page 14: Unix/Linux alapok

Véletlen bolyongás• Diszkrét időlépés• Normális eloszlású növekmény• 1D, 2D, 3D

Page 15: Unix/Linux alapok

Véletlen bolyongás – c kód#include <stdlib.h> // függvény könyvtár betöltés#include <math.h>

int main () { // program törzs kezdeteint i; // változó deklarálásokdouble x1,x2,y1,y2;double pos=0;

srand(102); // pszeudo véletlenszám generátor inicializálásfor (i=0;i<50000;i++) { // bolyongás léptetése

x1=(double)rand()/RAND_MAX; // egyenletes eloszlású pszedo véletlen szám generálás

x2=(double)rand()/RAND_MAX;y1 = sqrt( - 2*log(x1) )*cos( 2*3.14*x2 ); // normális eloszlású véletlen szám

generálásy2 = sqrt( - 2*log(x1) )*sin( 2*3.14*x2 );pos+=y1; // pozíció updateprintf("%.3f %.3f %.3f %.3f %.3f\n",x1,x2,y1,y2,pos); // eredmény kiírás

}return 0; // visszatérési érték

}

Page 16: Unix/Linux alapok

Véletlen bolyongás – eredmény

0.380 0.863 0.901 -1.060 0.9010.285 0.848 0.908 -1.299 1.8090.566 0.067 0.972 0.438 2.7810.786 0.864 0.454 -0.524 4.8620.359 0.708 -0.380 -1.380 4.4820.750 0.633 -0.509 -0.561 3.9730.993 0.785 0.026 -0.118 4.0000.688 0.650 -0.507 -0.700 3.492….….….

X1 X2 Y1 Y2 POS

$ gcc randomwalk.c –o randomwalk -lm# forráskódunk futtathatóvá fordítása

$ ./randomwalk # futtatás

Page 17: Unix/Linux alapok

Véletlen bolyongás – AWK feldolgozás

$ cat randomwalk.dat | cut -f3 -d" " > randomwalk_nov.dat # Y1 adatsor kiválasztása, mint

növekmény$ MAX=`cat randomwalk_nov.dat | sort -n | tail -1`

# legnagyobb növekmény$ MIN=`cat randomwalk_nov.dat | sort -n | head -1`

# legkisebb növekmény$ echo $MAX $MIN # kiírás

$ cat randomwalk_nov.dat | awk -v min=$MIN -v max=$MAX -v N=100 'BEGIN{for (i=0;i<N;i++) {h[i]=0;}}{h[int(($1-min)/((max-min)/N))]++} END{for (i=0;i<N;i++) print i*((max-min)/N)+min,h[i]}' > hist_randomwalk.dat

# AWK hisztogram készítés

Page 18: Unix/Linux alapok

AWK hisztogram készítés$ cat randomwalk_nov.dat |

awk -v min=$MIN -v max=$MAX -v N=100 ‘

BEGIN{for (i=0;i<N;i++) {h[i]=0;}

}{

h[int(($1-min)/((max-min)/N))]++} END{

for (i=0;i<N;i++) print i*((max-min)/N)+min,h[i]}

' > hist_randomwalk.dat

Page 19: Unix/Linux alapok

Részvény árfolyam vizsgálat

Page 20: Unix/Linux alapok

Részvény árfolyam vizsgálat

Date,Open,High,Low,Close,Volume22-Oct-08,19.31,20.19,18.13,19.33,3791953321-Oct-08,20.14,21.48,19.34,20.20,4022708120-Oct-08,20.17,20.79,19.07,19.77,3297642917-Oct-08,17.97,20.26,17.52,19.24,4666853816-Oct-08,18.60,19.25,16.93,18.69,6313719915-Oct-08,20.23,20.46,17.61,18.13,8691103514-Oct-08,21.21,24.20,20.55,21.94,13855380513-Oct-08,15.43,19.06,12.66,18.10,19981550110-Oct-08,9.19,11.30,6.71,9.68,2070881459-Oct-08,17.98,18.30,11.95,12.45,1029326158-Oct-08,16.99,19.47,16.23,16.80,409760477-Oct-08,24.28,24.28,14.13,17.65,905167806-Oct-08,22.49,24.40,20.17,23.50,270226953-Oct-08,24.40,26.73,22.51,23.92,301688042-Oct-08,23.91,25.12,23.10,23.21,178856441-Oct-08,22.72,24.87,21.76,24.42,36159359…

Page 21: Unix/Linux alapok

Részvény árfolyam vizsgálat - AWK

$ cat data.csv | cut -f5 -d"," > close.dat # záróárfolyamok kivágása

Date,Open,High,Low,Close,Volume22-Oct-08,19.31,20.19,18.13,19.33,3791953321-Oct-08,20.14,21.48,19.34,20.20,4022708120-Oct-08,20.17,20.79,19.07,19.77,3297642917-Oct-08,17.97,20.26,17.52,19.24,4666853816-Oct-08,18.60,19.25,16.93,18.69,6313719915-Oct-08,20.23,20.46,17.61,18.13,8691103514-Oct-08,21.21,24.20,20.55,21.94,13855380513-Oct-08,15.43,19.06,12.66,18.10,19981550110-Oct-08,9.19,11.30,6.71,9.68,2070881459-Oct-08,17.98,18.30,11.95,12.45,1029326158-Oct-08,16.99,19.47,16.23,16.80,409760477-Oct-08,24.28,24.28,14.13,17.65,905167806-Oct-08,22.49,24.40,20.17,23.50,270226953-Oct-08,24.40,26.73,22.51,23.92,301688042-Oct-08,23.91,25.12,23.10,23.21,178856441-Oct-08,22.72,24.87,21.76,24.42,36159359…

Page 22: Unix/Linux alapok

Részvény árfolyam vizsgálat - AWK$ cat close.dat | awk '{if (NR>2) {print $1-old}; old=$1}' > diff.dat

# növekmény lépésenkénti meghatározása$ MAX=`cat diff.dat | sort -n | tail -1`

# legnagyobb növekmény$ MIN=`cat diff.dat | sort -n | head -1`

# legkisebb növekmény

$ cat diff.dat | awk -v min=$MIN -v max=$MAX -v N=250 'BEGIN{for (i=0;i<N;i++) {h[i]=0;}}{h[int(($1-min)/((max-min)/N))]++} END{for (i=0;i<N;i++) print i*((max-min)/N)+min,h[i]}' > reszveny_hist.dat# AWK hisztogram készítés, ld. pár oldallal korábban

Page 23: Unix/Linux alapok

Eredmény / Gyakorlat

Page 24: Unix/Linux alapok

Gyakorlat• Az előző feladat egyéni megvalósítása• Kapott két hisztogram ábrázolása gnuplottal • A kapott eredmények összehasonlítása, közös interpretációja,

diszkusszió

Page 25: Unix/Linux alapok

Kérdé[email protected]