Informatika1-2021/Gyakorlat2
(Új oldal, tartalma: „Előző gyakorlat - Fel - Következő gyakorlat == Feladatok == ==…”) |
(→Emacs) |
||
(egy szerkesztő 7 közbeeső változata nincs mutatva) | |||
1. sor: | 1. sor: | ||
[[Informatika1-2021/Gyakorlat1|Előző gyakorlat]] - [[Informatika1-2021#Gyakorlatok|Fel]] - [[Informatika1-2021/Gyakorlat3|Következő gyakorlat]] | [[Informatika1-2021/Gyakorlat1|Előző gyakorlat]] - [[Informatika1-2021#Gyakorlatok|Fel]] - [[Informatika1-2021/Gyakorlat3|Következő gyakorlat]] | ||
+ | |||
+ | == Alapvető parancsok (emlékeztetõ) == | ||
+ | * '''pwd''': aktuális könyvtár kiíratása. | ||
+ | * '''cd''': könyvtárváltás. Ha paraméter nélkül hívjuk meg, akkor a saját mappánkba visz. Pl '''cd /mnt''', '''cd''', '''cd ..''' | ||
+ | * '''ls''': könyvtár tartalmának listázása. Pl: '''ls''', ''ls -h'', '''ls /dev''', '''ls -h -l ~''' | ||
+ | * '''mkdir''': könyvtár létrehozása. '''mkdir NewFolder''' | ||
+ | * '''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''': törlés, Pl: '''rm alma.txt''', rekurzívan töröl minent a mappával együtt: '''rm -r NewFolder''' | ||
+ | * '''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''': lemezen szabad / felhasznált helyet írja ki. A '''-h''' kapcsolóval olvasható ''GB'', ''MB'', ''kB'' értékeket kapunk, de lehet fix byte-okban is kiírni. Pl: '''df -h ~''' | ||
+ | * '''mc''': midnight commander fájlböngésző. | ||
+ | * segíts magadon | ||
+ | ** '''info <parancs>''' | ||
+ | ** '''man <parancs>''' 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''' | ||
+ | ** '''<parancs> --help''' | ||
+ | ** '''help''' | ||
+ | * '''history''': parancs történet lekérdezése. | ||
+ | * '''apropos''': parancs/program nevek keresése. ''apropos math'' | ||
+ | * '''top''': futó alkalmazások. | ||
+ | * '''kill''', '''killall''', '''xkill''': folyamatok leállítása. Egy adott felhasználó összes folyamatának leállítása: '''killall -u username''' | ||
+ | * '''cat''': fájl tartalmának kiíratása. Pl: '''cat .forward''' | ||
+ | * '''echo''': kiírja az argumentumait, Pl: '''echo Hello World'''. Figyelem, beugratós: '''echo --help''' | ||
+ | * '''grep''': szöveg mintázatok keresése állományokban. '''grep "tű" szénakazal.txt''' | ||
+ | * '''less''': szöveges állományok megjelenítése, könnyebb olvashatóság nagy fájloknál, Pl '''less valami.txt''' | ||
+ | * '''head''' (-n ), '''tail''' (-n ): fájl elejének és végének a kiiratása. '''head -n 100 valami.txt''' | ||
+ | * '''sort''' (-g -k): szövegállomány rendezése. | ||
+ | * '''wc''' (-l): byte/karakterek/sorok számolás adott fájlra. | ||
+ | * '''ssh''': távoli gépre való bejelentkezést teszi lehetővé. | ||
+ | * '''scp''': távoli gépre/gépről való másolás. | ||
+ | * '''wget''': file-ok letöltése internetről, HTTP, HTTPS és FTP használatával. | ||
+ | * '''exit''': kilépés terminálból (vagy ctrl+d). | ||
+ | * '''sudo''': programok futtatása superuserként. (Mat intézetben erre nem lesz lehetőségünk) Pl. '''sudo rm /home/someone_I_hate/important_file.txt''' | ||
+ | * '''halt, reboot''': kikapcsol, újraindít (Mat intézetben erre sem lesz lehetőségünk) | ||
== Feladatok == | == Feladatok == | ||
92. sor: | 126. sor: | ||
Hasznos még: CTRL + x u, undo. | Hasznos még: CTRL + x u, undo. | ||
+ | |||
+ | Cheat sheet: https://www.gnu.org/software/emacs/refcards/pdf/refcard.pdf | ||
== Önálló feladatok == | == Önálló feladatok == | ||
109. sor: | 145. sor: | ||
man grep | man grep | ||
</pre> | </pre> | ||
+ | |||
+ | |||
+ | == Linux jogok == | ||
+ | * Jogosultsági körök | ||
+ | ** '''s'''per'''u'''ser (su) felhasználók, pl. rendszergazdák | ||
+ | ** '''owner''', egy adott fájl tulajdonosa, aki létrehozta, pl <tt>kispista</tt> | ||
+ | ** '''group''', felhasználóknak egy részhalmaza, amelybe az ''owner'' is beletartozik, pl. <tt>student</tt> | ||
+ | ** '''others''', mindenki más, nyilvános, guest vagy egyéb nem megbízható felhasználó | ||
+ | * Jogosultsági típusok | ||
+ | ** '''w''': Write, írhatja, olvashatja a fájlt | ||
+ | ** '''r''': Read, olvashatja a fájl vagy könyvtár tartalmát | ||
+ | ** '''x''': eXecute, futtathatja a fájlt (programok, script-ek), vagy listázhatja a könyvtárat | ||
+ | ** '''-''': semmi | ||
+ | |||
+ | Ezekből a lehetőségekből válogathatunk, vagyis megadhatjuk, hogy egy adott kör, mely jogokkal rendelkezzen. Például | ||
+ | * a tulajdonos írhatja, olvashatja, futtathatja | ||
+ | * a csoportja olvashatja, futtathatja | ||
+ | * mások semmit | ||
+ | A superuser-ek (su) mindig mindent csinálhatnak, azt nem tudjuk korlátozni, su jogot csak su adhat vagy vehet el. | ||
+ | |||
+ | Ezekre van karakteres és numerikus kód, a tömörebb olvashatóság kedvéért: | ||
+ | * '''u''': user, owner | ||
+ | * '''g''': group | ||
+ | * '''o''': others | ||
+ | * '''a''': mindenki: a fájl tulajdonosa, annak csoportja és mindenki más is. | ||
+ | * olvasás: '''r''' vagy '''4''' | ||
+ | * írás: '''w''' vagy '''2''' | ||
+ | * execute: '''x''' vagy '''1''' | ||
+ | * semmi: '''-''' vagy '''0''' | ||
+ | Az '''a''' nem ugyan az, mint az '''o''', mert elképzelhető, hogy a group-nak nem adok jogot valamire, de a csoporton kívüli embereknek igen. | ||
+ | |||
+ | Karakteresen a jogokat egy 10 karakterből álló sztring tartalmazza: | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | | 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 10 | ||
+ | |- | ||
+ | | rowspan="2" | típus || colspan="3" style="text-align: center;" | owner jogok || colspan="3" style="text-align: center;" | group jogok || colspan="3" style="text-align: center;" | others | ||
+ | |- | ||
+ | | read || write || execute || read || write || execute || read || write || execute | ||
+ | |} | ||
+ | |||
+ | <PRE> | ||
+ | $ ls -l ~ | ||
+ | drwxr-xr-x 8 borbely student 4096 Aug 30 23:24 Desktop | ||
+ | drwxr-xr-x 2 borbely student 4096 Mar 27 2012 Downloads | ||
+ | drwxr-xr-x 2 borbely student 4096 Oct 20 2009 Drives | ||
+ | drwx------ 2 borbely student 4096 Apr 20 10:42 mail | ||
+ | drwxr-xr-x 7 borbely student 4096 Sep 6 13:01 public_html | ||
+ | $ _ | ||
+ | </PRE> | ||
+ | A <tt>public_html</tt> mappámnak a tulajdonosa: <tt>borbely</tt>, csoportja <tt>student</tt>, azonosító: <tt>drwxr-xr-x</tt>, vagyis: | ||
+ | * típusa '''d''': könyvtár | ||
+ | * saját jogaim '''rwx''', vagyis minden (hál' Istennek) | ||
+ | * diáktársaim jogai '''r-x''', vagyis írni nem írhatják, de minden mást szabad | ||
+ | * mindenki másnak '''r-x''', vagyis más is olvashatja és futtathatja | ||
+ | |||
+ | Numerikusan egy 3 számból álló érték határozza meg a jogokat. | ||
+ | Balról az első szám az owner jogok, aztán group majd others. A számok 4: olvasás, 2: írás, 1: execute. | ||
+ | Ezek összeadódhatnak. | ||
+ | Pl <tt>/home/student/borbely/public_html</tt> jogai: <tt>755</tt> azaz | ||
+ | * owner (<tt>borbely</tt>) <tt>7=4+2+1</tt>: írás, olvasás és futtatás | ||
+ | * group (<tt>student</tt>) <tt>5=4+1</tt>: olvasás és futtatás | ||
+ | * other <tt>5=4+1</tt>: olvasás és futtatás | ||
+ | |||
+ | === chmod === | ||
+ | A jogokat a <tt>chmod</tt> paranccsal változtathatjuk meg. Néhány példa: | ||
+ | * <tt>chmod 700 ~/info_hazi</tt>: elrejtem az <tt>info_hazi</tt> mappámat rajtam kívül mindenki elől (nem tudnak belelépni, sem listázni a tartalmát), persze a superuser-ek láthatják. | ||
+ | * <tt>chmod 750 ~/important_work</tt>: ebben a mappában egy group-al együtt dolgozok valamin, a group olvashatja és futtathatja, én írhatom is, senki más nem láthatja. | ||
+ | * <tt>chmod 754 -R ~/public_html</tt>: az '''-R''' kapcsoló rekurzívan alkalmazza a beállításokat a mappa tartalmára. | ||
+ | |||
+ | === Bővebben === | ||
+ | * <tt>man chmod</tt> | ||
+ | |||
[[Informatika1-2021/Gyakorlat1|Előző gyakorlat]] - [[Informatika1-2021#Gyakorlatok|Fel]] - [[Informatika1-2021/Gyakorlat3|Következő gyakorlat]] | [[Informatika1-2021/Gyakorlat1|Előző gyakorlat]] - [[Informatika1-2021#Gyakorlatok|Fel]] - [[Informatika1-2021/Gyakorlat3|Következő gyakorlat]] |
A lap jelenlegi, 2021. szeptember 22., 15:30-kori változata
Előző gyakorlat - Fel - Következő gyakorlat
Tartalomjegyzék |
Alapvető parancsok (emlékeztetõ)
- pwd: aktuális könyvtár kiíratása.
- cd: könyvtárváltás. Ha paraméter nélkül hívjuk meg, akkor a saját mappánkba visz. Pl cd /mnt, cd, cd ..
- ls: könyvtár tartalmának listázása. Pl: ls, ls -h, ls /dev, ls -h -l ~
- mkdir: könyvtár létrehozása. mkdir NewFolder
- 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: törlés, Pl: rm alma.txt, rekurzívan töröl minent a mappával együtt: rm -r NewFolder
- 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: lemezen szabad / felhasznált helyet írja ki. A -h kapcsolóval olvasható GB, MB, kB értékeket kapunk, de lehet fix byte-okban is kiírni. Pl: df -h ~
- mc: midnight commander fájlböngésző.
- segíts magadon
- info <parancs>
- man <parancs> 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
- <parancs> --help
- help
- history: parancs történet lekérdezése.
- apropos: parancs/program nevek keresése. apropos math
- top: futó alkalmazások.
- kill, killall, xkill: folyamatok leállítása. Egy adott felhasználó összes folyamatának leállítása: killall -u username
- cat: fájl tartalmának kiíratása. Pl: cat .forward
- echo: kiírja az argumentumait, Pl: echo Hello World. Figyelem, beugratós: echo --help
- grep: szöveg mintázatok keresése állományokban. grep "tű" szénakazal.txt
- less: szöveges állományok megjelenítése, könnyebb olvashatóság nagy fájloknál, Pl less valami.txt
- head (-n ), tail (-n ): fájl elejének és végének a kiiratása. head -n 100 valami.txt
- sort (-g -k): szövegállomány rendezése.
- wc (-l): byte/karakterek/sorok számolás adott fájlra.
- ssh: távoli gépre való bejelentkezést teszi lehetővé.
- scp: távoli gépre/gépről való másolás.
- wget: file-ok letöltése internetről, HTTP, HTTPS és FTP használatával.
- exit: kilépés terminálból (vagy ctrl+d).
- sudo: programok futtatása superuserként. (Mat intézetben erre nem lesz lehetőségünk) Pl. sudo rm /home/someone_I_hate/important_file.txt
- halt, reboot: kikapcsol, újraindít (Mat intézetben erre sem lesz lehetőségünk)
Feladatok
Másolás
A "cp" paranccsal tudunk file-okat másolni. Próbáljuk ezt ki: Legyünk a home mappánkban:
cd
Másoljunk ide egy file-t:
cp /home/student/kkovacs/share/week1/animals ./
Nézzük meg mi van a file-ban ("cat" vagy "less"):
cat animals
Most próbáljunk meg egy egész mappát másolni:
cp /home/student/kkovacs/share/week1 ./
Mappa másoláshoz rekurzívan kell másolni, mert a mappának van tartalma is. Ez tipikusan az "-r" kapcsoló:
cp -r /home/student/kkovacs/share/week1 ./
Nézzünk bele egy másik file-ba:
cat fruits
Ez jó nagy már, inkább "less"-el:
less fruits
File-ban keresés
Keressünk egy gyümölcsöt:
grep apple fruits
Nem találtuk meg a sima almát (apple)? Mert számít a kis és nagy betû:
grep Apple fruits
Ok de most meg az ananász hiányzik. Az "-i" kapcsoló "case insensitive" mode-ba kapcsolja a grep-et, azaz a kis és nagybetû nem fog számítani.
grep -i apple fruits
Kimenet átirányítása
Készítsünk egy új file-t, amiben az "almák" vannak csak:
grep -i apple fruits > apples
A ">" karakter átirányítja a balra levõ parancs kimenetét a jobbra levõ file-ba. Ha nem létezik a file létrehozza, ha létezik, akkor felülírja (minden kérdés nélkül, ez tipikusan igaz ezekre a parancsokra, nem kérdeznek vissza).
Pipe használata
Számoljuk meg hány gyümölcs van összesen:
wc -l fruits
Most próbáljuk meg megszámolni hány almaféle van:
grep -i apple fruits
Ok ez még szemmel is megy. De mi van ha a "berry" félékre vagyok kíváncs? (Többesszámban vannak, szóval "berri"-re keresek.)
grep -i berri fruits
Na ez már brainpowerbe kerül, hogy megszámoljuk. Nem lehetne valahogy kombinálni a "grep" és "wc" parancsokat? Erre való a pipe:
grep -i berri fruits | wc -l
A pipe az elõtte levõ parancs kimenetét (a megtalált "berry"-ket) átadja a következõ parancs bemeteként. Mivel a "wc -l" sorokat számol így azt számoljuk meg hogy hány találat volt a "grep"-ben.
Emacs
Nyissunk meg egy file-t:
emacs -nw vegetables
Legfontosabb parancs: CTRL + h t, azaz a CTRL-t lenyomva "h" aztán a "t" karakter. Ez felhoz egy tutorialt, amiben a nyilakkal lehet navigálni.
Második legfontosabb: CTRL + x CTRL + c, ez a kilépés.
Harmadik legfontosabb: CTRL + x CTRL + s, ez a file mentése.
Hasznos még: CTRL + x u, undo.
Cheat sheet: https://www.gnu.org/software/emacs/refcards/pdf/refcard.pdf
Önálló feladatok
Keresés
Melyek azok a gyümölcsök amikben az "a" és a "c" karakter is mind2 szerepel? Mennyi van belôlük? (A fruits file-ban.)
Állatkák
Az "animals" file-ban állatok és a kölykeik megnevezése található vesszõvel elválasztva. Elõször keressük meg azokat amikben a "ling" szerepel. Majd szûkítsük le a kimenetet csak a felnõtt állat (1. oszlop) megnevezésére. Ehhez egy új parancsot kell használni, a "cut"-ot. Keressünk rá a használatára, vagy használjuk a "man" parancsot.
Zöldség tisztítás
Készítsünk egy file-t amiben azok a sorok vannak a "vegetables" file-ból, amik csak 1 szóból állnak. (Ehhez nézzünk bele a grep használati utasításába, mert olyan kapcsolót kell használni amit eddig nem mutattam.)
man grep
Linux jogok
- Jogosultsági körök
- speruser (su) felhasználók, pl. rendszergazdák
- owner, egy adott fájl tulajdonosa, aki létrehozta, pl kispista
- group, felhasználóknak egy részhalmaza, amelybe az owner is beletartozik, pl. student
- others, mindenki más, nyilvános, guest vagy egyéb nem megbízható felhasználó
- Jogosultsági típusok
- w: Write, írhatja, olvashatja a fájlt
- r: Read, olvashatja a fájl vagy könyvtár tartalmát
- x: eXecute, futtathatja a fájlt (programok, script-ek), vagy listázhatja a könyvtárat
- -: semmi
Ezekből a lehetőségekből válogathatunk, vagyis megadhatjuk, hogy egy adott kör, mely jogokkal rendelkezzen. Például
- a tulajdonos írhatja, olvashatja, futtathatja
- a csoportja olvashatja, futtathatja
- mások semmit
A superuser-ek (su) mindig mindent csinálhatnak, azt nem tudjuk korlátozni, su jogot csak su adhat vagy vehet el.
Ezekre van karakteres és numerikus kód, a tömörebb olvashatóság kedvéért:
- u: user, owner
- g: group
- o: others
- a: mindenki: a fájl tulajdonosa, annak csoportja és mindenki más is.
- olvasás: r vagy 4
- írás: w vagy 2
- execute: x vagy 1
- semmi: - vagy 0
Az a nem ugyan az, mint az o, mert elképzelhető, hogy a group-nak nem adok jogot valamire, de a csoporton kívüli embereknek igen.
Karakteresen a jogokat egy 10 karakterből álló sztring tartalmazza:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
típus | owner jogok | group jogok | others | ||||||
read | write | execute | read | write | execute | read | write | execute |
$ ls -l ~ drwxr-xr-x 8 borbely student 4096 Aug 30 23:24 Desktop drwxr-xr-x 2 borbely student 4096 Mar 27 2012 Downloads drwxr-xr-x 2 borbely student 4096 Oct 20 2009 Drives drwx------ 2 borbely student 4096 Apr 20 10:42 mail drwxr-xr-x 7 borbely student 4096 Sep 6 13:01 public_html $ _
A public_html mappámnak a tulajdonosa: borbely, csoportja student, azonosító: drwxr-xr-x, vagyis:
- típusa d: könyvtár
- saját jogaim rwx, vagyis minden (hál' Istennek)
- diáktársaim jogai r-x, vagyis írni nem írhatják, de minden mást szabad
- mindenki másnak r-x, vagyis más is olvashatja és futtathatja
Numerikusan egy 3 számból álló érték határozza meg a jogokat. Balról az első szám az owner jogok, aztán group majd others. A számok 4: olvasás, 2: írás, 1: execute. Ezek összeadódhatnak. Pl /home/student/borbely/public_html jogai: 755 azaz
- owner (borbely) 7=4+2+1: írás, olvasás és futtatás
- group (student) 5=4+1: olvasás és futtatás
- other 5=4+1: olvasás és futtatás
chmod
A jogokat a chmod paranccsal változtathatjuk meg. Néhány példa:
- chmod 700 ~/info_hazi: elrejtem az info_hazi mappámat rajtam kívül mindenki elől (nem tudnak belelépni, sem listázni a tartalmát), persze a superuser-ek láthatják.
- chmod 750 ~/important_work: ebben a mappában egy group-al együtt dolgozok valamin, a group olvashatja és futtathatja, én írhatom is, senki más nem láthatja.
- chmod 754 -R ~/public_html: az -R kapcsoló rekurzívan alkalmazza a beállításokat a mappa tartalmára.
Bővebben
- man chmod