Informatika1-2013/Gyakorlat1
A MathWikiből
A lap korábbi változatát látod, amilyen Kkovacs (vitalap | szerkesztései) 2013. szeptember 10., 00:40-kor történt szerkesztése után volt.
Tartalomjegyzék |
Bevezetés
A Linux fájlrendszere
- Tulajdonságok:
- Fa struktúra
- / : gyökér könyvtár. A fájlrendszer kiindulópontja.
- állományok:
- közönséges
- speciális (pl. /dev/cdrom)
- katalógus
- Néhány katalógus
- /home/: A felhasználók saját könyvtárai (teljes hozzáférés).
- /boot/ : A boot-oláshoz szükséges fájlok.
- /tmp/ : Alkalmazások ideiglenes fájljai.
- /dev/ : Eszközök (HDD, CD, billentyűzet)
- /mnt/ : Mount pontokat tartalmazó könyvtár
- ./ : Az aktuális könyvtár.
- ../ : Az aktuális könyvtár szülő könyvtára.
- ~/ : A felhasználó home könyvtára. Ugyanaz, mint a $HOME környezeti változó.
- Mindenkinek van egy saját mappája a /home/student/felhasznaloi_nev alatt.
Shell
- Parancsértelmező és programozási nyelv. A parancsokat a standard inputról, vagy állományból olvassa.
- Felhasználói felületet megvalósító parancsértelmező.
- Példák: sh, bash, ksh, csh, vsh, tcsh
Parancsok, programok
Állományok
- pwd: aktuális könyvtár kiíratása. pwd
- cd: könyvtárváltás. Ha paraméter nélkül hívjuk meg, akkor a saját mappánkba visz. cd /mnt, cd
- ls: (-a, -h, -l): könyvtár tartalmának listázása. ls, ls -h, ls /dev, ls -h -l /mnt
- mkdir: könyvtár létrehozása. mkdir BME
- TAB: kiegészítés.
- cp: másolás. cp mit.txt hova.txt
- mv: mozgatás/átnevezés (az eredeti nem marad meg). mv mit.txt hova.txt
- rm (-r): törlés. rm alma.txt, rm -r BME
- quota: A felhasznált/megmaradt helyet írja ki. Ha a kvótánk betelik, akkor nem kapjuk meg a nekünk címzett leveleket és a grafikus terminálra sem tudunk belépni; ilyenkor a parancssoros terminálra belépve tudjuk kitakarítani a home-unkat.
- df, du (-h): lemezen szabad / felhasznált helyet írja ki. df -h ./ , du -h /home
- mc: midnight commander fájlböngésző.
Alkalmazások, folyamatok
- man: az adott parancsról leírást ad. A leírásban navigálni a 'fel', illetve a 'le' billentyűkkel, továbbá a 'PageUp', 'PageDown'-nal lehet. Kereséshez '/' jel után kell beírni a kifejezést. Kilépés 'q'-val. man ls
- history: parancs történet lekérdezése.
- apropos: parancs/program nevek keresése. apropos vi
- ctrl-R: keresés a history-ban.
- top: futó alkalmazások.
- killall (-u), xkill: processzek leállítása. killall -u palovics
Szöveges állományok
- vim: command line szövegszerkesztő.
- cat: fájl tartalmának kiíratása. Ha nem adunk meg fájlnevet, akkor a billentyűzetről vár bevitelt. Kilépés: Ctrl-D-vel. cat valami.txt
- grep: szöveg mintázatok keresése állományokban. grep kifejezés file
- less: szöveges állományok megjelenítése. less valami.txt
- head (-n ), tail (-n ): fájl elejének és végének a kiiratása. head -n 100 valami.txt
- >,<,|: output átirányítása, "pipe"-olás.
- sort (-g -k): szövegállomány rendezése.
- wc (-l): byte/karakterek/sorok számolás adott fájlra.
- awk: programozási nyelv szöveges állományok feldolgozására.
Távoli elérés
- ssh: távoli gépre való bejelentkezést teszi lehetővé. felhasznalo@omnibus2.math.bme.hu
- scp: távoli gépre/gépről való másolás. scp felhasznalo@omnibus2.math.bme.hu/home/stu_bme/felhasznalo/dokumentum.txt ./dokumentum.txt
- wget: file-ok letöltése HTTP, HTTPS és FTP használatával.
Egyéb
- exit: kilépés terminálból (vagy ctrl+d).
- sudo: programok futtatása superuserként.
- Egyéb hasznos fogalmak
- Reguláris kifejezések
- Felhasználó jogok, ezek megváltoztatása
- Shell scriptek
- Futtatható file-ok
- ...
Feladatok
- Hozz létre egy könyvtárat "GYAK1" néven a saját mappádban, és lépj be a mappába.
mkdir GYAK1 cd ./GYAK1
- Töltsd le a wget programmal az alábbi (gráf) él listát: [1]
wget https://dl.dropbox.com/u/1100162/edge_list
- Készíts biztonsági másolatot a file-ról, majd ellenőrizd a másolatot.
cp edge_list edge_list_save less edge_list_save
- Számold meg az élek számát a gráfban.
wc -l edge_list
- Írd ki a 11-es csúcsból induló éleket, majd irányítsd a kimenetet a "edges_11" file-ba
grep 11 edge_list grep 11 edge_list > edges_11
Számold ki a 11-es csúcs fokszámát.
grep 11 edge_list | wc -l
Számold ki az összes csúcs fokszámát.
awk 'BEGIN{ez_csak_pelda_beginre=0;}{DEG[$1]++;DEG[$2]++}END{for (i in DEG) print i,DEG[i]}' edge_list > degrees less degrees
Határozd meg a legnagyobb és legkisebb fokú csúcsot.
sort -g -k2,2 degrees > degrees_sorted less degrees_sorted head -n 1 degrees_sorted tail -n 1 degrees_sorted
Bónusz: Készíts el első linux scriptedet! Gedit segítségével a "fokszam.sh" scriptbe másold be a következő sort. Az értelmezésben segítek, ez egy bonyolultabb példa, semmi pánik.
csucs=$1 echo "a ("$csucs") csucs fokszama:" awk 'BEGIN{DEG=0;}{if($1=="'$csucs'"){DEG++;}if($2=="'$csucs'"){DEG++;}}END{print DEG}' edge_list
Futtasd a scriptet különböző csúcsokkal, példa:
sh fokszam.sh 11