Számítógépes alapismeretek 2-3. gyakorlat Unix/Linux alapismeretek Téma: Fontos parancsok (who, date, password, pwd, ls, cat, more, tail, mail, unix levelezés, csatolások, kódolás,dekódolás, pine, cd, mkdir, rmdir,cp,mv,ln,rm,chmod,chown,find)
A parancsértelmező, avagy shell Egy Unix rendszermag szigorúan véve nem tartalmaz felhasználó-interakciót: a kernel csupán arra képes, hogy futtasson más programokat, illetve hozzáférést biztosítson a rendszer erőforrásaihoz a parancsértelmező vagy shell nem csinál mást, minthogy olvassa a felhasználó billentyűzetéről érkező parancsokat, és ezeket a kernel számára emészthető rendszerhívásokká alakítja, a végeredményről pedig a képernyőn tájékoztatja a felhasználót
A Linux szerkezete hardver rendszermag = kernel shell = burok = héj
A parancsértelmező, avagy shell Bejelentkezéskor elindul egy "login shell". Új shellt a program nevének beírásával lehet elindítani.
Shell fajták Sh : ősi shell Csh : C programozók ízlésvilágához igazított változata Ksh: Korn shell, kényelmi funkciókkal Tcsh: csh kiterjeszett változata Bash: Bourne Again Shell, sh továbbfejlesztése Mindegyik shell-nek saját programnyelve van, amelyben shell scripteket (kisebb programokat) írhatunk
Shell parancsok A shellnek vannak beépített parancsai (a bash-nak 50) és külső programjai. A "type parancsnév" mutatja meg, hogy a parancs belső-e.
Bash shell Az előzőleg begépelt parancsokat visszahívhatjuk a felfelé nyíllal, a parancssort szabadon szerkeszthetjük (mozogni a nyílbillentyűkkel lehet). Előző parancsot visszahívni még a felkiáltójellel is lehet: a ! mögé rövid sztringet írva megkeresi a legutóbbi olyan parancsot, amely azzal a sztringgel kezdődött, és azt futtatja le
Bash shell File-név kiegészítést a "Tab"-bal kérhetünk Ha ez egyértelműen lehetséges, beírja a file-nevet, ha nem, sípol egyet, és a "Tab" újbóli megnyomására megkapjuk a lehetséges file-nevek listáját
Bash shell Billentyűkombinációk Néhány hasznos billentyűkombináció, melyeket bash alatt kényelmesen használhatunk (a lista távolról sem teljes): control + r: rekurzív keresés a korábban kiadott parancsok között. Leütése után be kell gépelni a keresett parancs valamely töredékét control + c: futó alkalmazás megszakítása control + u: kurzortól balra eső rész levágása control + k: kurzortól jobbra eső rész levágása control + a: sor elejére ugrás control + e: sor végére ugrás control + l: a konzol törlése/frissítése
A Linux fájlrendszere Fájlnév Könyvtárfa akár 255 hosszú, szinte tetszőleges karakterekből kis- és nagybetűk megkülönböztetettek lehetnek .-ok a fájlnévben, de a kiterjesztéseknek a rendszer számára nincsen jelentésük Könyvtárfa minden adat egyetlen könyvtárfában van, melynek a gyökere a „/” meghajtók, hardvereszközöknek megfelelő fájlok is a könyvtárfában érhetők el
A Linux könyvtárszerkezete, fontosabb könyvtárak: / A főkönyvtár, a könyvtárfa kiindulópontja /home Ehhez csatlakoznak a felhasználók könyvtárai /dev A hardvereszközöket reprezentáló fájlok /etc A legfontosabb konfigurációs fájlok /usr/bin Közhasználatú parancsok /sbin A superuser és a rendszerindító parancsok /usr/doc Dokumentációs fájlok /usr/local/man Kézikönyv oldalak /tmp Ideiglenes fájlok /var Konfigurációs fájlok (Linkek az /usr-ből) /lib Megosztott programkönyvtárak /proc A processzek fájlrendszere
LINUX/UNIX PARANCSOK
PUTTY alkalmazás használatával bejelentkezünk Karakterkódolás beállítása UTF-8-ra!
man Manuál olvasása a parancsokról man parancs Lapozás: ‘szóköz’ -h; --help - help (Mindenhol!) -V; --version - verzió (Mindenhol!) Lapozás: ‘szóköz’ Kilépés: 'q' Tekintsd meg a who parancs súgóját!
Uname Rendszerinformációk kiírása Uname -a összes információ -s kernel neve -n node neve -r kernel release -v kernel version -m machine -p processor -o operációs rendszer
who Kiírja, hogy ki van bejelentkezve Who [opciók] -a - minden információ -q - felhasználók száma -s - rövidebb információ Kik vannak most bejelentkezve a rendszerbe?
whoami Kiírja, az aktuális felhasználó azonosítóját
date Dátum és idő kiírása/beállítása date [opciók] [formátum] date 092908302008 (date [MMDDhhmm[[CC]YY][.ss]]) -R RFC 2822 (Thu, 25 Sep 2008 17:54:28 +0200) date +%Y-%m-%dT%H:%M:%S Tekintsd meg a date parancs súgóját!
passwd, kpasswd A passwd a felhasználók és a csoportok jelszavának megváltoztatását végzi. A fel-használók csak a saját jelszavukat változtathatják meg, a rendszergazda bárkiét. A Kerberos (tartományi) jelszó módosítására a kpasswd parancs szolgál.
pwd Kiírja a munkakönyvtár nevét pwd Print name of current/Working Directory Mi a személyes könyvtárad teljes elérési útvonala?
Katalógusok A Unix fájlrendszerben három kitüntetett pont létezik az egyes felhasználó számára: a gyökérkatalógus (root directory), ez a fájlrendszer kezdõpontja / az alapkatalógus (home directory), az egyes felhasználóhoz tartozó kiindulási pont ~/ a munkakatalógus (current directory), az a pont, ahol a felhasználó éppen tartózkodik a fájlrendszerben ./
ls Könyvtát tartalmának listázása ls [opciók] fájl -a - A ponttal (.) kezdődő fájlneveket az ls alapértelmezésben nem listázza, a -a opció viszont felülbírálja ezt a működést. -l - Hosszú formátumú lista -s - méretet is block-ban -S - méret szerint rendez -r - visszafelé rendez -R - Rekurzívan kilistázza az összes alkönyvtár összes fájlját -F -Ez az opció hozzáad egy ismertető karaktert a fájlnevek végéhez, ami a fájl típusáról árulkodik Mi a személyes könyvtárad tartalma? Milyen típusú fájlok vannak benne?
ls –al parancs eredménye Fájltípus és Jogosultságok Fájl hossza Tulajdonos neve Fájl neve Szimbólikus linkeknél az is látszik a -> jel után, hogy hova mutat a link Link számláló: Hány néven hivatkozhatunk a fájlra Tulajdonos csoport azonosítója Utolsó módosítás dátuma
File-típusok d: ha a file egy könyvtár (directory) b: ha a file block típusú speciális file c: ha a file karakter típusú speciális file l: ha a file szimbolikus link s: ha a file socket - ha a file "egyszerű" (plain) file
File-típus példa (block device) A /dev könyvtár alatt találhatók speciális eszközfájlok, melyeknél ez lehet "b" (blokk eszköz, block devices) pl.: $ ls -al /dev/hda1 brw-rw---- 1 root disk 3, 1 2004 szept 28 /dev/hda1 (A primary master vincseszter első partíciójára mutató blokk eszköz)
File-típus példa (karakteres eszközfájl) ls -l /dev/dsp0 crw-rw---- 1 root audio 14, 3 2006-03-07 22:27 /dev/dsp0 (Ez az elsődleges hangkártyára mutató "karakteres eszközfájl".)
cd (relatív és abszolút hivatkozás) Könyvtárváltás Belépés az akt. könyvtár egy könyvtárába cd public cd public/public_html Kilépés az akt. könyvtárból cd .. cd ../.. Ki-be lépés cd ../../mail Abszolút hivatkozás cd ~/public/public_html cd /bin ~ mail public public_html ~: a személyes könyvtár Egyesével lépj ki a mindenkori aktuális könyvtárból, ameddig van hová, és közben ellenőrizd az aktuális könyvtár tartalmát!
A joker-karakterek ls, cp, rm stb. parancsoknál használható ? * egyetlen tetszőleges karakter * tetszőlegesen sok (0, 1, 2, …) tetszőleges karakter Lépj a /usr/bin könyvtárba! Jelenítsd meg a könyvtár tartalmát! Jelenítsd meg csak a "ca" kezdetű fájlokat! Jelenítsd meg csak az "ar" végű fájlokat! Jelenítsd meg csak a "c" kezdetű, hárombetűs fájlokat!
Shell-szolgáltatások Parancs, futtatható fájl, vagy könyvtár nevének automatikus kiegészítése ‘TAB’ Korábban kiadott parancsok elérése ‘fel’ és ‘le’ nyílgombok Lépj a személyes könyvtáradba! (cd) Írd be a "cale" szókezdést, nyomj TAB-ot, azután Entert! Írd be a "cal" szókezdést, nyomj TAB-ot, azután újra TAB-ot! Folytatva a megkezdett szót, indítsd el újra a "calendar" programot!
mkdir Könyvtár létrehozása mkdir [opciók] könyvtár -v - visszajelzés ~ szamalap jin jang Hozd létre a személyes könyvtáradban a „szamalap” könyvtárat! A „szamalap” könyvtáron belül hozd létre a „jin” és „jang” könyvtárakat!
Átirányítás A Unix rendszer file-orientált szervezése a parancsok futtatásakor is megmutatkozik: minden egyes futó parancshoz hozzárendelõdik három file: a standard input (stdin) a standard output (stdout) standard error (stderr)
Átirányítás Kimenet átirányítása: Kimenet átirányítása, hozzáfűzéssel: Parancs > fájl Kimenet átirányítása, hozzáfűzéssel: Parancs >> fájl Bemenet átirányítás Parancs <fájl Hiba átirányítása Parancs 2>fájl
cat cat [opciók] fájl Szövegfájl létrehozása billentyűzetről Fájl(ok összefűzése és) képernyőre írása Szövegfájl létrehozása billentyűzetről cat >ujlevel.txt Befejezés: CTRL+D Szövegfájl kiíratása cat <olvassel.txt Hozd létre a személyes könyvtáradban a „tuz.txt” fájlt, ami a saját nevedet tartalmazza! Ellenőrizd, hogy a fájl létrejött! ~ tuz.txt szamalap jin jang
Átirányítás Egy parancs kimenetének szöveges fájlba irányítása man date >a_date_parancs_leirasa.txt ls *.png >../novenyek/kepeim.list who >~/public/public_html/felhasznalok.lst hozzáfűzve: date >>felhasznalok.lst Írd felül a „tuz.txt” fájlt a jelenleg bejelentkezettek névsorával! Fűzd hozzá a „tuz.txt” fájlhoz az aktuális dátumot!
Echo parancs A megadott szöveget kiírja a szabványos kimenetre $ echo ez egy tetszőleges szöveg ez egy tetszőleges szöveg $ echo -n ez egy tetszőleges szöveg ez egy tetszőleges szöveg$ Ilyenkor az új sor karaktert nem írja ki
cp Fájlokat és könyvtárakat másol cp [opciók] forrás cél -f - felülír -i - kérdez felülírás előtt -R, -r - Rekurzívan -u - újabbal felülír -v - visszajelzés ~ tuz.txt szamalap jin jang Állj a személyes könyvtáradba! Készíts másolatot a „tuz.txt” fájlról a „jin” könyvtárba!
mv Mozgat vagy átnevez fájlokat mv [opciók] forrás cél -u - csak az újabbal írja felül -v - visszajelzés ~ tuz.txt szamalap jin jang viz.txt Lépj a „jin” könyvtárba! Nevezd át a „jin” könyvtárban lévő szövegfájlt „viz.txt”-re! Helyezd át a „viz.txt” fájlt a „jang” könyvtárba!
rm Fájl törlése rm [opció] fájl -r - Rekurzívan -v - Mindig van visszajelzés -f - Soha nincs visszajelzés -i - Kérdezés törlés előtt ~ tuz.txt szamalap jin jang viz.txt Töröld a „tuz.txt” fájlt!
rmdir Üres könyvtárat töröl Rmdir [opciók] könyvtár -v - Kiírja az eredményt ~ szamalap jang viz.txt Próbáld meg kitörölni a „jang” könyvtárat! Töröld a „jin” könyvtárat!
rm -r Könyvtár rekurzív törlése rm -r könyvtár ~ szamalap jang viz.txt Töröld a teljes „szamalap4” könyvtárat!
more és less Képernyőre írja lapozva a fájlt more [opciók] fájl Szóköz – lapozás Enter – soronként görgetés q – kilépés less: hasonló, mint a more, de mindkét irányban lapozható Irányítsd át a /etc könyvtár részletes tartalmát egy „lista.txt „fájlba! (ls –l /etc >lista.txt) Tekintsd meg a more és a less parancsokkal is az elkészült szövegfájlt! Mi a különbség a két parancs használatában? (Mindkét esetben próbáld ki a ‘fel’, ‘le’ nyílgombokat!)
tail Egy fájl utolsó részét kiírja tail [opciók] fájl -n N - Utolsó N sor -c N - Utolsó N bájt Tekintsd meg a /etc/motd.karacsony fájlt! Tekintsd meg az utolsó 5 sorát!
head Egy fájl elejét kiírja head[opciók] fájl -n N - Utolsó N sor -c N - Utolsó N bájt Tekintsd meg a /etc/motd.karacsony fájlt! Tekintsd meg az első 5 sorát!
FELADATOK Írd ki egy ize nevű fájlba, hogy ki van bejelentkezve. Használd fel az ize fájlt! Írd ki egy ize nevű fájlba, hogy ki van bejelentkezve. Az ls man-oldalát írd ki egy ize2 nevű fájlba. Írasd ki az ize2-t oldalakra tagolva. Hozz létre egy valami nevű mappát. Másold az ize-t a valami-be. Lépj be a valami-be és másold bele az ize2-t. Töröld az ize-t. Hozz létre egy va lami nevű mappát, majd töröld. Lépj ki valami-ből, és töröld. Fűzd hozzá az ize fájlhoz az ize utolsó 7 sorát. Töröld ize-t. A név szóközt tartalmaz! who >ize man ls >ize2 more ize2 mkdir valami cp ize valami cd valami; mv ../ize2 . rm ize mkdir „va lami”; rmdir „va lami” cd ..; rm -r valami tail -n 7 ize >>ize
Egy lehetséges megoldás who >ize man ls >ize2 more ize2 mkdir valami cp ize valami cd valami; mv ../ize2 . rm ize mkdir „va lami”; rmdir „va lami” cd ..; rm -r valami tail -n 7 ize >>ize
Linkek használata Két nagy előnye van, az egyik a névütközések feloldása, a másik a helytakarékosság. A névütközések problémája onnan ered, hogy a UNIX verziók eltérő fejlődése miatt ugyanolyan néven kezdtek nevezni más-más parancsokat. Legismertebb példa erre az rsh parancs, ami a System V alapú rendszerekben a restricted shell-t jelenti (ez a szokványos Bourne shell egy korlátozott szolgáltatásokkal bíró változata), a BSD alapú UNIX rendszerekben viszont a remote shell rövidítése, ami a távoli gépeken történő parancsvégrehajtásra szolgál. Mivel a mai rendszerekben mind a két parancs szerepel, általában csak a katalógusokban definiált keresési sorrend dönti el, hogy az rsh parancs kiadásakor melyik indul el a kettő közül (mindig a másik, mint amelyiket akartuk ). Ha viszont valamelyiket egy eltérő névvel láncoljuk, akkor a névütközés problémáját feloldottuk. A restricted shell rendszerint a /usr/bin könyvtárban található, míg a remote shell a /usr/ucb alatt. Adjuk ki az alábbi parancsot (Ehhez superuser jogok kellenek!): $ ln /usr/ucb/rsh /usr/bin/remsh E parancs hatására a továbbiakban remsh néven hívhatjuk a remote shell-t, rsh néven a másikat, s a módszer a katalógusok keresési sorrendjétől függetlenül működni fog.
Linkek használata Helytakarékosság Tegyük fel, hogy van két C nyelvű programunk, amelyek igen hasonló funkciókat látnak el, lényegtelen eltérésekkel. Megtehetjük azt, hogy mindkettőt külön-külön lefordítjuk, keletkezik két éktelen nagy bináris programunk, különböző néven. Ennél sokkal jobb megoldás, ha egy közös, némileg ugyan nagyobb forráskódot fordítunk le egy példányban, a keletkezett bináris végrehajtható program nevét pedig a másik programnévhez láncoljuk. (A program futás közben el tudja dönteni, hogy milyen néven hívták, s az annak megfelelő végrehajtási ágakra futhat.) Látszik, hogy ez esetben csak egy darab nagyméretű program foglal helyet a lemezen, a linkelés helyigénye elhanyagolható (gyakorlatilag a második név katalógus-bejegyzése, ami tipikusan 16 bájt.)
Szimbólikus link A UNIX rendszer kétféle láncolási eljárást ismer, a merev és a lágy láncolást (hard and soft link). A merev láncolás legfőbb jellemzője az, hogy a láncolt fájl teljesen egyenértékű az eredetivel, hiszen egyazon inode-ra mutat két egyenértékű katalógus bejegyzés, amelyek között nem lehet különbséget tenni. i-node: adatsruktúra, amely alapvető információkat tárol a fájlokról, könyvtárakról, vagy más objektumokról a fájlrendszerben. A merev láncolás csak egyedi fájlok linkelését teszi lehetővé, katalógusokét nem. A "lágy láncolás", vagyis a szimbolikus link viszonylag késői újítás a UNIX-ban, a SunOS operációs rendszerből terjedt el, de mára már szabványos eleme a UNIX-nak. Lényege, hogy a szimbolikus link katalógus bejegyzése nem a fájl inode-jára mutat, hanem egy olyan különleges fájlra, ami a láncolt fájl nevét tartalmazza.
Szimbólikus link Mire jó? Szimbolikus link alkalmazásával egész katalógusokat láncolhatunk át egy paranccsal egy másik fájlrendszerbe, ami gyakran hasznosnak bizonyulhat, ha például a jobb terhelésszétosztás miatt újra kell strukturálni a fájlrendszert, és egész alkalmazáscsoma-gokat helyezünk át más fájlrendszerbe, ugyanakkor mindezt a felhasználó számára észrevétlenül akarjuk végrehajtani.
ln Link létrehozása Ln [opció] CÉL [linknév] -f - Felülírja a létezőt, ha van -i - Kérdez felülírás előtt -s - szimbolikus link -v - kiírja az eredményt ln -s /bin parancsok Hozz létre a személyes könyvtáradban egy „parancsok” szimbolikus linket a /bin könyvtárra! Lépj a „parancsok” könyvtárba! Add ki a pwd parancsot. Mit tapasztalsz?
Ln parancs példák (merev link) $ echo Budapest>fovaros $ ls -l összesen 4 -rw-r--r-- 1 abonyita iszmtcs 9 okt 2 18.35 fovaros $ ln fovaros lakhely összesen 8 -rw-r--r-- 2 abonyita iszmtcs 9 okt 2 18.35 fovaros -rw-r--r-- 2 abonyita iszmtcs 9 okt 2 18.35 lakhely $ cat fovaros Budapest $ cat lakhely $ rm fovaros $ ls -al összesen 12 drwxr-xr-x 2 abonyita iszmtcs 20 okt 2 18.37 . drwx------ 26 abonyita iszmtcs 4096 okt 2 17.12 .. -rw-r--r-- 1 abonyita iszmtcs 9 okt 2 18.35 lakhely
Merev (hard) link Merev link esetén a linkelt állomány és az eredeti állomány i-nodeja megegyezik $ ls -il összesen 12 275617933 -rwx------ 2 abonyita iszmtcs 7 okt 2 18.41 fovaros 275617933 -rwx------ 2 abonyita iszmtcs 7 okt 2 18.41 lakhely 275617934 -rw-r--r-- 1 abonyita iszmtcs 7 okt 2 18.44 valami
Ln parancs példák (szimbolikus link) $ echo Budapest>fovaros $ ln -s fovaros lakhely $ ls -al összesen 12 drwxr-xr-x 2 abonyita iszmtcs 34 okt 2 18.47 . drwx------ 26 abonyita iszmtcs 4096 okt 2 17.12 .. -rw-r--r-- 1 abonyita iszmtcs 9 okt 2 18.46 fovaros lrwxrwxrwx 1 abonyita iszmtcs 7 okt 2 18.47 lakhely -> fovaros $ echo London >fovaros $ cat lakhely London $ rm fovaros $ ls -l összesen 0 lrwxrwxrwx 1 abonyita iszmtcs 7 okt 2 18.47 lakhely -> fovaros cat: lakhely: Nincs ilyen fájl vagy könyvtár
Gyakorlás Hozz létre egy apple nevű állományt ugyanezzel a tartalommal Készíts egy merev linket az apple állományra alma néven! Milyen inode-al szerepel a két állomány? Készíts egy szimbolikus linket az alma állományra, gyumolcs néven! Írd felül az alma állomány tartalmát a következőre: jonatán Írasd ki a képernyőre az apple és gyumolcs tartalmát Töröld ki az apple állományt! Írasd ki a képernyőre az alma és gyumolcs tartalmát Töröld le a szimbólikus linket! 1. echo apple>apple 2. ln apple alma ls –i * ln -s alma gyumolcs echo jonatán >alma Cat apple; cat gyumolcs
Jogosultságok Jogok Felhasználó / Tulajdonos (user) Unix rendszerek alatt 3 fajta jog létezik: Olvasási (Read), Írási (Write), és Futtatási (eXecute). És 3 csoport: tulajdonos (User), a tulajdonos csoportja (Group) és világ más része (Other) Minden csoporthoz a megadni kívánt jogok számait össze kell adni, majd a kapott számokkal futtatni a chmod parancsot. Pl. ha azt akarjuk, hogy az enyém.doc fájlal én, az alkotója mindent megtehessek, de más csak olvasni tudja, akkor a következő számot kell a chmod után írni: 744 Jogok Felhasználó / Tulajdonos (user) Felhasználó csoportja (Group) Világ, mindenki más (Other) Olvasás (read) Írás (write) Futtatás (execute) 4 2 1 Read: fájl esetén az olvasást, könyvtár esetén tartalmának listázását jelenti Write: fájl esetén az írást, könyvtár esetén tartalmának törlését jelenti eXecute:fájl esetén futtatási jogot, könyvtár esetén a könyvtárba lépés jogát jelenti.
chmod Módosítja a fájl elérési jogait chmod [opciók] MÓD fájl r - Olvasási engedély w - Írási engedély x - Futtatási engedély + - Hozzáadja az engedélyt - - Elveszi az engedélyt = - a megadott jogokkal felruházza az adott felhasználót, csoportot TULAJ_CSOPORT_VILÁG RWX (4+2+1) (olvasás, írás, futtatás)
chmod – 2. u - , u+ Engedélyek beállítása a fájl, könyvtár tulajdonosának g - , g+ Engedélyek beállítása a csoport számára o -, o+ Engedélyek beállítása a többi felhasználónak a-,a+ Az összes fenti egyben (ugo) -R Rekurzívan -v Mindig van visszajelzés -f Soha nincs visszajelzés 777 Mindenkinek minden jog
chmod példák Parancs magyarázat chmod +r fajl olvasás jog mindenkinek chmod -x fajl végrehajtási jog eltávolítva mindenkitől chmod u=rw,go= fajl olvasás és írás jog a felhasználónak, a csoporttól és a többi felhasználótól eltíltva minden chmod +rw fajl olvasás és írásjogot adtunk mindenkinek. chmod -R u+w,go-w docs/ megváltoztatja a docs könyvtár összes állományának a jogait, úgy hogy ezek tartalma olvasható lesz a felhasználónak, a csoporttól pedig elveszi az írás jogot. chmod 0 file eltávolítja az összes jogot mindenkitől chmod 664 file olvasás és írás jogot ad a felhasználónak, és a csoportnak, a többinek pedig csak olvasás jogot. chmod 755 file ekvivalens a u=rwx (4+2+1),go=rx (4+1 & 4+1). find path/ -type d -exec chmod a-x {} \; eltávolítja a végrehajtásjogot az összes könyvtártól (ha '-type f'-et használunk akkor az állományokra vonatkozik).
Feladat Hozz létre a személyes könyvtáradban egy „titkos.txt” fájlt , amely a nevedet tartalmazza! Vond meg magadtól az olvasási jogot! Próbáld meg elolvasni a cat vagy a more paranccsal! Állítsd vissza az olvasási jogodat! Vond meg magadtól az írási jogot, de mindenki más kapja meg! Próbálj meg a cat >>titkos.txt paranccsal hozzáfűzni a fájlhoz! Add vissza magadnak az írási jogot, a „többiektől” vedd el!
chown Módosítja a fájl tulajdonosát és csoportját Chown [opciók] TULAJ[:CSOP] file -R - Rekurzívan -v - Mindig van visszajelzés -f - Soha nincs visszajelzés --from=MT[:MCS] - Csak a mostani tulajnál vált
chgrp Módosítja a fájl csoportját Chgrp [opciók] [CSOPORT] file -R - Rekurzívan -v - Mindig van visszajelzés -f - Soha nincs visszajelzés
Chown, chgrp példa $ chgrp staff file1 $ ls -l file1 -rw-r-xr-x 1 demo staff 18 Aug 23 20:42 file1 $ chown janos file1 -rw-r-xr-x 1 janos staff 18 Aug 23 20:42 file1 E két parancs használatakor egyet ne felejtsünk: ha egy állomány tulajdonosi jogait átadtuk, akkor a továbbiakban azt mi nem vehetjük vissza, csak az új tulajdonos dönthet így.
find Keresés Find [útvonal] [kifejezések] -name ”*.jpg” - *.jpg nevű fájlokat keres -perm 777 - 777-es joggal rendelkezők -size 10k - 10 kilobyte-nál nagyobb -exec command - Parancsot futtat {} - Az éppen aktuális fájl nevét helyettesíti \; - Lezárja a parancsot … find /etc -name "*mod*" Keresd meg a /etc könyvtár „mod” karakterláncot tartalmazó nevű fájljait (és könyvtárait)! find /etc -name "*mod*"
find Írassuk ki az aktuális könyvtárban lévő összes html kiterjesztésű file utolsó 2 sorát. find . -name "*.html" -exec tail -2 {} \;
grep Karaktersor (szó vagy minta) keresése egy vagy több fájlban: grep [mit] [fájlnév] grep Karacsony /etc/motd.karacsony Keresd meg a /etc/motd.karacsony fájlban a ‘Karacsony’ karaktersort tartalmazó sorokat!
SZÖVEGSZERKESZTÉS
VI Szerkesztőmód Parancsmód felülírás karaktertörlés: ‘X’ Valamennyi UNIX rendszeren megtalálható. Szerkesztőmód Parancsmód ‘Esc’ felülírás ‘SHIFT+R’ kilépés: ‘Esc’ karaktertörlés: ‘X’ sortörlés: ‘dd’ kivágás: ‘V’-’D’ másolás: ‘V’-’Y’ beillesztés: ‘P’ keresés: /valami Keresés/csere: :%s/mit/mire/g mentés: :w fájlnév kilépés: :q kilépés mentés nélkül: :q! ‘i’, ‘o’, ‘a’ Hozz létre egy egyszerű html-oldalt a publikus könyvtáradban, majd jelenítsd meg egy böngészőben! http://www.szabilinux.hu/vi/index.html
Vi feladat Hozz létre a VI segítségével egy naptar nevű állományt, ami az aktuális hét napjainak dátumát tartalmazza: Pl. 2012.október 3: 2012.október 4: 2012.október 5: 2012.október 6: 2012.október 7: Használd a másolás-beillesztés funkciót is! A keresés/csere funkcióval változtasd meg a hónap nevét, a következő hónap nevére! (október =>november)
pico
pico létrehozni vagy szerkeszteni kívánt fájl nevét írjuk be a parancs után: pico ujfajl.txt A program parancsai folyamatosan láthatóak a képernyő alján. A "^" jel azt jelenti, hogy a billentyűt a ctrl gomb nyomva tartása mellett kell használni. Ha ez esetleg a terminál típusa miatt nem működne, akkor a dupla ESC gombnyomást is alkalmazhatjuk helyette.
Pico használata
Pico használat Kijelölés Megadjuk a kezdő karaktert, (Ctrl+^) majd a kurzormozgató billentyűvel kijelöljük a szöveget. Utána használhatjuk a kivágás (ctr+k), és beillesztés (ctrl+u) funkciót. (megjegyzés: a ctrl+^ angol billentyűzeten a ctrl+shift+6 billentyűn van)
Pico feladat Lépj be a public/public_html könyvtárba! Hozz létre a pico-val egy linkek.html állományt! A tartalma legyen a következő: Nézd meg az eredményt a böngészőprogramban! Másold le háromszor a linket tartalmazó sort, és módosítsd úgy,hogy általad kedvelt oldalakra mutasson! Ments el az állományt, és lépj ki a programból! <html> <head> <title>Linkek</title> </head> <body> <h1>Kedvenc linkjeim</h1> <p><a href="http://www.elte.hu">ELTE weboldala</a></p> </body> </html>
Pico feladat - folytatás Irányítsd át a who parancs eredményét a felh.txt állományba! Nyisd meg a pico-ban a linkek.html állományt! A linkek után illeszd be az alábbi sorokat: <p>Most az alábbi felhasználók vannak bejelentkezve:</p> <pre> </pre> A <pre> és </pre> tagek közé olvasd be a felh.txt állomány tartalmát! Mentsd el az állományt és nézd meg az eredményt a böngészőprogramban! Ha az ékezetes betűk nem jelennek meg helyesen, a dokumentum <head> és </head> tagje közé helyezd el a következő sort: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" > Nézd meg az eredményt!.
joe
Joe használata A joe egy elterjedten használt szövegszerkesztő. Komolyabb feladatokra is alkalmas, mint a pico. Egyszerre több állományt is megnyithatunk vele különböző opciókkal. Komolyságát a parancsok számából is láthatjuk, amelyet a <ctrl>-k-h gombokkal hozhatunk elő és tüntethetünk el. Itt is "^" jel azt jelenti, hogy a billentyűket a ctrl gomb nyomva tartása mellett kell használni.
Joe használata
Midnigth Commander (mc) http://szerver3.moragimi.sulinet.hu/Informatika/linux/mc.html
Midnigth Commander (mc) F1 – Súgó F3 – Megtekintés F4 – Szerkesztés F5 – Másolás F6 – Átnevezés / mozgatás F7 – Könyvtár létrehozása F8 – Törlés F9 – Menü F10 – Kilépés
Midnigth Commander (mc) Lényegesebb menüpontok Left / Right Listing mode - Könyvtárlista Info - Az állomány főbb tulajdonságai Tree – Könyvtárszerkezet Sort Order – Rendezési beállítások Filter – Szűrők (nézet) FTP link – FTP kapcsolat Rescan - frissítés
Midnigth Commander (mc) File menü chmod – Jogosultságok beállítása Link és Symlink: Linkek és szimbolikus linkek kezelése chown – Tulajdonos beállítása Select / unselect group, reverse selection - kijelölés
Midnigth Commander (mc) Command menü Directory tree: könyvtárfa lekérése Find file: fájl keresés Compare directories: könyvtárak összehasonlítása Show directory sizes: Könyvtárak méreteinek megjelenítése
Feladat – mc Hozd létre az alábbi alkönyvtár struktúrát: Mc állat tigris informatika egér billentyűzet Az egér könyvtárban helyezz el egy eger.txt állományt, egérke tartalommal. (SHIFT+F4) Az egér könyvtárat másold az állat könyvtárba Az állat/egér/eger.txt állományra állítsd be, hogy a tulajdonosnak legyen rwx joga, a többieknek pedig semmilyen. Készíts egy hard linket állat/egér/eger.txt állományra, az informatika könyvtár gyökeréből, mouse néven! Nézd meg a mouse tartalmát!
PROCESSZEK / FOLYAMATOK
Folyamat az operációs rendszerben futó program egy példánya Felmerülő kérdések Időosztás (time slice), a folyamatok egymás utáni futtatása, az ütemezés megoldása párhuzamos futtatás, több felhasználó egyidejűleg a gépen futó programokkal dolgozhat (multiuser munkamód) a prioritások kezelése
Folyamatok Folyamatok vezérelhetőek is Elindíthatóak: előtérben, háttérben Lekérdezhetőek Leállíthatóak Időzíthetőek Priorizálhatóak A Unix/Linux többfeladatos és többfelhasználós rendszer
Futó folyamatok lekérdezése ps ps aux top PID - a folyamat azonosítója TTY - a vezérlõ terminál azonosítója, jelen esetben ez a ttyp0 STAT - a folyamat állapota TIME - a processz által eddig elhasznált processzor idő
A folyamatok fontosabb állapotai a UNIX/Linux rendszerek alatt Az állapot neve A ps parancs betűjele Leírás Running R A folyamat fut. Parancssoros munka esetében ide soroljuk azt az esetet is amikor a folyamat még nem fut, de futásra kész. Ilyenkor a folyamat arra vár, hogy processzoridőhöz jusson. Interruptible Sleep S A folyamat várakozik valamilyen eseményre vagy erőforrásra és megszakítható egy jelzés által. Például egy számlálóra (sleep) vagy valamilyen Be/Ki műveletre. Uninterruptible Sleep D és nem szakítható meg jelzés által. Általában ez az állapot valamilyen be/kimeneti eszközre való várakozást jelent. Stopped vagy Traced T Fel van függesztve és áll. Ide kerül egy folyamat ha a terminálról futtatva lenyomjuk a ^Z billentyűt és a háttérbe dobjuk. http://www.ms.sapientia.ro/~lszabo/oprendszer1/doc/11_folyamatok.pdf
Folyamatazonosító (process id vagy pid) A folyamatok azonosítására szolgáló egész szám Folyamatot a UNIX alatt csak egy másik folyamat indíthat. Így minden folyamat egy másik folyamat gyermeke, ezért használatosak a szülő folyamat és gyermek folyamat elnevezések. ps –ef f {fa struktúrában jeleníti meg}
Feladat (job) A terminállal való munka során egy parancssorral egyszerre akár több folyamatot indíthatunk. tail -20 lista.txt | sort | uniq A fenti parancs 3 folyamatot indít és köztük csővezetékeket hoz létre. A felhasználó által elindított folyamatok csoportját job-nak nevezik. Jobs http://www.ms.sapientia.ro/~lszabo/oprendszer1/doc/11_folyamatok.pdf
előtér (csak 1 folyamat) Folyamatok kezelése parancs & programindítás előtér (csak 1 folyamat) ‘CTRL+Z’ fg %jobnumber fg %jobnumber kill -STOP pid háttér – running háttér – stopped bg %jobnumber ‘CTRL+C’ kill %jobnumber done kill %jobnumber terminated
Programok indítása Előtérben Háttérben: <parancsnév> & sleep 10 Háttérben: <parancsnév> & sleep 20& nohup <parancsnév>: A program futása nem szakad meg a felhasználó kijelentkezésekor
Processzek befagyasztása, folytatása Futó folyamat befagyasztása: CTRL + Z vi CTRL + Z ps aux Előtérbe helyezés: fg [jobazonosító]% Háttérben folytatás: bg [jobazonosító]%
Processzek kezelése jobs: belső feladatazonosítók, állapotok lekérése kill: folyamatok leállítása Feladat: Lépjünk be két terminál kapcsolattal, egyik ablakban indítsunk el egy szöveg-szerkesztőt, majd ezt lőjük ki a másik ablakból!
Processz erőforrás felhasználás time <parancsnév>: erőforrás felhasználási statisztika pl.: time finger strace <parancsnév>: rendszerhívások megjelenítése. Hibakereséshez pl: strace –p PID pl.:strace ls pl:strace –p 16543 - a figyelt folyamat azonosítója
Eseménykezelés (csapda) Trap A jelek elfogására és kezelésére szolgál a trap parancs, amelynek általános alakja a következő: trap 'parancsok' jelek neve vagy száma A trap a felsorolásban megadott jeleket elfogja, és hatásukra az egyszeres idézőjelek (aposztrófok) között megadott utasítássort hajtja végre. Feladat: A ctrl+c leütésére írjuk ki: Szia! Megoldás: trap ’echo Szia 2 Feladat: Szüntessük meg ezt a csapdát, „eseménykézelést”!: Megoldás: trap ’’ 2
Eseménykezelés (csapda)
Eseménykezelés (csapda) Feladat: A ctrl+c leütésére írjuk ki: Szia! Feladat: Szüntessük meg ezt a csapdát! Megoldás trap ’echo Hajrá ELTE!’ 2 trap ’’ 2 Feladat: A ctrl+c leütésére írjuk ki: Szia! Megoldás: trap ’echo Szia’ 2 Feladat: Szüntessük meg ezt a csapdát, „eseménykézelést”!: Megoldás: trap ’’ 2
Köszönöm a figyelmet!