Informatika1-2012/Gyakorlat0

A MathWikiből
(Változatok közti eltérés)
(Új oldal, tartalma: „=== A Linux fájlrendszere === * Alaptulajdonságok: ** Fa struktúra ** '''/''' : gyökér könyvtár. A fájlrendszer kiindulópontja. ** állományok: *** közönsé…”)
 
 
(egy szerkesztő 67 közbeeső változata nincs mutatva)
1. sor: 1. sor:
 +
== Bevezetés ==
 +
=== Disztribúciók ===
 +
* Néhány példa:
 +
** Debian
 +
** [http://www.ubuntu.com| Ubuntu]
 +
** Arch Linux
 +
** Slackware
 +
** Red Hat
 +
* Ubuntu "derivatives":
 +
** Kubuntu
 +
** Xubuntu
 +
** Chromium OS
 +
** Elementary OS
 +
* [http://upload.wikimedia.org/wikipedia/commons/8/8c/Gldt.svg| Linux disztribúciók fejődése]
 +
* Próba: ubuntu Live CD, flash, wubi
 +
=== Ablakkezelők ===
 +
* [http://en.wikipedia.org/wiki/Desktop_environment| Néhány példa]:
 +
** Gnome 3, Gnome Shell
 +
** Unity
 +
** KDE
 +
** Xfce
 
=== A Linux fájlrendszere ===
 
=== A Linux fájlrendszere ===
* Alaptulajdonságok:
+
* Tulajdonságok:
 
** Fa struktúra
 
** Fa struktúra
 
** '''/''' : gyökér könyvtár. A fájlrendszer kiindulópontja.
 
** '''/''' : gyökér könyvtár. A fájlrendszer kiindulópontja.
8. sor: 29. sor:
 
*** katalógus
 
*** katalógus
 
* Néhány katalógus
 
* Néhány katalógus
** '''/home/''': A felhasználók saját könyvtárai.
+
** '''/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.
 
** '''/boot/''' : A boot-oláshoz szükséges fájlok.
 
** '''/tmp/''' : Alkalmazások ideiglenes fájljai.
 
** '''/tmp/''' : Alkalmazások ideiglenes fájljai.
16. sor: 37. sor:
 
** '''../''' : Az aktuális könyvtár szülő könyvtára.
 
** '''../''' : 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ó.
 
** '''~/''' : 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.
+
** Mindenkinek van egy saját mappája a '''/home/student/felhasznaloi_nev''' alatt.
  
* Fontosabb parancsok, programok
+
=== Shell ===
** '''pwd''' : aktuális könyvtár kiíratása
+
* Parancsértelmező és programozási nyelv. A parancsokat a standard inputról, vagy állományból olvassa.
** '''cd''' könyvtár : könyvtárváltás. Ha paraméter nélkül hívjuk meg, akkor a saját mappánkba visz.
+
* Felhasználói felületet megvalósító parancsértelmező.
** '''ls''' ('''-a''', '''-h''', '''-l'''): listázás.
+
* Példák: sh, bash, ksh, csh, vsh, tcsh
** '''cat''', fájl tartalmának kiíratása, pl: ''cat valami.txt''. Ha nem adunk meg fájlnevet, akkor a billentyűzetről vár bevitelt. Kilépés: Ctrl-D-vel.
+
** '''mkdir''' : könyvtár létrehozása, pl: ''mkdir BME''
+
** TAB: kiegészítés
+
** '''cp''' : másolás, pl: ''cp mit.txt hova.txt''
+
** '''mv''' : mozgatás/átnevezés (az eredeti nem marad meg), pl: ''mv mit.txt hova.txt''
+
** '''rm''' : törlés, pl: ''rm alma.txt''. Könyvtár esetén: ''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.
+
** '''man''' parancs : az adott parancsról leírást ad, pl: ''man ls''. 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.
+
** '''history''' : parancs történet lekérdezése
+
** '''su''' : felhasználó váltás, pl: ''su tothagi'' ('''s'''ubstitute '''u'''ser vagy '''s'''witch '''u'''ser)
+
** top: futó alkalmazások
+
** killall, xkill
+
** mc:
+
** vim
+
** grep
+
** less
+
** head
+
** tail
+
** > < |
+
** ssh: távoli gépre való bejelentkezést teszi lehetővé. pl ssh felhasznalo@szerver.cim.hu
+
  
==== Fájlrendszer-böngészők ====
+
== Parancsok, programok ==
 
+
=== Állományok ===
Próbáljátok ki a következő böngészőket:
+
* '''pwd''': aktuális könyvtár kiíratása. ''pwd''
* nautilus
+
* '''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''
* konqueror
+
* '''ls''': ('''-a''', '''-h''', '''-l'''): könyvtár tartalmának listázása. ''ls'', ''ls -h'', ''ls /dev'', ''ls -h -l /mnt''
* mc - Midnight Commander
+
* '''mkdir''': könyvtár létrehozása. ''mkdir BME''
 
+
* TAB: kiegészítés.
=== Jogok ===
+
* '''cp''': másolás. ''cp mit.txt hova.txt''
Az <font color="blue" face="Courier New">ls -la</font> parancs részletes listát készít, amelynek első oszlopa egy 10 karakterből álló sztring.
+
* '''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''
(A következő mező az ún. link számláló, tulajdonképpen megmondja, hogy hány néven hivatkozhatunk a fájlra, számunkra nem fontos. Ezt követi a fájl tulajdonosának és annak csoportjának a neve, majd a fájl mérete és utolsó módosításának az ideje következik, végül a fájl nevét olvashatjuk.)
+
* '''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''
-rw-r--r--  1 morap student    2388 2007-07-30 03:51 .bashrc
+
* '''mc''': midnight commander fájlböngésző.
-rw-r--r--  1 morap student  117660 2007-08-19 17:36 .B.blend
+
=== Alkalmazások, folyamatok ===
drwxr-xr-x  5 morap student    4096 2007-08-19 17:35 .blender
+
* '''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''
drwx------  5 morap student    4096 2007-08-21 20:50 .cache
+
* '''history''': parancs történet lekérdezése.
drwx------  2 morap student    4096 2007-08-28 00:23 .chewing
+
* '''apropos''': parancs/program nevek keresése. ''apropos vi''
 
+
* '''ctrl-R''': keresés a history-ban.
Az első betű utal a típusra, '-' esetén fájlról, 'd' esetén könyvtárról van szó. Az azt követkő hármas a user (felhasználó, továbbiakban ''u''), a következő hármás a group (felhasználó csoportja, továbbiakban ''g''), majd az others (mindenki más, továbbiakban ''o'') jogairól szól. Szokás még "''a''"-val jelölni az all-t, vagyis mindenkit. Az ''r'' olvasás, a ''w'' írás, az ''x'' pedig végrehajthatóságot/futtathatóságot (e'''x'''ecute) jelent.  
+
* '''top''': futó alkalmazások.
Fájlok esetében a végrehajtási jognak csak a futtatható fájloknál van jelentőségük (bináris állományok, scriptek).
+
* '''killall (-u)''', '''xkill''': processzek leállítása. ''killall -u palovics''
Könyvtárak esetén az olvasási jog azt jelenti, hogy elolvashatja a fájlok neveit az adott könyvtárban, az írási jog jelenti, hogy a könyvtárban állományt, könyvtárat hozhatunk létre, míg a futtatási jog megengedi a belépést a könyvtárba.
+
===Szöveges állományok===
 
+
* '''vim''': command line szövegszerkesztő.
Változtatás <font color="blue" face="Courier New">chmod</font> paranccsal.
+
* '''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''
Jogok állítására példa:
+
* '''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''
<font color="blue" face="Courier New"> chmod "og-w" file</font>   # leveszi az írásjogot a csoport és mindenki más részéről a file-ról,
+
* '''>''','''<''','''|''': output  átirányítása, "pipe"-olás.
<font color="blue" face="Courier New"> chmod "a+x" file</font>   # mindenki számára futtathatóvá teszi a file-t,
+
* '''sort''' (-g -k): szövegállomány rendezése.
<font color="blue" face="Courier New"> chmod g=rx,o=r file</font> # a csoport olvasási és futtatási jogot kap, mindenki más olvasásit
+
* '''wc''' (-l): byte/karakterek/sorok számolás adott fájlra.  
 
+
* '''awk''': programozási nyelv szöveges állományok feldolgozására.
A hármasokat 0 és 7 közötti számokkal is kódolhatjuk, kettes számrendszerben elképzelve őket (a jog megléte jelenti az 1-est, hiánya a 0-t; az olvasás a 4-es, az írás a 2-es, az végrehajtás az 1-es helyiérték). Így következő parancs hatására a felhasználó minden jogot megkap a file-hoz (7 = 111), míg a csoport és mindenki más csak olvashatja és végrehajthatja azt (5=101).
+
===Távoli elérés===
 
+
* '''ssh''': távoli gépre való bejelentkezést teszi lehetővé. ''felhasznalo@omnibus2.math.bme.hu''
<font color="blue" face="Courier New">chmod 755 file</font>     # 755 = 111101101
+
* '''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''
                    #      rwxr-xr-x
+
* '''wget''': file-ok letöltése HTTP, HTTPS és FTP használatával.
 
+
===Egyéb===
=== Bash shell ===
+
* '''exit''': kilépés terminálból (vagy ctrl+d).
A ''bash'' tulajdonképpen a legelterjedtebb ''Linux shell''. A begépelt parancsokból egy fájlt hoz létre ami elősegíti a parancsok szerkesztését.
+
* '''sudo''': programok futtatása superuserként.
A shell legfontosabb funkciói közé tartoznak a ''bash gyorsbillentyűk''. Ezek több billentyű egyidejű lenyomásával azonnal végrehajtódó, egyszerű utasítások, melyek segítik a bash parancsok kezelését karakteres felületen és terminálablakban.
+
* Egyéb hasznos fogalmak
::'''''Jelölések''''': gyakran jelölik a ''Control'' billentyűt C-vel,az ''Alt'' billentyűt M-mel (Meta), az ''Entert'' E-vel, a ''Shift'' billentyűt S-sel (én az egyszerűség kedvéért a szokásos jelöléseket használom).
+
** Reguláris kifejezések
 +
** [http://en.wikipedia.org/wiki/Chmod| 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.
 +
<bash>
 +
mkdir GYAK1
 +
cd ./GYAK1
 +
</bash>
 +
* Töltsd le a wget programmal az alábbi (gráf) él listát: [https://dl.dropbox.com/u/1100162/edge_list]
 +
<bash>
 +
wget https://dl.dropbox.com/u/1100162/edge_list
 +
</bash>
 +
* Készíts biztonsági másolatot a file-ról, majd ellenőrizd a másolatot.
 +
<bash>
 +
cp edge_list edge_list_save
 +
less edge_list_save
 +
</bash>
 +
* Számold meg az élek számát a gráfban.
 +
<bash>
 +
wc -l edge_list
 +
</bash>
 +
* Írd ki a 11-es csúcsból induló éleket, majd irányítsd a kimenetet a "edges_11" file-ba
 +
<bash>
 +
grep 11 edge_list
 +
grep 11 edge_list > edges_11
 +
</bash>
 +
Számold ki a 11-es csúcs fokszámát.
 +
<bash>
 +
grep 11 edge_list | wc -l
 +
</bash>
 +
Számold ki az összes csúcs fokszámát.
 +
<bash>
 +
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
 +
</bash>
 +
Határozd meg a legnagyobb és legkisebb fokú csúcsot.
 +
<bash>
 +
sort -g -k2,2 degrees > degrees_sorted
 +
less degrees_sorted
 +
head -n 1 degrees_sorted
 +
tail -n 1 degrees_sorted
 +
</bash>
 +
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.
 +
<bash>
 +
csucs=$1
 +
echo "a ("$csucs") csucs fokszama:"
 +
awk 'BEGIN{DEG=0;}{if($1=="'$csucs'"){DEG++;}if($2=="'$csucs'"){DEG++;}}END{print DEG}' edge_list
 +
</bash>
 +
Futtasd a scriptet különböző csúcsokkal, példa:
 +
<bash>
 +
sh fokszam.sh 11
 +
</bash>

A lap jelenlegi, 2012. szeptember 10., 20:11-kori változata

Tartalomjegyzék

Bevezetés

Disztribúciók

  • Néhány példa:
    • Debian
    • Ubuntu
    • Arch Linux
    • Slackware
    • Red Hat
  • Ubuntu "derivatives":
    • Kubuntu
    • Xubuntu
    • Chromium OS
    • Elementary OS
  • Linux disztribúciók fejődése
  • Próba: ubuntu Live CD, flash, wubi

Ablakkezelők

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

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
Személyes eszközök