linux parancssor
TRANSCRIPT
2015/12/08 21:23 1/107 Linux parancssor
SzitWiki - http://szit.hu/
< Linux
Linux parancssor
Szerző: Sallai AndrásCopyright © Sallai András, 2009, 2010, 2011, 2012, 2013, 2014, 2015Licenc: GNU Free Documentation License 1.3Web: http://szit.hu
Bevezetés
Az alábbi leírás „rövid” szösszenet a Linux parancssor megismeréséhez. A leírás elolvasása nem elégaz anyag elsajátításához. Minden parancsot folyamatosan ki kell próbálni. Az egyes parancsoknakkeresd meg azon kapcsolóit is, amelyeket ez az írás nem tárgyal. A próbálgatások, gyakorlásokvisznek a tanulmányainkban előre.
Ez az írás a Linux alapú számítógépes operációs rendszerek parancssori lehetőségeinekbemutatásával foglalkozik. Az ismertetésre kerülő parancsok nagy része, bármely unix alapúrendszeren használható. A parancsokat Debian GNU/Linuxon mutatom be.
A gyakorláshoz szükséged lesz egy Linuxra. Egy „szegényesebb” linuxos rendszert (ez nem Debian) akövetkező helyen online is kipróbálhatsz, ha csak parancssort szeretnél:http://s-macke.github.io/jor1k/ Ez a Linux egy JavaScriptben írt számítógép-emulátoron fut.
Előrelépést jelenthet, ha letöltesz egy Live CD/Live DVD képfájlt. Ehhez a Knoppix vagy a Linux Mintrendszert ajánlom. Ki kell írnod egy DVD-re a letöltött képfájlt, majd indítsd a rendszert a DVD-ről. ADVD-ről induló rendszert – amely telepítés nélkül használható – Live rendszernek nevezzük. A Liverendszer nem bántja a merevlemezre telepített rendszered. A Live rendszeren mentett állományaidviszont nem maradnak meg, hacsaknem pendrivera mentesz.
A harmadik lehetőség, hogy telepítesz egy Linuxot. Ha számítógépen, ahova telepíteni szeretnéd aLinuxot már van egy rendszer, akkor ajánlom, hogy először egy virtuális számítógépre telepítsLinuxot. Ide már mehet például a Debian GNU/Linux
Ha már nem okoz gondot a particionálás a telepítőben, vagy egy üres merevlemez állrendelkezésedre, vagy az adatok nem számítanak az adott gépen, telepítsd fel saját Linuxodat.
A leírásokban nem használok fájlkezelő programot, csak tisztán parancssort. Fájlkezelő ugyan van, deelőbb tanuljunk meg dolgozni fájlkezelő nélkül. Így bármely unixon és Linuxon boldogulni fogunk.
Gyakorolj! Ha már gyakoroltál, akkor még jöhet egy kis gyakorlás.
Azonosítás
Belépés
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
A Linux indulása után várja, hogy bejelentkezzünk. Ehhez egy várakozási jelet jelenít meg:
login:
A login után kell beírnunk a felhasználónevünket.
login: joska
Ha a rendszerben a mi felhasználónevünk a joska, akkor azt a login: után beírjuk. Egy <Enter>leütésével nyugtázzuk. A felhasználónév beírása után a password: várakozási jelet látjuk, amely ajelszavunk beírásra szólít fel:
password:
A jelszó gépelésénél a képernyőn nem jelenek meg a begépelt karakterek.
Jelszó megváltoztatása
Ha kapunk egy rendszerhez hozzáférést, akkor az első dolgunk szokott lenni a jelszó megváltoztatása.Ezt a „passwd” parancs kiadásával tudjuk megtenni:
passwd
A felhasználó a passwd paranccsal megváltoztathatja saját jelszavát. A parancs először bekéri ajelenlegi jelszót, majd kétszer az új jelszót.
Rendszergazdaként, azaz a root felhasználóval mások jelszavát is megváltoztathatjuk. Ehhez adjukmeg a kívánt felhasználónevet a passwd parancs paramétereként.
A Linuxos rendszer úgy van összeállítva, hogy a rendszergazda nem tudja megmondani számodra ajelszavadat, ha már megváltoztattad. Ha elveszett, akkor legfeljebb újat tud adni.
A joska felhasználó jelszavának megváltoztatása
Ha te magad is rendszergazda vagy a Linuxban, mert mondjuk most telepítetted, akkor például ajoska felhasználónak a következő módon tudod megváltoztatni a jelszavát:
passwd joska
Ez a parancs persze csak rendszergazdaként belépve fog sikerülni, vagy ha te vagy a joskafelhasználó.
Kijelentkezés
Ha valahova bejelentkeztünk, akkor ki is kell tudnunk jönni onnan. Nézzük, hogyan lehet szabályosankijelentkezni a rendszerből.
2015/12/08 21:23 3/107 Linux parancssor
SzitWiki - http://szit.hu/
A rendszerből kijelentkezni a logout paranccsal lehetséges:
logout
A kijelentkezés további parancsokkal is lehetséges. Az egyik az exit parancs, a másik egybillentyűkombináció: Ctrl+D.
A linuxos rendszerekben a Ctrl+D billentyűkombináció fájlvége jel küldésére is használatos néhányparancs illetve, program esetén. Ha ilyen programmal dolgozunk, előfordulhat, hogy csak fájlvégejelet akartunk küldeni, de véletlenül kétszer nyomtuk meg a Ctrl-D billentyűkombinációt, így azonnalki is jelentkeztünk.
Egy Linuxos rendszeren ha grafikus felületet is telepítettünk, akkor lehetőség van a grafikusbejelentkezésre is, de mi most csak parancssorral foglalkozunk ebben a részben.
Megjegyzés
Ha valaki feltelepítette a grafikus felületet és szeretne parancssorra átkapcsolni, a következőket kelltudnia. Egy linuxos rendszer alapértelmezetten 6 azaz hat darab karakteres (vagy konzolos) felületenad belépési lehetőségeket. Ezeket terminálnak hívjuk. Vagyis van hat darab terminálunk. Indulás utánaz 1-s terminálon vagyunk. A többi terminált az F2, F3, stb. funkcióbillentyűkkel érhetjük el, egészenF6-ig, a lenyomott „Alt” billentyű mellett. A második terminál tehát ezzel a billentyűkombinációvalérhető el: Alt+F2. A harmadik: Alt+F3, stb. A Linuxos rendszerek lehetővé teszik ugyancsak hat darabgrafikus felülete elindítását is. A grafikus felület és egy XDM, KDM vagy GDM telepítése után a hatgrafikus felületből egy automatikusan elindul. Ha karakteres terminálban vagyunk ezt az Alt+F7billentyűkombinációval érhetjük el. Grafikus felületről karakteresre kapcsolás esetén kell a Ctrlbillentyű is. Egyes karakteres terminálra grafikus felületről tehát így kapcsolunk: Ctrl+Alt+F1.Ugyanígy érjük el a többit is. Persze ha már karakteres felületen vagyunk, akkor elég az Alt billentyű.
Grafikus felületen egy kis ablakban is indíthatók úgynevezett virtuális terminálok. Ebből végtelensokat indíthatunk. Ha GNOME grafikus környezetet telepítettünk, akkor a virtuális terminálunk lehetrendszergazdai és felhasználói. Elérésük:
Alkalmazások → Kellékek → TerminálAlkalmazások → Kellékek → Rendszergazda terminál
Gyakorlat
Mit vár a rendszer, ha a következőt írja: login:Milyen paranccsal tudjuk megváltoztatni a jelszavunkat?Milyen utasításokkal léphetünk ki a rendszerből?Ha van grafikus felület telepítve, hogyan tudunk konzolos felületre váltani?Milyen grafikus bejelentkezési felületek vannak?Hogyan tudunk egy újabb felületen bejelentkezni konzolt használva?A linuxos rendszergazda ki tudja deríteni a felhasználók jelszavát?Töltsön le egy linuxos Live CD-ét
Például KnoppixDerítse ki, milyen felhasználónévvel lehet belépni a rendszerbe
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
Várakozási jel
A várakozási jelről
A sikeres felhasználói azonosítás után a Linux parancsot vár. Ez egy várakozási jellel adja értésünkre.A várakozási jel felhasználók és rendszergazdák számára is más. A felhasználók számára egydollárjelet ($) jelenít meg a rendszer, a rendszergazdának pedig egy kettős-keresztet (#). Avárakozási jel ki van bővítve némi információval. Tartalmazza a bejelentkezett felhasználónevet, agép nevét és az aktuális könyvtárat.
joska@iskolazo:~$
Felhasználó várakozási jele
joska@iskolazo:~$
Ez a fajta várakozási jel a Debian GNU/Linuxra jellemző, de általában hasonló a többi linuxosrendszerben is. A felhasználónevet egy szeparátor követi (@). A gépnevet szintén, amely egykettőspont (:). A kettőspont után egy tilde karakter (~) látható, amely a felhasználó saját könyvtárátjelképezi. A joska felhasználó esetében ez a /home/joska. A parancsokat a Bash nevűparancsértelmező várja, amelyre a dollárjel is utal.
Root felhasználó promptja
A root felhasználónak az alapértelmezett várakozási jele eltérő. A várakozási jelben az utolsó karakteregy kettős kereszt („#”).
root@iskolazo:~#
A rendszergazda, azaz root felhasználó is a bash parancsértelmezőt használja, viszont ő a rendszerteljes jogú felhasználója. Éppen ezért ne használjuk felhasználói feladatokra. Csak akkor használjukezt a hozzáférést, ha valóban szükség van a rendszergazdai jogokra.
A PS1
Minden operációs rendszer úgynevezett változókban tárol információkat a programok számára. Mivelezek a változók a programok környezetéből elérhetők, környezeti változóknak is hívjuk őket. A PS1 isegy ilyen környezeti változó. Bármely környezeti változónak a tartalmát megtekinthetjük az echoparancs segítségével. Ilyenkor a környezeti változó neve elé egy dollárjelet kell írni: $PS1. Az echoparanccsal ekkor így jeleníthetjük meg:
echo $PS1
2015/12/08 21:23 5/107 Linux parancssor
SzitWiki - http://szit.hu/
Gyakorlat
Mit jelent a várakozási jel?Debian GNU/Linux rendszeren mi a felhasználók alapértelmezett várakozási jele?Mit jelent a várakozási jelben a „~” karakter?A Debian GNU/Linux rendszerben mi a root felhasználó alapértelmezett várakozási jele?Milyen környezeti változó tartalmazza a várakozási jel beállításait?Hogyan épül fel a Debian GNU/Linux felhasználói várakozási jel?
Környezeti változók
Minden operációs rendszerben léteznek úgynevezett környezeti változók. Ezek az operációsrendszerről vagy programjainkról tárolnak információkat. A környezet változók a rendszer indulásaután automatikusan beállításra kerülnek.
A környezeti változók megtekintése:
printenv
Paraméter nélkül az összes környezeti változót kiírja.
Megadhatjuk melyik változót szeretnénk:
printenv PATH
vagy
printenv HOME
vagy
printenv SHELL
A környezeti változók lekérdezhetők a set paranccsal is:
set
A kimenet általában túl fut a képernyőn. A kimenetet képernyőoldalakra tördelhetjük a lessparanccsal:
set | less
A grep parancs segítségével, megmondhatjuk, hogy csak azokat a sorokat szeretném látni, aholszerepel, például a PATH szó:
set | grep PATH
Magunk is beállíthatunk környezeti változókat:
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
export TEST_VAR=hello
Nézzük meg:
set | grep TEST_VAR
A változó megszüntetése:
unset TEST_VAR
Próbáljuk ki a fenti parancsokat.
Egy változót beállíthatunk az export parancs nélkül is. Így is beállítható a TEST_VAR változó:
TEST_VAR=hello
Akkor mi a különbség? Ha használom az export parancsot, akkor az aktuális parancssorból indítottfolyamatok is látni fogják a TEST_VAR változót. Ha nem használom az export változót, akkor ezek afolyamatok nem látják. Próbáljuk ki:
BARAT_VAR=Feri
Ellenőrizzük, hogy létezik-e a változó:
echo $BARAT_VAR
Létezik, műküdik. Most indítsunk egy másik terminált. Lehet xterm vagy mate-termianl, vagy amirendelkezésünkre áll:
xterm
Nézzük meg ebben a terminálban a BARAT_VAR változó tartalmát:
echo $BARAT_VAR
Semmi. Most lépjünk ki az új terminálból, majd futtassuk a parancsot újra, de most az exportparanccsal:
export BARAT_VAR=Feri
Indítsunk egy xterm terminált:
xterm
Majd ebben a terminálban nézzük meg a változónkat:
echo $BARAT_VAR
Itt is látszik a tartalma.
2015/12/08 21:23 7/107 Linux parancssor
SzitWiki - http://szit.hu/
A PS1 környezeti változó tartalma
echo
A PS1 környezeti változó megismerése előtt nézzük meg az echo parancs használatát. Az echo egyszöveget ír a képernyőre.
echo "Helló Világ!"
Az echo a szöveg végén egy sortörést is a képernyőre küld, amiről lebeszélhető a -n kapcsolóval.
echo -n "Helló Világ!"
Különleges karakterek is engedélyezhetők a -e kapcsolóval:
echo -e "Helló\nVilág!"
Vegyük észre ez utóbbi példánkban a „\n” különleges karaktereket. Ez például sortörést jelet küld aképernyőre.
Különleges karakterek táblázata:
Karakter Jelentés\a csengőhang konzolos felületen\b egy karakter törlése visszafele\n sortörés\r kocsi vissza\c nem ír ki újsor karaktert\t vízszintes tabulátor\v függőleges tabulátor\\ backslash
\nnn a karakter ASCII kódja nnn (oktálisan)
A PS1 tartalma
Fentebb már láttuk, hogy a PS1 környezeti változó tartalmát így tudjuk megnézni:
echo $PS1
Azt is láttuk, hogy a várakozási jel ki van egészítve felhasználó- és gépnévvel, azt követően pedig azaktuális könyvtárral. A PS1 környezeti változóban van leírva ez a forma. Ha megnézzük a fentiparancs eredményét, akkor ehhez hasonlót kell látnunk Debian GNU/Linux 6, 7 és 8 verzió esetén:
Konzolon:
${debian_chroot:+($debian_chroot)}\u@\h:\w\$
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
Ha grafikus felületen indítottunk egy virtuális terminált, akkor ez egy kicsit másként néz ki:
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$
Ezek a beállítások biztosítják a várakozási jel fentiek szerinti megjelenítését.
X terminál színezése
Természetesen megadhatunk más beállításokat is. A környezeti változókat mindig az exportparanccsal szokás beállítani, mert ez teszi lehetővé, hogy más folyamatok indítása után is érvényeslegyen a beállítás. Az alábbi beállítás a terminál színezését mutatja be:
exportPS1='${debian_chroot:+($debian_chroot)}\[\033[01;34m\]\u@\h\[\033[00m\]:\w\$'
Vegyük észre, hogy az export parancs után írt PS1 környezeti változó elé nem írtunk „$” karaktert.Fentebb említettük, hogy erre csak akkor van szükség ha hivatkozunk rá, tehát példának okárétkiíratjuk azt.
Egyszerű prompt
A fenti prompt nagyon hosszú tud lenni ha van egy nagyon hosszú könyvtárútvonalunk. Ilyenkorbeállíthatunk egy egyszerű várakozási jelet, amely csak egy dollárjelet meg egy szóközt jelenít meg:
export PS1="$ "
Akkor használjuk, ha az útvonal nagyon hosszú szeretnénk egy egyszerű várakozási jelet.
Ezek a beállítások persze nem véglegesek, újraindítás vagy ki-, és bejelentkezés után a környezetiváltozó tartalma eredetire visszaáll.
Ez a várakozás jel újraindítás után azonban nem érvényes. Ha újraindítás után is szeretnék látni,akkor a /home/joska/.bashrc állomány végére írhatjuk a következő sort
export PS1='$ '
Ez is szép megoldás:
export PS1="Irj be egy parancsot: "
Prompt beállítások
\u Felhasználónév\h Hostnév\w Aktuális könyvtár
2015/12/08 21:23 9/107 Linux parancssor
SzitWiki - http://szit.hu/
Prompt a felhasználónév, dollárjel és egy szóköz:
export PS1="\u\$ "
Prompt a hostnév, dollárjel és egy szóköz:
export PS1="\h\$ "
Prompt az aktuális könyvtár, dollárjel és egy szóköz:
export PS1="\w\$ "
De keverhetjük:
export PS1="\u\h\$ "
Így viszont nincs elválasztó kettő között. Szokásos szeparátor a „@” karakter„.
export PS1="\u@\h\$ "
Gyakorlat
Mire való az echo parancs?Milyen különleges karaktereket használhatunk az echo paranccsal?Hogyan állíthatjuk be, hogy a várakozási jel a felhasználónévből és egy dollárjelből álljon?Hogyan állíthatjuk be, hogy a várakozási jel a számítógép nevéből és egy dollárjelből álljon?Mit jelent az útvonalban a ”~„ karakter?
Felhasználókról
Magamról
Ha várakozási jel nem tájékoztat arról, milyen néven léptünk be, akkor használjuk a whoamiparancsot.
Ki vagyok én?
whoami
Ez a parancs kiírja a felhasználónevünket. Például:
joska
Mit lehet rólam tudni? Néha azt is szeretnénk tudni, milyen csoportokban van benne a felhasználónk.Ebben segít az id parancs.
id
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
A kimenet ehhez hasonló lehet:
uid=1000(joska) gid=1000(joska) csoportok=1000(joska),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lpadmin),125(sambashare),126(vboxusers),1002(teachers)
Jóval több információt ad. Megmondja milyen csoportokba tartozunk felhasználóként.
Az id parancs az -un kapcsolóval úgy viselkedik mint a whoami parancs:
id -un
Mi történt a rendszerben
Általában szeretnénk tudni ki volt utoljára bejelentkezve, vagy mikor használták utoljára ahozzáférésünket (használata-e illetéktelen). Ebben segít a last parancs:
last
A last parancs kimenete persze túl fut a képernyőn, ha már sokszor használtuk a Linuxot. Ezttördelhetjük a more paranccsal így:
last | more
Használhatjuk ebből a célból a less parancsot is:
last | less
A less parancs felületéből egy billentyűvel tudunk kilépni:
Q
Kik vannak bent?
Van amikor csak egyszerűen arra vagyunk kíváncsiak ki van bejelentkezve:
users
Ha azt is szeretnénk látni honnan léptek be, akkor a következő parancsot használjuk:
who
A legtöbb információt azonban a következő parancs adja:
w
Ez a parancs azt is kiírja, a bejelentkezett felhasználók mit csinálnak. Ezért ügyelnünk kell arra, hogy
2015/12/08 21:23 11/107 Linux parancssor
SzitWiki - http://szit.hu/
ha olyan parancsot használunk, amely paraméterként jelszót vár, azt ne futtassuk parancssorbólönmagában. Hagyjuk, hogy a programunk kérje azt be.
Aktuális dátum
Az aktuális dátumot a date paranccsal lehet lekérdezni:
date2013. jan. 8., kedd, 20.39.43 CET
A dátum és időbeállításokról később bővebben is lesz szó.
Gyakorlat
Mi a különbség a „who” és a „w” parancs között?Írja bent.txt fájlba kik vannak éppen a rendszerbe bejelentkezve.Mire való az users parancs?Hogyan nézhetjük, meg mikor volt utoljára újraindítva a rendszer?Hogyan nézhetjük, meg kik voltak bejelentkezve a rendszerbe?Hogyan kérdezzük le az aktuális dátumot?Mire való a „whoami” program?Mit csinál a „id -un” parancs?
Könyvtárkezelés
Aktuális könyvtár
A felhasználók alapértelmezésben, belépés után a saját könyvtárukba kerülnek, amelynek a jele ”~„.Alapértelmezés az is, hogy az aktuális könyvtár megjelenik a várakozásijelben. Ha változtattunkvárakozásijelen és már nem az alapértelmezett könyvtárban állunk, szeretnénk tudni az aktuáliskönyvtár nevét, útvonalastól együtt. Ezt a pwd parancs begépelésével tehetjük meg.
pwd
A joska nevű felhasználó például ezt láthatja, ha a saját könyvtárában áll:
/home/joska
A könyvtár tartalmának listázása
Általában szeretnénk a könyvtár tartalmát listázni. Szeretnénk látni milyen újabb könyvtárakat ésfájlokat tartalmaz. Erre a célra az „ls” parancsot használhatjuk.
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
ls alapok
ls
Az ls kapcsolók nélkül kiadva az aktuális könyvtár tartalmát mutatja. Ha először lépünk be egy linuxoshozzáférésünkre, akkor valószínűleg nem találunk a saját könyvtárunkban állományt.
A rejtett állományok abban különböznek a többitől, hogy ponttal (.) kezdődnek. Ha először lépünk beegy hozzáférésünkre valószínűleg már vannak rejtett fájlok, csak nem látjuk őket. A -a kapcsolóvalmegtekinthetők a rejtett fájlok is:
ls -a
Egy következő kapcsoló a fájlokról a lehető legtöbb információt adja számunkra, ez a -l. Long azazhosszú kimenet kapunk a kapcsolóval:
ls -l
Ha még nincs más könyvtárunk használjuk az „a” kapcsolót is:
ls -la
Az eredmény valami ilyesmi lehet:
összesen 28drwxr-xr-x 3 joska joska 4096 febr 24 23.49 .drwxr-xr-x 4 root root 4096 dec 13 18.37 ..-rw------- 1 joska joska 92 febr 25 00.04 .bash_history-rw-r--r-- 1 joska joska 220 dec 13 18.37 .bash_logout-rw-r--r-- 1 joska joska 3184 dec 13 18.37 .bashrcdrwx------ 2 joska joska 4096 febr 24 23.49 .mc-rw-r--r-- 1 joska joska 675 dec 13 18.37 .profile
Az ls parancsnak megadható, hogy melyik könyvtárat listázza számunkra. A gyökér könyvtár listázásaa következő módon történhet:
ls /
Vagy a /bin könyvtár listázása:
ls /bin
Az ls hosszú kimenete
Fentebb már láttuk a -l kapcsoló hatását (-a -val együtt):
összesen 28drwxr-xr-x 3 joska joska 4096 febr 24 23.49 .
2015/12/08 21:23 13/107 Linux parancssor
SzitWiki - http://szit.hu/
drwxr-xr-x 4 root root 4096 dec 13 18.37 ..-rw------- 1 joska joska 92 febr 25 00.04 .bash_history-rw-r--r-- 1 joska joska 220 dec 13 18.37 .bash_logout-rw-r--r-- 1 joska joska 3184 dec 13 18.37 .bashrcdrwx------ 2 joska joska 4096 febr 24 23.49 .mc-rw-r--r-- 1 joska joska 675 dec 13 18.37 .profile
A kimenet első elemének a neve egy pont (.), a másodiknak pedig két pont (..). Az egy pont magábanaz aktuális könyvtárat jelképezi, a két pont egymás után pedig a szülőkönyvtárat jelképezi.
A parancs először az állományról kiírja, hogy milyen fajta állomány. A Unix alapú rendszerekben akönyvtárak is állományként vannak kezelve, ezért a könyvtárat egy speciális állománynak istekinthetjük. Így van ez a számítógép hardver eszközeivel is. Minden eszköz egy állományként érhetőel a rendszerben. Ezért szoktuk mondani, hogy a Linuxban minden állomány.
- rw-r--r-- 1 joska joska 3184 dec 13 18.37 .bashrcaz állomány
típusa jogok linkekszáma tulajdonos csoport méret utolsó módosítás
dátumaaz állomány
neve
Minden sor 10 darab karakterrel kezdődik. Ebből az első az állomány típusa, a többi kilenc azállományhoz tartozó jogokat mutatja.
A következő szám az állományra mutató linkek számát mutatja. A linkekről lásd később a linklétrehozása című részt.
A linkek száma után az állomány tulajdonosa, amit a csoport neve követ. A Debian GNU/Linuxrendszerekben egy felhasználó létrehozásakor létrejön egy a nevével azonos csoport is. Így lehet,hogy a csoportnév megegyezik a tulajdonos nevével.
A következő szám az állomány mérete. Könyvtárak esetén itt a blokk mérettét látjuk.
Ezt követi az utolsó módosítás dátuma, és végül az állomány neve.
Ha listázott elem egy könyvtár, akkor a méret résznél a fájlrendszerben használatos blokkméret fogmegjelenni.
Könyvtárak és fájlok megkülönböztetése
A könyvtárak és fájlok a -l kapcsolóval megkülönböztethetők, de előfordul, hogy ezen kapcsoló nélkülis szeretném látni, hogy mivel van dolgom. Ezt a -F kapcsolóval tehetem meg:
ls -F
Könyvtár méret
A fájlok és könyvtárak számára legkisebb lefoglalható egység a fájlrendszertől függ. ext3 és ext4fájlrendszeren ez 4096 bytes. Ha futtatjuk a ls -ld parancsot, akkor látjuk az adott könyvtár számáramennyi helyet foglalunk:
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
ls -ld munka
A kimenet pedig ehhez hasonló lehet:
drwxr-xr-x joska joska 4096 márc 9 10.26 munka/
A könyvtár számára a 4096 a kezdeti lefoglalt hely (fájlok számára is). A könyvtárban eltárolt fájloksokasodása után ez nőhet, a következő például 4096 valamelyik szorzatára.
Az alábbi parancs létrehoz néhány fájlt:
mkdir munkacd munka
Hozzunk létre 200 fájlt:
for ((i=; i<200; i++)); do touch aaaaaaaaaa_$i; done
Nézzük meg a ls -ld kimenetét a könyvtáron:
ls -ld .drwxr-xr-x joska joska 12288 márc 12 07.03
Ezek után az aktuális könyvtár listázásánál a méret: 12288
Ne felejtsük el, hogy más fájlrendszernél ezek az értékek eltérhetnek.
Külön bejegyzések
Egy könyvtár vagy fájl listázása esetén a jogok után ritka esetben megjelenhet plusz (+) vagy pont (.)karakter:
drwxr-xr-x+ joska joska 12288 márc 12 07.03 Nev
vagy:
drwxr-xr-x. joska joska 12288 márc 12 07.03 Nev
A plusz (+) karakter arra utal, hogy a fájlhoz (vagy könyvtárhoz) külön ACL bejegyzések is tartoznak.Ha pont (.) karakter van a jogok után, akkor ez SELinux címkék bejegyzésére utal.
Ha mindkettő van (ACL és SELinux címke is), akkor a plusz (+) karakter látszik. További információkaz ACL és az SELinux lapokon.
Könyvtár létrehozása
Könyvtárakat az „mkdir” paranccsal hozhatunk létre. Az mk, a make szóból, a dir pedig a directoryszóból származik. Paraméterként több könyvtárat is megadhatunk. A linuxos, illetve unixos
2015/12/08 21:23 15/107 Linux parancssor
SzitWiki - http://szit.hu/
rendszerek kis és nagybetű érzékenyek. A következő példában szereplő nevek két külön könyvtáratjelölnek:
Informatikainformatika
A parancs szintaxisa:
mkdir konyvtar_neve ...
A mai Linuxok már UTF-8-as kódolást használják a rendszer minden szintjén, így használhatunkékezetes könyvtárneveket is. Ezzel azonban gond lehet, ha más rendszerre visszük a könyvtárainkat.
Egyszerre több könyvtárat is létrehozhatunk, ha szóközzel tagolva felsoroljuk, vagy kapcsos zárójelekközött vesszővel tagoljuk azokat. Utóbbi esetben szóköz nem lehet köztük:
mkdir elso masodik harmadik
mkdir {elso,masodik,harmadik}
Ha útvonalat is megadunk egy könyvtár létrehozásánál a -p kapcsoló segítségével, az útvonalbanszereplő nem létező könyvtárak automatikusan létrejönnek:
mkdir -p /home/joska/munka/dolgozok/human/gizi
Könyvtárcsere
Ha már van könyvtárunk szeretnék „belépni” a könyvtárba.
A példa kedvéért, hozzuk létre saját könyvtárunkban a jarmu nevű könyvtárat. Tegyük fel, hogy asaját könyvtárunk a /home/joska. A „pwd” parancs tanúsága szerint pedig ebben a könyvtárbanállunk. Kiadtuk a könyvtárlétrehozás parancsát:
mkdir jarmu
Szeretnénk az új könyvtárba belépni, vagyis könyvtárat cserélni. Erre a „cd” parancs ad lehetőséget:
cd jarmu
A „pwd” paranccsal ellenőrizzük a könyvtárváltás meglétét.
A „cd” parancs első „c” betűje a „change” szóból van, a „d” betű pedig a „directory” szóból.
Ha jól dolgoztunk a pwd parancs kimenete most a következő:
/home/joska/jarmu
Most a „jarmu” könyvtáron belül hozzunk létre egy „szeker” nevű könyvtárat:
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
mkdir szeker
Lépjünk bele:
cd szeker
Ezek után a pwd kimenete:
/home/joska/jarmu/szeker
Most vissza kellene lépni az előző könyvtárba. Az előző könyvtárat két pont jelképezi:
..
Másként, ha most éppen a /home/joska/jarmu/szeker könyvtárban állunk akkor a két pont a/home/joska/jarmu könyvtárat jelképezi. Ha szeretnénk visszalépni a jarmu könyvtárba, akkormegtehetjük, hogy a teljes útvonal megadásával így lépek vissza:
cd /home/joska/jarmu
De ugyanezt az eredményt érhetjük el, ha cd paranccsal használjuk a két pontot:
cd ..
Ez utóbbi parancs bármely könyvtárban is állunk, azt eredményezi, hogy egy könyvtárral feljebbkerülünk.
Ugyanígy használhatjuk a gyökérkönyvtár jelét a fájlrendszer gyökerébe jutáshoz:
cd /
Ezzel a fájlrendszer gyökerébe jutunk.
Van még egy különleges karakter, amely a saját könyvtárunkat jelképezi. Ez a következő:
~
Tilde karakternek hívják. Bármely könyvtárban is állok a könyvtárstruktúrában, ha kiadom akövetkező parancsot, a saját könyvtárunkba fogok jutni:
cd ~
Vegyük észre, hogy a várakozási jelben is szerepel egy tilde karakter (Legtöbb linuxos terjesztésbenígy van beállítva a várakozási jel).
Könyvtár törlése
Az rmdir parancs segítségével minden megadott üres könyvtárat törölhetünk:
2015/12/08 21:23 17/107 Linux parancssor
SzitWiki - http://szit.hu/
rmdir konyvtarnev
Itt is használható a -p kapcsoló. A parancs így a legbelső könyvtárat törli, ha az üres, és utána atöbbit, egyenként. Legyen a példa kedvéért egy ilyen könyvtárszerkezet:
egy/ketto/harom
Kiadjuk a törlésre az utasítást:
rmdir egy/ketto/harom
A parancs először törli a harom könyvtárat, ha az üres. Utána a ketto könyvtárat, ha az előző sikeresvolt és a ketto üres. Végül ha az előző kettő sikeres volt, akkor törli az egy könyvtárat is.
Könyvtár átnevezése
A könyvtár átnevezését az mv paranccsal hajtjuk végre, amely az angol move szóból származik.Magyarul mozgatás jelent. A parancsot valójában arra találták ki, hogy egy állományt egy másikhelyre mozgassunk. Viszont ha a mozgatás helye a kiindulási pont, akkor csak átnevezés történik.
Szintaxisa a következő:
mv eredetikonyvtar ujkonyvtar
Könyvtár átmozgatása
mv konyvtar001 konyvtar002/
A konyvtar002 könyvtárba mozgatjuk a konyvtár001 nevű könyvtárat.
Könyvtárak másolása
cp -R dir1 dir2
Ha a dir2 már egy létező könyvtár, akkor annak tartalmába másol! Ha nincs dir2 könyvtára akkor azaktuális könyvtárban létrehozza a dir2 könyvtárat.
A -R kapcsoló hatására valójában rekurzív másolásra adunk parancsot, de könyvtármásolásnál éppenezt szeretnénk.
Könyvtárnevek mérete
A könyvtárnevek maximális hossza 256 bájt. De az ékezetesekkel duplán kell számolnunk.
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
Gyakorlat
Milyen könyvtárkezelő parancsok vannak?Hozzon létre egy „tudas” nevű könyvtárat saját könyvtárában.Hozzon létre egy „jarmu” nevű könyvtárat saját könyvtárban.Milyen paranccsal nézzük meg, melyik könyvtárban vagyunk éppen?Milyen paranccsal léphetünk a gyökérkönyvtárba (egy parancs)?
A „jarmu” nevű könyvtárban a következő alkönyvtárakat hozza létere:CitroenDaewooFiatFordLadaMercedesNissanOpelPeugeot
Könyvtárszerkezet
A Linuxos könyvtárszerkezet felépítése egy fához hasonlítható. Van egy gyökér a kiinduláspont, ésabból újabb könyvtárak, alkönyvtárak nyílnak. A kiindulópontot azaz a gyökeret egyetlen karakterreljelezzük: ”/„. A perjel tehát a gyökér. Ha a merevlemez több részre ún. partícióra van felosztva,gyökér akkor is csak egy van, így nem kell különféle jelöléssekkel ellátni a gyökér könyvtárat. Jókérdés lehet, hogy akkor a többi partíciót hol és hogyan érjük el. A plusz partíciók egy-egy könyvtáralkönyvtáraiban érhetők el. A rendszergazda azokat bárhova felcsatolhatja, igaz van mindegyiknekegy megszokott helye.
A könyvtárak leírása
A felhasználók könyvtárai a „home” nevű könyvtárban találhatók. Hogy ez rögtön a gyökérkönyvtárból nyílik, így szoktuk leírni:
/home
A /home könyvtáron belül vannak a felhasználók könyvtárai. Legyen például egy joska, egy mari ésegy janos nevű felhasználó. A joska felhasználói könyvtárát ekkor így írhatjuk le:
/home/joska
Mari felhasználó könyvtára:
/home/mari
János felhasználó könyvtára:
/home/janos
2015/12/08 21:23 19/107 Linux parancssor
SzitWiki - http://szit.hu/
Fa formájú szerkezetben ezt így írhatjuk le:
/|--home |--janos |--joska |--mari
Ha Jánosnak van a saját könyvtárában egy Dokumentumok alkönyvtár, akkor a faszerkezet így néz ki:
/|--home |--janos | |--Dokumentumok |--joska |--mari
Itt szeretném megjegyezni, hogy a Linuxos fájlrendszer kis- és nagybetű érzékeny. Tehát egy„dokumentumok” és egy „Dokumentumok” nevű könyvtár, két különböző könyvtár.
További példa kedvéért Jánosnak legyen a Dokumentumok mellett egy Tervek és egy a tervekbőlnyíló Programozas könyvtára:
/|--home |--janos | |--Dokumentumok | |--Tervek | |--Programozas |--joska |--mari
A valósában a gyökérkönyvtárból is több könyvtár nyílik. A következő példában legyen pluszban egy„var” könyvtár is ábrázolva. A var könyvtárban a rendszer a változó adatokat tárolja:
/|--home| |--janos| | |--Dokumentumok| | |--Tervek| | |--Programozas| |--joska| |--mari|--var
A „var” könyvtárból nyíljon egy „log” nevű könyvtár amelyben a naplófájlok vannak:
/|--home| |--janos
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
| | |--Dokumentumok| | |--Tervek| | |--Programozas| |--joska| |--mari|--var |--log
Ezzel a faszerkezettel tehát leírható az egész könyvtár hierarchia.
A „log” könyvtár útvonalát egyetlen sorba, ezek után így írhatjuk fel:
/var/log
A János nevű felhasználó Dokumentumok könyvtára egyetlen sorban:
/home/janos/Dokumentumok
A János nevű felhasználó „Programozas” könyvtára így írható le:
/home/janos/Tervek/Programozas
A János nevű felhasználó „Tervek” könyvtára így írható le:
/home/janos/Tervek
Esetleg az egyértelműbb jelzés miatt a könyvtár nevek végére tehetünk egy ”/„ karaktert:
/var/log/ /home/janos/Dokumentumok/ /home/janos/Tervek/Programozas/ /home/janos/Tervek/
Így tudjuk, hogy nem egy fájlról van szó.
A gyökér könyvtár könyvtárai
/binbootdev
hda0hda1
etchome
jozsimarikatieszter
2015/12/08 21:23 21/107 Linux parancssor
SzitWiki - http://szit.hu/
peterlibmediamntoptprocrootsbinsrvsystmpusr
binincludeliblocalsbinshare
varlogmailwww
Most nézzük, mi micsoda.
/bin Az alapparancsok programjai itt vannak elhelyezve./boot A rendszerindításhoz szükséges fájlok helye./dev A számítógép minden eszköze (hardvere) ebben a könyvtárban egy fájl formájábanleképezésre kerül./etc A rendszer beállításait tároljuk itt./home A felhasználók saját könyvtárai./lib Osztott programkönyvtárak, elsősorban a kernel, a /bin és az /sbin könyvtárak számára./lost+found Fájlrendszer sérülése után a helyreállító program ide helyezi azokat a fájlokat amitnem képes helyre állítani./media Más fájlrendszerek automatikusan ide kerülnek felcsatolásra./mnt Kézzel csatlakoztatott más fájlrendszerek.
/mnt/cdrom Ha kézzel csatolunk egy CD-ROM-t a fájlrendszerbe, akkor azt ide szokás./proc A memória leképezése fájlokra./root A root (rendszergazda) felhasználó saját könyvtára./sbin A rendszergazda parancsainak programjai itt találhatók./selinux A selinux szolgáltatás beállításai./srv A szolgáltatásokat nyújtó programok adatállományai (mint a home)./sys Néhány kernelobjektum itt van leképezve./tmp Ideiglenes fájlok helye./usr A programok könyvtárai.
/usr/bin/ : Futtatható programok a felhasználók számára./usr/include/ : A programozáshoz szükséges „include” fájlok helye./usr/lib/ : Osztott programkönyvtárak./usr/sbin/ : A root felhasználók programjai./usr/share/ : Architektúra független adatok./usr/src/ : Forráskódok. (Debian csomagok fordításához; Lásd még a /usr/local/src/
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
könyvtárat)/usr/X11R6/ : Az „X Window System” könyvtára./usr/local/ : A rendszer-adminisztrátor által telepített programok helye.
/usr/local/bin : helyi bináris programok és scriptek helye, stb./usr/local/src : Forráskódok helye (Nem debianos eszközök telepítési helye.)
/var Gyakran változó fájlok helye.
Link: http://wiki.debian.org/FilesystemHierarchyStandard
Gyakorlat
Mit tartalmaz a /tmp könyvtár?Mit tartalmaz a /bin könyvtár?Mit tartalmaz a /home könyvtár?Mit tartalmaz a /media könyvtár?Mit tartalmaz a /proc könyvtár?
Fájlkezelés
Fájlok létrehozása
Egy fájl létrehozásához a legegyszerűbb parancs a touch. Igaz eredeti célja, hogy egy fájl időbélyegétmegváltoztassuk, de ha egy állomány nem létezik amelynek időbélyegét aktualizálni szeretnénk,akkor azt létrehozza. Természetesen a fájl tartalma üres lesz. A touch parancs nem kérdez semmit,csak elkészíti az állományt:
touch fajlneve.txt
Az echo paranccsal is létrehozhatunk fájlokat. Ekkor az echo után írt „Szöveg” a fájlba kerül.
echo "alma" > gyumolcsok.txt
Fájlok törlése
Egy fájl törlése:
rm fajlnev
Törlés rekurzívan:
rm -r fajlnev
Az rm parancs alapvetően fájlok törlésére lett kitalálva, ezért könyvtárat csak úgy tudunk törölni vele,ha beállítjuk a rekurzívitást.
A könyvtár és tartalmának törlése:
2015/12/08 21:23 23/107 Linux parancssor
SzitWiki - http://szit.hu/
rm -r könyvtárnév
Az egész könyvtárfa törlése a gyökértől kiindulva:
rm -r /
Fájlok átnevezése
mv fajl001 fajl002
Az mv parancs valójában a fájlok mozgatására lett kitalálva, de ha nem adunk meg könyvtárat, vagyisugyanabba a könyvtárba mozgatunk, akkor tulajdonképpen átnevezés történik.
Fájlok mozgatása
Adott állomány mozgatása adott könyvtárba:
mv fajl konyvtar
vagy:
mv fajl konyvtar/
A fajl nevű állományt a konyvtar nevű mappába mozgatjuk.
Több fájl is mozgatható egy könyvtárba, a lényeg, hogy a könyvtár neve legyen az utolsó:
mv fajl1 fajl2 fajl3 konyvtar
Fájlok másolása
Az aktuális könyvtárban szeretnénk a file1 állományról egy file2 másolatot:
cp fajl01 fajl02
Adott egy „munka” nevű könyvtár az aktuális könyvtáron belül. Ebbe szeretnénk másolni a file1 nevűállományt, ugyanezen a néven:
cp fajl01 munka/
Fájlok tartalmának megtekintése
Gyakran szükség van arra, hogy gyorsan belenézzünk egy fájlba. Erre használható például a catparancs:
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
cat fajlnev
Fájlok darabolása
split -b 1440000 fajlnev
Régebben ha floppy lemezre akartunk másolni, pont ekkora méretre kellett darabolnunk a fájlt. A fentiparancs segítségével a fajlnev nevű állományt 1440000 byte nagyságú részekre lett feldarabolva. Afájlokat automatikusan elnevezi ehhez hasonlóan:
xaaxabxacstb
Darabolt fájlok összefűzése
A darabolt fájlokat előbb-utóbb szeretnénk összeszerkeszteni. Ezt a cat paranccsal tehetjük meg azalábbi formában:
cat x* >> fajlnev
A csillag, azt jelenti, hogy minden könyvtár ami x-el kezdődik.
Fájlok szerkesztése
Fájlok szerkesztésére nagyon sok eszköz áll rendelkezésre. Lehet parancssorból a sed paranccsalszerkeszteni. Vagy lehet erre a célra kitalált szövegszerkesztőket használni. Legyen például avirag.txt nevű állomány amit szeretnénk szerkeszteni:
vi virag.txt
vagy
nano virag.txt
vagy
mcedit virag.txt
Az Midnight Commander beépített szövegszerkesztője. Valójában egy szimbolikus link az mcparancsra. Ebből következik, hogy a használatához az „mc” csomagnak telepítve kell lennie agépünkön.
2015/12/08 21:23 25/107 Linux parancssor
SzitWiki - http://szit.hu/
Nano
Billentyűk
A nano szövegszerkesztő alapvető billentyűkombinációi Ctrl gombbal működnek. Ezt maga aszövegszerkesztő is tudatja velünk, de a Ctrl helyett egy „^” karaktert látunk mindig. A mentéspéldául a Ctrl+O billentyűkombinációval történhet, amit így látunk:
^O
Vagy a kilépés Ctrl + X billentyűkombináció, amelyet így látunk:
^X
Szerkesztés
Meg kell mondani, hogy most kijelölés jön. A kijelölés végét nem kell jelezni (ellentétben az mceditel).Ha kijelöltük azt amit vágólapra szeretnénk tenni, akkor el kell dönteni ezt hogyan szeretnénk. Akijelölt szöveg kivágásával, vagy másolásával. Ennek megfelelő billentyűkombinációt nyomunk.
Alt + 6 Kijelölés kezdeteCtrl + K KivágásCtrl + U Beillesztés
A másolás tulajdonképpen úgy néz ki, hogy Ctrl + U billentyűkombinációt kétszer használjuk. Előszörhelyben, ahonnan kivágja, majd a kívánt másolási helyre viszem a kurzort és ott is Ctrl + U.
A Ctrl + K billentyűkombinációt használhatjuk kijelölés nélkül is. Ekkor azt a sort vágja ki, amelyikbenéppen állt a kurzor a Ctrl + K lenyomásakor.
Egyéb
Alt + Q Kijelölés kezdete
Linkek a fájlrendszerben
Merevlink
Amikor létrehozunk egy állományt a merevlemezen lefoglalunk számára egy szektort. Ugyanakkorlétrejön egy bejegyezés, amelyet inode néven említjük. Az inode nevű egységben van leírva a fájlidőbélyege, mérete, tulajdonosa, csoportja, jogok, stb. Az inodeban van feljegyezve, hogy holhelyezkedik el a merevlemezen a lefoglalt szektor, ezt a bejegyzést hívhatjuk tulajdonképpen linknek.A fájl létrehozásakor tehát egy linket hozunk létre, mégpedig merevlinket. Ilyen merevlinket többetlétrehozhatunk egy fájlra. Ennek módja a következő:
ln fajlnev linkfajlra
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
Ha már két merevlink mutat egy fájlra, a fájl csak akkor törlődik, ha mindkét linket töröljük.
Vegyük a következő példát. Létrehozok egy fájlt:
touch erdo.txt
Most létrehozok egy rámutató linket:
ln erdo.txt fak.txt
Most törlöm a erdo.txt-t:
rm erdo.txt
A fájl maga nem kerül törlésre, mert a fak.txt nevű link még az állományra mutat. Az állomány törlésecsak ekkor történhet meg.
Az ls -l parancs kimenete megmutatja hány darab szimbolikus link mutat egy fájlra.
Szimbolikus link
A szimbolikus link nem valódi link, ezért is nevezzük szimbolikusnak. Ha van egy állomány amelyrecsak egyetlen merevlink mutat és egy szimbolikus link, amikor törlöm a merevlinket a fájl törlődni fog.A szimbolikus link ez után megmarad, de nem mutat majd sehova.
Szimbolikus link létrehozása
ln -s fajlnev linkfajlra
Fájlok statisztikája
A stat parancs még több információt szolgáltat egy állományról vagy egy könyvtárról.
stat fajlnev
Például:
stat log.txt
File: "log.txt" Size: Blocks: IO Block: 4096 szabályos üres fájlDevice: 802h/2050d Inode: 1461005 Links: 1Access: (0644/-rw-r--r--) Uid: ( 1000/ andras) Gid: ( 1000/ andras)Access: 2012-01-15 23:00:17.365731988 +0100Modify: 2011-08-09 22:35:50.584228887 +0200Change: 2011-08-09 22:35:50.584228887 +0200
File A fájl neve
2015/12/08 21:23 27/107 Linux parancssor
SzitWiki - http://szit.hu/
Size A fájl méreteBlocks A fájl által használt blokkok száma (512 bájtos blokkokkal számol!)IO IO blokkméret a fájl számára
fájltípus
szabályos fájl,szabályos üres fájlkönyvtárszimbolikus linkfoglalatspeciális karakterfájlspeciális blokkfájl
Device Az eszköz neve hexadecimális és decimális formában.Inode A fájl egyedi azonosítója a fájlrendszerbenLinks Linkek száma a fájlraAccess Hozzáférés szám és karakterformában.Uid TulajdonosGid CsoportAccess Utolsó fájlolvasási időpontModify A fájl tartalmának utolsó változásaChange A fájl inode leírójának utolsó változása
stat konyvtarnev
Magáról a fájlrendszerről kaphatunk információt a -f kapcsoló megadásával:
stat -f fajlnev
Például:
stat -f log.txt
File: "log.txt" ID: 3f4e5580b0204b72 Namelen: 255 Type: ext2/ext3Block size: 4096 Fundamental block size: 4096Blocks: Total: 9612076 Free: 4608081 Available: 4119806Inodes: Total: 2444624 Free: 2115881
Ha írunk a fájlba, akkor módosul a mtime (Modify time), de ezzel együtt a ctime (Change time) is. Actime viszont módosul még néhány esetben. Ha például módosítom a fájl jogait, vagy tulajdonsát,akkor a ctime érték frissül.
A -c vagy a --format kapcsolóval kiírathatjuk (többek között) mit ért (hány bájt-ot) a stat blokkméretalatt:
stat --format=%B fajlnev
Fájlok mérete
A fájlok lemezen foglalt helyét és méretét tudhatjuk meg a „du” parancs segítségével. A dualapértelmezésként a lemezen elfoglalt helyet mutatja meg blokkméretben. 1 blokkot 1 kibibájt-nak
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
számít, azaz 1024 bájtnak.
Ha bájt-ban szeretnénk megkapni pontosan mekkora az állomány mérete, akkor a -b vagy --byteskapcsolót kell használnunk.
Hozzunk létre saját könyvtárunkban egy fájlt:
cd ~echo "Lorem ipsum doloest amet" > lorem.txt
Nézzük meg a helyfoglalását:
du lorem.txt
Az eredmény:
4 lorem.txt
Nem négy bájt. Négy kilóbájt (4 * 1024 bájt). Ennyi helyet foglal a lemezen. A du parancs tehátalapértelmezésben 1024-es blokkokkal számol.
Ha be van állítva a POSIXLY_CORRECT környezeti változó, akkor 512 bájtos blokkokkal kellszámolnunk. Állítsuk be a változót és nézzük meg újra a parancs kimenetét:
set -o posixdu lorem.txt
A kimenet:
8 lorem.txt
A kimenetben most 8 blokk, vagyis 8 daraba 512 bájtos helyet foglal az állományunk, ami 4096 bájtösszesen.
A POSIXLY_CORRECT környezeti változót azért szokták beállítani, hogy a programok úgy működjenek,hogy megfeleljenek a POSIX szabványnak. A POSIXLY_CORRECT kikapcsolásához:
set + o posix
A set Bash belső parancsa, több információért nézd meg a leírását:
help set
Most nézzük meg a valós méretét:
du -b lorem.txt
vagy:
du --bytes lorem.txt
2015/12/08 21:23 29/107 Linux parancssor
SzitWiki - http://szit.hu/
26 bájtot kapunk:
26 lorem.txt
Nézzük meg a stat paranccsal is a lorem.txt lefoglalt blokkméretét. Vegyük észre a különbséget. Astat azt mondja 8 blokk, mert az eleve 512 bájt mérettel számol.
Ebből láthatjuk, hogy az adott fájlrendszer blokkmérete 4096 bájt.
A teszteléshez létrehozhatunk egy 4096 bájt nagyságú fájlt:
dd if=/dev/zero of=teszt.txt bs=1024 count=4
Esetleg adjunk hozzá még két bájtot:
echo a >> teszt.txt
Fájlnevek
A fájlnevek tartalmazhatnak ékezetes fájlneveket, számokat, alulvonást, kötőjelet, pontot, stb.
Maximális hosszuk: 256 bájt
Vegyük észre, hogy a 256 a karakterek száma helyett a szükséges bájtokat tartalmazza. A magyarékezetes betűk például 2 bájtosak.
Fájlok keresése
Keresés tartalom alapján:
find . -name "*.txt" -print | xargs grep "Nagy József"
Olyan .txt kiterjesztésű fájlokat keresünk, amelyben szerepel a „Nagy József” név.
Egyszerűbben:
grep -lir "Nagy József" /utvonal/konyvtar
Olyan fájlokat keresünk, adott könyvtárban, amelyben szerepel a „Nagy József név. Az eredmény afájl neve.
Harmadik verzió:
egrep -R "Nagy József" /útvonal/könyvtár
A find és grep parancsról később részletesen is szó esik.
A locate parancs:
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
locate minta
Létezik egy /var/lib/mlocate/mlocate.db nevű adatbázis, amely segít megtalálni állományokat. Azadatbázis a következő paranccsal frissíthető:
updatedb
Gyakorlat
Milyen fájlszerkesztő parancsok vannak?Milyen paranccsal hozhatunk létre egy új üres állományt?Milyen paranccsal törölhetek egy állományt?Milyen paranccsal nevezhetek át egy állományt? Írjon példát.Milyen paranccsal mozgathatok egy saját könyvtáramból egy alkönyvtárba egy fájlt. Írjonpéldát.
Billentyűzet használat
Fogalmak
Terminal
Egy billentyűzet és egy monitor, amely egy számítógéphez kapcsolódik.
Eredetileg a nagygépes Unix rendszerekhez több terminál is csatlakozott. Esetleg egy PC-t is lehetettterminálként használni. A Linuxot ma leggyakrabban nem nagygépre, hanem egy PC-re telepítjük. APC-hez pedig egyetlen monitor és billentyűzet kapcsolódik alapesetben. Mi ezt tekintjük mostterminálnak. A Linux lehetővé teszi, hogy több felületen is belépjünk, mintha több terminálunk lenne.Ezek nem valódi terminálok, így a linuxos terminálokat „virtuális terminálként” szoktuk említeni.
Host
A nagyszámítógép, amelyhez a terminálok kapcsolódnak. Host számítógép alatt mi most PC-t fogjukérteni, amelyen dolgozunk.
Teletype ASR33
Az első Unix terminálok, amelyek egy billentyűzetből és egy nyomtatóból álltak. Rövidítve TTY. EgyLinuxos rendszeren parancssoros felületen 6 helyen léphetünk be. Ezeket teletype névvel illetjük azASR33 teletype után. Szokás még terminál néven is említeni.
2015/12/08 21:23 31/107 Linux parancssor
SzitWiki - http://szit.hu/
Parancsok
Terminál nevének kiíratása:
tty
Terminál paramétereinek beállítása:
stty
Paraméter nélkül kiírja a Linux milyen beállításokkal használja a terminált.
Több információt nyerhetünk a ”-a” kapcsolóval:
stty -a
A kisbetűk nagybetűvé alakítása:
stty olcuc
A kisbetűk nagybetűvé alakításának kikapcsolása:
stty -olcuc
További információkért lásd a man stty parancsot.
Milyen terminált használunk:
echo $TERM
Billentyűzetkódok
showkey
Gyakorlat
Honnan ered a terminál elnevezés?Mit jelent a host?Írjon egy Teletype típust.Milyen paranccsal írathatjuk ki a terminálunk nevét?Milyen paranccsal állathatjuk be a terminálunkat?Milyen paranccsal állatja be, hogy minden beírt betű nagybetűs legyen?Melyik környezeti változó tartalmazza a terminálunk nevét?
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
Parancsok megtalálása
A parancsokról
Jó néhány parancsot megismertünk, de általában szeretnénk a parancsokról többet megtudni. Esetlegazt is szeretnénk tudni, hogy a parancsokat megvalósító programok valójában hol találhatók. Esetlegszükségünk van egy parancsra de azt sem tudjuk hol, milyen néven keressük. A következő fejezetezeket a problémákat járja végig.
Külső és belső parancsok
Alapvetően kétféle parancs van. Ezek:
belsőkülső
A parancsokat a parancsértelmező fogadja. A parancsértelmező először megnézi, hogy a kiadottparancsot ő maga fogja-e végrehajtani. Ha nem ismeri, akkor egy külső programot keres, amelyetfuttat.
Belső parancsok
A belső parancsok gyűjteményérő a „help” parancs tájékoztat minket.
A help valójában egy belső parancs amit Bash értelmez.
Keresünk egy parancsot
Valamihez szeretnék parancsot találni. Például könyvtárkezeléshez keresek egy parancsot. Hatelepített rendszer magyar, akkor kereshetek magyar szavakra is. A parancsok kereséséhez egyiklehetséges program az apropos. Használata a könyvtárkezeléssel kapcsolatos parancsok kereséseesetén például:
apropos könyvtár
A program kiírja azoknak a programoknak a neveit amelyeknek a leírása tartalmazza a könyvtár szót.
apropos könyvtárbasename (1) - levágja a könyvtárat és a végződést a fájlneve...chroot (1) - parancs futtatása eltérő gyökérkönyvtárralchroot (8) - megváltoztatja a gyökérkönyvtárat és végrehajt ...cp (1) - fájlok és könyvtárak másolásafind (1) - fájlokat keres egy könyvtárstruktúrábanldd (1) - kiírja a program által használt megosztott könyvt...ls (1) - könyvtárak tartalmának listázása
2015/12/08 21:23 33/107 Linux parancssor
SzitWiki - http://szit.hu/
mkdir (1) - könyvtár létrehozásapwd (1) - kiírja az aktuális (munka-) könyvtáratrmdir (1) - törli az üres könyvtárakatwhois (1) - Internet user név könyvtár szolgáltatás
Persze nem kapjuk meg azoknak a parancsoknak a nevét amelyeknek a leírása nem lett magyarrafordítva. Ezért az angol nyelven érdemes rákeresni a könyvtár szóra:
apropos directory
Figyeljük meg, hogy a leírásból egy rövid kivonatot is közöl a parancsról, ami leírja mire való a prancs.
$ apropos directoryalphasort (3) - scan a directory for matching entriesbasename (1) - strip directory and suffix from filenamesbf_compact (1) - shell script to compact a bogofilter directorybf_compact-bdb (1) - shell script to compact a bogofilter directorybf_copy (1) - shell script to copy a bogofilter working directorybf_copy-bdb (1) - shell script to copy a bogofilter working directorybf_tar (1) - shell script to write a tar file of a bogofilterdirec...bf_tar-bdb (1) - shell script to write a tar file of a bogofilterdirec...bindtextdomain (3) - set directory containing message catalogschdir (2) - change working directorychroot (2) - change root directorychroot (8) - run command or interactive shell with special rootdir...closedir (3) - close a directorydbus-cleanup-sockets (1) - clean up leftover sockets in a directorydepmod.conf (5) - Configuration file/directory for depmoddesktop-file-install (8) - install a desktop file to the applicationsdirectorydh_installdeb (1) - install files into the DEBIAN directorydh_testdir (1) - test directory before building debian packagedir (1) - list directory contentsdirfd (3) - get directory stream file descriptordirsplit (1) - splits directory into multiple with equal size
...
pwd (1) - print name of current/working directorypwdx (1) - report current working directory of a processreaddir (2) - read directory entryreaddir (3) - read a directoryreaddir_r (3) - read a directoryreadlinkat (2) - read value of a symbolic link relative to a directory...remove (3) - remove a file or directoryrenameat (2) - rename a file relative to directory file descriptorsrewinddir (3) - reset directory stream
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
rmdir (2) - delete a directory...
A válasz most egész hosszúra sikeredett, így csak egy kivonatot másoltam ide.
Valamelyik parancs felkeltette az érdeklődésünket és többet szeretnénk róla tudni. Erre való a „man”parancs. A „man” a manual szóból van, vagyis kézikönyv. Minden parancsnak általában vankézikönyve, amely leírja annak használatát és persze mindent amit a program dokumentálója jónaklátott. A listából például kiválasztjuk a ls parancsot, mert a könyvtárak tartalmának listázásáról többetszeretnénk tudni. A következő parancsot használhatjuk:
man ls
Ha elindítottuk a „man ls” parancsot a következő problémánk lehet, hogyan lépünk ki a kézikönyvből?Ehhez a „Q” billentyűt kell mindössze megnyomni és a kilépés megtörténik.
Ha tudjuk egy parancsnak a nevét, és egy rövid leírást szeretnék mire is jó, akkor használhatjuk awhatis parancsot:
whatis ls
A parancsnak érdemes kipróbálni help paraméterét is:
ls --help
Néhány parancsnak több karakterből álló paramétere csak egy kötőjellel van bevezetve: -help. De azis lehet, hogy csak egy karakter kell: -h Ez mindig az adott program írójától függ. A szabvány szerinttöbb karakteres opciókat mindig két kötőjellel vezetjük, az egy karaktereseket egy kötőjellel.
Hol található maga a program?
Előfordulhat, hogy szeretnénk tudni hol található egy program. Például egy scriptet akarunk írni,amelyben az egész útvonalat szeretnénk felvenni. Nekiállhatnánk keresni is, de van egy parancsamelyik megmondja hol van:
which ls
A which parancsot pontosan erre a célra találták ki. A kimenet általában ez:
/bin/ls
Próbáljuk meg más parancsokkal is.
Kézikönyvek
Fentebb már láttuk, hogy a programok rövid leírását a whatis parancs megadja, a bővebb leírástpedig a „man”. Ne felejtsük el, hogyan léphetünk ki a man parancs környezetéből. Ezt a „q” billentyűlenyomásával tehetjük meg.
2015/12/08 21:23 35/107 Linux parancssor
SzitWiki - http://szit.hu/
man ls
Fejezetek
A kézikönyv, angolul manual, innen a parancs röviden: man. A kézikönyvek 9 fejezetre oszthatók.Ezek:
Futtatható programok vagy shell parancsok1.Rendszerhívások (a kernel függvényei)2.Osztott könyvtári függvények3.Speciális fájlok (rendszerint /dev)4.Fájlformátumok, konverziók (pl. /etc/passwd)5.Jétékok6.Egyéb (makrócsomagok, man(7), groff(7)7.Rendszer-adminisztrátori parancsok (a root felhasználó számára)8.Kernel rutinok9.
A kézikönyvek részei
Egy kézikönyv a következő részekre tagolható:
NAME - rövid leírásSYNOPSIS - szintaktikai leírásCONFIGURATION - beállításokDESCRIPTION - leírásOPTIONS - kapcsolókEXIT STATUS - kilépési kódokRETURN VALUE - visszatérési értékERRORS - hibákENVIRONMENT - környezetFILES - fájlokVERSIONS - verziókCONFORMING TO - egyezésekNOTES - megjegyzésekBUGS - a program hibáiEXAMPLE - példákAUTHORS - tulajdonosSEE ALSO - „lásd még”
Példák
Nézzünk néhány példát: A ps parancs:
man ps
A chmod parancs:
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
man chmod
A chown parancs:
man chown
Más nyelvek
Előfordulhat, hogy szeretnénk egy parancs eredeti angol nyelvű verzióját megnézni, mert a magyarnyelvűben nem találjuk a keresett információt (ez előfordulhat, ha például a magyarítást nemfrissítették az adott programnál). A Debian GNU/Linux 6.x-es rendszerben például a magyar pskézikönyv nem tartalmazza a <, N, L, s, l, + státuszok leírását. Az angol nyelvű verzióban azonbanmegtaláljuk. A nyelv beállításhoz használjuk a -L kapcsolót:
man -L en ps
A nyelvet az ISO-639 szabvány szerint kell beírni.
Gyakorlat
Hogyan tudom megnézni a „cd” belső parancshoz tartozó segítő leírást?Hogyan tudom megnézni a crontabhoz tartozó nyolcas kézikönyvfejezetet?Milyen fejezetekből állhat egy kézikönyv?Milyen paranccsal tudom megnézni, hogy a firefox parancs hol található a fájlrendszerben?Milyen paranccsal kereshetek parancsokat?
Parancsok
Szintaxis
A szintaxis a parancsok kiadásának formális leírása.
A parancsot begépelve parancssornak nevezzük.
A Linuxos rendszerben egymás után több parancsot is beírhatok pontosvesszővel tagolva:
parancs1 ; parancs2 ; parancsN
A prancssort két részre lehet osztani. A parancs neve és az argumentumok.
Példa:
ls -1 -F fajlnev1
A példában az ls a parancs neve ami után jön az pedig mind argumentum. Itt az ls parancsnak háromparamétere van.
2015/12/08 21:23 37/107 Linux parancssor
SzitWiki - http://szit.hu/
Az argumentumokat kapcsolókra és paraméterekre osztjuk fel.
Parancssorparancsnév argumentumokparancsnév kapcsolók paraméterek
Opciók
Kapcsolók vagy opciók a parancs nevét követik. Egy vagy két kötőjel vezeti be őket. Ha egy kötőjelvan, átláthatóbb egy hosszú parancssor. Ha hosszú formát használjuk olvashatóbb. Hogy egy-egyparancs esetén mi van megvalósítva, az csak a programozón múlik.
Az opciók módosítják a parancs végrehajtását.
-F --classify-a --all-s --size
Paraméterek
A paraméterek az opciókat követik. Egy vagy több is lehet belőlük.
A paraméterek határozzák meg, min kell végrehajtani a parancsot.
ls -1 -F file1 file2 file3
Két opció: -1 -F
Három paraméter: file1 file2 file3
Összevonható opciók
ls -1 -F file1
ls -F -1 file1
ls -1F file1
ls -F1 file1
A -1 és -F opciókat egyetlen kötőjellel is megadhatom. Ilyenkor a két opciót leírom egymás mellé. Asorrend lényegtelen.
WhiteSpace karakterek
WhiteSpace karakter a szóköz és a tabulátor. A parancs neve, az opciók és a paraméterek közöttezekből egy vagy több is szerepelhet:
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
ls <szóköz>-l<szóköz>-F<szóköz>file1
ls <tab>-l<tab>-F<tab>file1
ls <szóköz><tab>-l<szóköz>-F<tab><tab><tab>file1
Gyakorlat
Mi az opció?Mi a paraméter?Mutasson példát az opciók felcserélhetőségére.Mi a WhiteSpace?Hány WhiteSpace szerepelhet egy parancs neve után?
Átirányítások
Alapfogalmak
stdin
A stdin tulajdonképpen a billentyűzet.
stdout
Az stdout a képernyő.
stderr
Az stderr szintén a képernyő.
cat parancs
A cat parancs egy olyan parancs, amely billentyűzetről olvas, és stdout-ra ír.
Átirányítás fájlba vagy fájlból
Az alapértelmezett kimenet átirányítása
Most a billentyűzetről fogunk olvasni, a kimenet az stdout helyett viszont egy állomány lesz. Azátirányítást a nagyobb-mint (>) karakterrel fogjuk megvalósítani.
2015/12/08 21:23 39/107 Linux parancssor
SzitWiki - http://szit.hu/
A gyumolcs.txt fájl tartalmát a képernyő helyett a gyumolcs2.txt fájlba irányítom:
cat > gyumolcs.txtszilvabarackkörtealma<Ctrl>+<D>
A bevitelt a <Ctrl>+<D> billentyűkombinációval szakítjuk meg, amellyel tulajdonképpen „fájlvégejelet” küldünk a rendszernek.
Bármely program, ha a stdout-ra (képernyőre) ír annak kimenetét átirányíthatjuk fájlba.
Az alapértelmezett hibakimenet átirányítása
Néhány program a normál üzenetek mellett hibaüzeneteket is a képernyőre íródnak. Ezek ahibaüzenetek nem kerülnek fájlba az előbbi átirányítás esetén: A hibaüzenetek átirányítását ismegoldhatjuk azonban:
Tegyük fel, hogy nem létezik az aktuális könyvtárban nincs „aaaa” nevű könyvtár és fájl sem, amikorkiadjuk a következő parancsot:
ls aaaa
Az eredmény a képernyőre íródik.
ls: aaaa nem érhető el: Nincs ilyen fájl vagy könyvtár
Ha ezt megpróbáljuk fájlba irányítani a fenti módon nem járunk sikerrel, mivel ez az az üzenet astdout helyett a stderr-re íródik. Persze alapértelmezetten az is képernyő. Az alapértelmezett kimenetszáma a „2”. Meg kell mondanunk, hogy a 2-es számú kimenet szeretnénk fájlba irányítani:
ls aaaa 2> a.txt
Ezek után a képernyőre nem ír semmit a parancs. Az a.txt fájlban viszont:
ls: aaaa nem érhető el: Nincs ilyen fájl vagy könyvtár
A bemenet átirányítása
A gyumolcs.txt fájl tartalmát a képernyőre írom:
cat < gyumolcs.txt
A cat bemenete alapértelmezetten a billentyűzet. Mi most azt mondtuk, hogy ez egy fájl legyen.
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
A bemenet és kimenet együttes átirányítása
Az adatokat a gyumolcs.txt fájlból vesszük. A gyumolcs.txt fájl tartalmát a képernyő helyett agyumolcs2.txt fájlba irányítom:
cat < gyumolcs.txt > gyumolcs2.txt
Ha a fájl nemlétezik akkor létrehozza. Ha létezik felülírja.
Hozzáfűzés
A kimenet átirányítását a nagyobb-mint (>) karakterrel végeztük. Ez mint láttuk felülírja a létező fájlt.Néha azonban ezt szeretnénk elkerülni, és szeretnénk a már meglévő fájl végéhez fűzni. Ezt kettődarab nagyobb-mint jel egymásután írásával érjük el:
echo "banán" >> gyumolcs.txt
A fenti parancs a gyumolcs.txt fájl végéhez fűzi a „banán” szöveget.
Az stdout és az stderr együttes átirányítása
Néha szeretnénk a hibaüzeneteket és a normál üzeneteket is fájlba irányítani. Az alábbi programnormál és hibaüzeneteket is generál.
program > kimenet 2>&1
vagy:
program &> kimenet.txt
A kimenet stdout és az stderr képernyőre és fájlba írása, példa:
dir letezofaj.txt nemletezofajl.txt 2>&1 | tee kimenetifajl.txt
A „tee” parancs egyszerre ír fájlba és a képernyőre.
A parancs után a képernyőn és a kimenetifajl.txt állományban is:
dir: nemletezofajl.txt nem érhető el: Nincs ilyen fájl vagy könyvtárletezofajl.txt
A stderr és stdout háttere
Az alapértelmezett kimenet és az alapértelmezett hibakimenet szétválasztása a programozásnálkezdődik. A megértéshez vegyünk egy egyszerű C programot, amely a képernyőre ír. Képernyőre írpéldául a printf() függvény:
2015/12/08 21:23 41/107 Linux parancssor
SzitWiki - http://szit.hu/
printf("Egy\n");
Ugyanezt csinálja a következő utasítás is:
fprintf(stdout, "Egy\n");
Csak itt meg kellett adni, hogy az alapértelmezett kimenet nevét: stdout.
A következő utasítás azt mondja, hogy írjunk az alapértelmezett hibakimenetre:
fprintf(stderr,"Három\n");
A programozó tehát néha azt mondhatja, hogy írjunk a képernyőre, de legyen megkülönböztetve apéldában a „Három” szó kiíratása, mert az a hibakimenetre megy. A „\n” az sortörés.
Lássunk egy komplett programot:
main.c
#include <stdio.h>main(){ printf("Egy\n"); fprintf(stdout, "Kettő\n"); fprintf(stderr, "Három\n");}
A programban a „Egy” és „Kettő” szavak az alapértelmezett kimenetre mennek. Az alapértelmezettkimenet száma 1. A „Három” szó viszont a már a hibakimenetre megy, melynek száma 2.
Ha gépünkön telepítve van a gcc fordító, akkor fordítsuk le a programot:
gcc -o main main.c
Elkészül egy main nevű állomány. Ha futtatjuk:
./main
a képernyőre íródik mind a három szám:
EgyKettőHárom
Most használjuk az átirányítást. Irányítsuk fájlba az alapértelmezett kimenetet:
./main > naplo.txt
vagy:
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
./main 1> naplo.txt
Ekkor a „Három szót a képernyőre íjra a program, az „Egy” és a „Kettő” viszont a naplo.txt nevűállományba kerül.
Most irányítsuk az alapértelmezett hibakimenetet a állományba:
./main 2> naplo.txt
Most a képernyőre íródik az „Egy” és a „Kettő” szó, a „Három” pedig állományba.
Ha pedig mind két kimenetet állományba szeretném irányítani, akkor:
./main &> naplo.txt
Ekkor mind a három szó fájlba kerül.
Láthatjuk, hogy a stdout és stderr technika lehetővé teszi, hogy elválasszuk egy program normálüzeneteit a hibaüzenetektől, ami céljainktól függően néha nagyon jól jöhet.
Átirányítás program számára
A következőkben a szintén átirányítást fogunk használni, azonban most egy másik program számáraadjuk át a kimenetet. Ezt a pipe (|) karakter segítségével valósítjuk meg.
cat gyumolcs.txt | sort
Többszörös átirányítás
Létrehozunk egy állományt.
cat > gyumolcs3.txtkörteszilvabarackalmaszilva<Ctrl>+<D>
Az állomány tartalmaz néhány ismétlődést. Ezt kezelni tudjuk az uniq paranccsal. Az uniq parancsazonban csak rendezett állománnyal képes dolgozni. Először tehát rendeznünk kell a tartalmat.
cat gyumolcs3.txt | sort | uniq
Esetleg ha szeretnénk megszámoltatni a sorok számát is, akkor:
cat gyumolcs3.txt | sort | uniq | wc -l
Az egésznek az eredményét pedig ugyancsak fájlba irányíthatjuk:
2015/12/08 21:23 43/107 Linux parancssor
SzitWiki - http://szit.hu/
cat gyumolcs3.txt | sort | uniq | wc -l > gyumolcsszam.txt
Gyakorlat
Mi a stdin?Mi a stdout?Mire használjuk a ”<„ karaktert?Mire használjuk a ”>„ karaktert?Mire használjuk a „|” karaktert?Írassuk a ki a belépett felhasználók neveit, a kimenetet a users.txt fájlba irányítva.
Útvonal
Az útvonalról
Egy parancsot úgy tudunk végrehajtani, ha tudjuk melyik könyvtárban van, akkor beírjuk az útvonalátés egy <Enter>-t nyomunk. Például gcc paranccsal szeretnénk egy programot lefordítani, akkor eztírhatjuk:
/usr/bin/gcc -o main main.c
Ehhez tudnunk kell, hogy a gcc parancs az /usr/bin könyvtárban van. Szerencsére nem kell ezt nekünkmegjegyezni. A rendszer biztosít számunkra egy PATH nevű környezeti változót. Ha ez tartalmazza az/usr/bin karaktersorozatot akkor a gcc parancs kiadásánál a parancsértelmező megnézi, hogy van-eaz /usr/bin/ könyvtárban gcc parancs. Ha van akkor végrehajtja. Persze a PATH változóban egyszerretöbb útvonal is megadható, egymástól kettősponttal elválasztva. Felhasználóként az útvonal nekempéldául így néz ki:
/home/andras/bin:/usr/local/bin:/usr/bin:/bin:/usr/games
Ezt le tudjuk kérdezni például az „echo” paranccsal, mint azt már fentebb tettük a PS1 környezetiváltozóval:
echo $PATH
Próbáljuk ki a parancsot. A parancsértelmező ezekben a könyvtárakban keresi az általunk kiadottparancsot. Ha a parancs útvonala nincs a PATH változóban, akkor kénytelen vagyunk beírni azútvonalat. Ilyen parancs lehet például az ifconfig, amely a hálózati kártyák beállítását kérdezi le. Azifconfig parancs a /sbin könyvtárban van, ami az átlag felhasználónak nincs útvonalban. Igaz afelhasználó nem végezhet vele beállításokat, de a kártya beállításait lekérdezheti. Ehhez viszont megkell adnia a teljes elérési utat:
/sbin/ifconfig
Felmerülhet a kérdés, mi van akkor ha egy parancs több könyvtárban is szerepel, amelyik útvonalbanvan. Ekkor az a parancs hajtódik végre, amelyik a PATH változóban hamarabb szerepel. Ha a másikparancsot szeretnénk, akkor meg kell adjuk a teljes elérési utat.
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
Útvonal beállítása
Parancssor beállítása általánosságban:
export PATH=$PATH:/új/útvonal
A példa kedvéért a joska nevű felhasználó szeretné beállítani a saját könyvtárában (/home/joska) lévő„programok” nevű könyvtárat útvonalba. Ekkor parancssorban kiadjuk a következő parancsot:
export PATH=$PATH:/home/joska/programok
Ezek után a /home/joska/programok nevű mappában lévő program futtathatók bárhonnan.
Ez az útvonal így csak az aktuális konzolon lesz elérhető. Ha kilépünk, akkor már nem. Ha szeretnénkújra- belepés, indítás után is elérni akkor be kell másolnunk például a /home/joska/.bashrc fájl utolsósorába. Ez után a következő belépés után az útvonalnak élnie kell. A .bashrc fájlt szerkeszthejtük így:
mcedit /home/joska/.bashrc
Vagy ha éppen a /home/joska könyvtárban állunk akkor csak röviden:
mcedit .bashrc
Parancssorból egyetlen paranccsal is megoldhatjuk a fájl végére írást:
echo "export PATH=$PATH:/home/joska/programok" >> /home/joska/.bashrc
Ha ezt használjuk, akkor vigyázzunk a kettő darab nagyobb-mint jelre. Ha csak egyet írunk, akkorfelülírjuk az egész .bashrc fájlt. Ha biztosra akarunk menni akkor előbb készítsünk róla biztonságimásolatot:
cp /home/joska/.bashrc /home/joska/.bashrc_mentes
Gyakorlat
Az operációs rendszer hol tárolja a parancsok útvonalait?Hogyan tudjuk megtekinteni az aktuális útvonalakat?Milyen paranccsal állítom be az útvonalat?Állítsuk be saját könyvtárunkban létrehozott prg nevű könyvtárban is keresse aparancsértelmező a parancsokat.
Környezet
A környezetről
Belépés után egy a rendszer egy környezetet biztosít számunkra. Biztosít egy parancsértelmezőt, a
2015/12/08 21:23 45/107 Linux parancssor
SzitWiki - http://szit.hu/
rendszerről változókban tárol számunkra információkat, de magunk is tárolhatunk információkat sajátváltozókban. Biztosít számunkra egy saját könyvtárat
A rendszer felhasználói alapértelmezésként a /home könyvtárban vannak.
Biztosít számunkra néhány alapértelmezésként meglévő fájlt. Ezek rendre:
.bashrc
.profile
Környezeti változók
A rendelkezésre álló változókat „környezeti változóknak” hívjuk. A változók neveinek és értékeinekkiíratása a következő paranccsal történhet:
set
A kimenet ehhez hasonló lehet, a teljesség igénye nélkül:
BASH=/bin/bashBASHOPTS=checkwinsize:cmdhist:expand_aliases:extglob:extquote:force_fignore:histappend:interactive_comments:progcomp:promptvars:sourcepathBASH_ALIASES=()BASH_ARGC=()BASH_ARGV=()BASH_CMDS=()BASH_COMPLETION_COMPAT_DIR=/etc/bash_completion.dBASH_LINENO=()BASH_SOURCE=()BASH_VERSINFO=([0]="4" [1]="2" [2]="45" [3]="1" [4]="release" [5]="i686-pc-linux-gnu")BASH_VERSION='4.2.45(1)-release'COLORTERM=mate-terminalCOLUMNS=80DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-BIZkKgmiL9,guid=d390d6b4250fc89be357def452828ff8DBUS_STARTER_ADDRESS=unix:abstract=/tmp/dbus-BIZkKgmiL9,guid=d390d6b4250fc89be357def452828ff8DBUS_STARTER_BUS_TYPE=sessionDEFAULTS_PATH=/usr/share/gconf/default.default.pathDESKTOP_SESSION=defaultDIRSTACK=()DISPLAY=:0EUID=1000GPG_AGENT_INFO=/tmp/keyring-kt96rN/gpg:0:1GROUPS=()HISTCONTROL=ignorebothHISTFILE=/home/andras/.bash_historyHISTFILESIZE=2000HISTSIZE=1000
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
HOME=/home/andrasHOSTNAME=meteorHOSTTYPE=i686IFS=$' \t\n'IM_CONFIG_PHASE=1LANG=hu_HU.UTF-8LIBGL_DRIVERS_PATH=/usr/lib/fglrx/dri:/usr/lib/i386-linux-gnu/dri:/usr/lib/driLINES=24LOGNAME=andras
...MACHTYPE=i686-pc-linux-gnuMAILCHECK=60MANDATORY_PATH=/usr/share/gconf/default.mandatory.pathMATE_DESKTOP_SESSION_ID=this-is-deprecatedMATE_KEYRING_CONTROL=/tmp/keyring-kt96rNMDMSESSION=defaultMDM_LANG=hu_HU.UTF-8MDM_XSERVER_LOCATION=localOPTERR=1OPTIND=1OSTYPE=linux-gnuPATH=/home/andras/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/gamesPIPESTATUS=([0]="0")PPID=4056PS1='\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ 'PS2='> 'PS4='+ 'PWD=/home/andrasSESSION_MANAGER=local/meteor:@/tmp/.ICE-unix/2711,unix/meteor:/tmp/.ICE-unix/2711SHELL=/bin/bashSHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitorSHLVL=1SSH_AGENT_PID=2796SSH_AUTH_SOCK=/tmp/keyring-kt96rN/sshTERM=xtermTEXTDOMAIN=im-configTEXTDOMAINDIR=/usr/share/locale/UID=1000USER=andrasUSERNAME=andrasWINDOWID=75507613WINDOWPATH=8XAUTHORITY=/home/andras/.XauthorityXDG_CONFIG_DIRS=/etc/xdg/xdg-default:/etc/xdg
...
2015/12/08 21:23 47/107 Linux parancssor
SzitWiki - http://szit.hu/
A history
A könyvtárunkban az első használat során létrejön egy állomány:
.bash_history
Ebben tárolódnak a használt parancsaink.
Parancssorban a le és fel billentyűkkel lapozhatjuk az eddig használt parancsokat.
Keresésre is lehetőség van. Ez akkor hasznos, ha már régen használtuk a parancsot, de nemszeretnénk végig beírni. Legyen a régen használt parancs például:
ssh -i ~/.ssh/janos_zold_rsa [email protected]
A kereséshez elsőként nyomjuk meg a <Ctrl> + <R> billentyűt. Ekkor a következő várakozási jeljelenik meg:
(reverse-i-search)`':
Írjuk be: ssh -i Írás közben a keresési eredmények rögtön megjelennek. Ha azt a parancsot látjuk,amelyet szeretnénk alkalmazni, csak nyomjuk meg a <Tab> billentyűt. A parancs ezek után várja,hogy az <Enter> billentyűvel végrehajtsuk.
A használt parancsokat a history nevű paranccsal is megjeleníthetjük. Egy idő után olyan sok parancsvan, hogy túl fut a képernyőn. A more vagy a less szűrővel, tördelhetjük a képernyőt:
history | less
Gyakorlat
Mi a környezeti változó?Mire való a set parancs?
Archiválás
Az archiválás nem egyenlő a tömörítéssel. Az archiválás azt jelenti több könyvtárat és/vagy fájltegyetlen fájlba mozgatunk, vagyis egyetlen fájlként szeretnénk kezelni. Erre a tar parancshasználható.
Archiválás
A konyvtar nevű könyvtár és tartalmát szeretnénk az fajlnev.tar állományba elhelyezni. A következőparancsot használhatjuk:
tar -cf fajlnev.tar konyvtar
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
A -cf tulajdonképpen két kapcsoló, egy -c és egy -f, de azok összevonhatók. A -c create szóból, azarchív elkészítésre utal, a -f pedig a fájlra, vagyis utána adjuk meg a az archív fájl nevét.
Archív csomag kibontása
A -x kapcsolóval tudjuk kibontani, azaz eXtract:
tar -xf fajlnev.tar
Archiválás tömörítéssel
tar -czf archive.tar.gz konyvtar
A -c kapcsoló megmondja, hogy készíteni kell egy archivot.A -z megmondja, hogy archivot tömöríteni is kell.A -f után adjuk meg a kimeneti fájl nevét
A kimeneti fájl a példában a: archive.tar.gzA „konyvtar”, amit archiválni és tömöríteni kell.
A példában a -c, -z és -f kapcsolókat halmoztuk: -czf
Halmozás nélkül az eredeti parancs:
tar -c -z -f archive.tar.gz konyvtar
A tömörített archive kibontása:
tar -xf archive.tar
eXtract [UK: ɪkˈstrækt] [US: ɪkˈstrækt] kibont
Tömörített archive kibontása:
tar -xzf archive.tar.gz
Használt kapcsolók
-c, --create-f, --file fájlnév-z, --gzip, --ungzip-x, --extract, --get-t, --list-W, --verify
verify [UK: ˈverɪfaɪ] [US: ˈverəˌfaɪ] átvizsgál, bizonyít, ellenőriz
2015/12/08 21:23 49/107 Linux parancssor
SzitWiki - http://szit.hu/
Gyakorlat
Hogyan bontunk ki egy archivot?Hogyan bontjuk ki az tömörített archivot?
Tömörítés
A Linuxos tömörítő programokról
Linux alatt szinte minden tömörítő eljárás megvalósításra került. A következő lista a teljesség igényenélkül tartalmaz tömörítő programokat:
xzarcgzipbzip2pbzip2lrziplzipp7ziprzip (nagy fájlokhoz)ncompress (csomag; parancs: compress)
További parancsokért nézzük meg a gzip kézikönyvét:
man gzip
További csomagokért nézzünk szét a csomagok között:
apt-cache search compress
Tömörítés
Tar fájl tömörítése:
gzip fajlnev.tar
Eredmény:
fajlnev.tar.gz
Kibontás
gunzip fajlnev.tar.gz
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
Eredmény:
fajlnev.tar
Az xz tömörítő
Mostanában népszerű a xz-utils csomagban található tömörítő program. Az LZMA2 algoritmusthasználja. Az xz tulajdonképpen a 7z lecsupaszított változatának is tekintik (A 7z bzip2, LZMA2 ésLZMA eljárásokat kombinálja).
Tömörítés:
xz fajlnev.tar
Kapunk egy fájlt fajlnev.tar.xz nevű fájlt.
Kibontás:
unxz fajlnev.tar.xz
Folyamatkezelés
A folyamatokról
A programról „program” néven beszélünk amíg az egy háttértárolón van. Ha elindítottuk a programot,akkor bekerül a memóriába, ekkor folyamatról beszélünk. A folyamat tehát egy futó program amemóriában, másként végrehajtás alatt lévő program. Angolul task vagy process néven találkozunkvele. Az átlagfelhasználó persze nem szokta ezeket neveket használni, egyszerűen csak programkéntbeszél róla.
A folyamatok újabb folyamatokat indíthatnak. Amikor elindítunk egy parancsot, azt eleve egyparancsértelmező programban tesszük. A parancsértelmezőből indított folyamat szülője maga aparancsértelmező. Valójában minden folyamat visszavezethető a hierarchiában egy közösősfolyamatra, ennek neve: „init”.
Folyamatok előállítása
A folyamat előállítása, tulajdonképpen egy program futtatása. Két eset lehetséges, a rendszer vagytudja hol van az elindítani kívánt program, vagy mi magunk mondjuk meg hol találhatók azok. Akövetkező lista azon könyvtárakat sorolja fel, ahol nagy valószínűséggel találunk indíthatóprogramokat:
/bin/sbin/usr/bin/usr/sbin
2015/12/08 21:23 51/107 Linux parancssor
SzitWiki - http://szit.hu/
Egyéb helyek:
/usr/games/usr/local/bin/usr/local/sbin
Szeretnénk például futtatni az ifconfig parancsot. Írjuk be:
/sbin/ifconfig
Vagy a dmesg parancs:
/bin/dmesg
Ha egy parancs útvonalban van, akkor nem kell megadnunk a teljes útvonalat. Elég az ifconfig, vagy admesg parancs kiadása.
Ha egy parancs az aktuális könyvtárban van, végigírhatjuk a teljes útvonalat, vagy a ”./„karakterpárossal jelzem, hogy helyben keresendő a parancs.
A felhasználóknak szokás a saját könyvtárukban egy „bin” nevű könyvtár létrehozása, amelybenelhelyezhetik saját programjaikat, scriptjeiket. A joska felhasználó például ide rakja saját programjait:
/home/joska/bin/
A folyamatok száma a rendszerben korlátozott. A maximálisan létrehozható folyamatok számaalapértelmezésben: 32768. A rendszeredben a maximális értéket így derítheted ki:
cat /proc/sys/kernel/pid_max
Egy felhasználó azonban nem hozhat létre 32768 számot. A felhasználói limit lekérdezése:
ulimit -u
Folyamatok listázása
A folyamatok vagy angolosan processzek a ps parancs segítségével listázhatók. Paraméter nélkülhasználva csak az aktuális terminálról indított folyamatokról informál minket:
ps
PID TTY TIME CMD8205 pts/2 00:00:00 bash8215 pts/2 00:00:00 ps
Indítsunk három folyamatot, amelyet rögtön a háttérbe is teszünk:
nano &mcedit &
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
yes > /dev/null &
A folyamataink megtekintése:
ps
PID TTY TIME CMD 2975 pts/0 00:00:00 bash22403 pts/0 00:00:00 nano22407 pts/0 00:00:00 mcedit22409 pts/0 00:02:59 yes22411 pts/0 00:00:00 ps
Nézzük meg milyen állapotban vannak a háttérbe tett folyamatok (ps a):
...22403 pts/2 T 9:58 nano22407 pts/2 T 0:00 mcedit22409 pts/2 R 0:00 yes...
A harmadik oszlop mutatja a státuszokat.
Az R futó (runing), a T megállított (terminate, de lehet trace vagyis nyomkövetett. Láthatjuk, ahogy anano és az mcedit programokat háttérbe tettük, azok megállított állapotba kerültek. A yes parancsviszont futó állapotba került. A yes parancs csak az y karaktert írja a képernyőre szünet nélkül. Mipersze ezt a /dev/null-ba irányítottuk. Amikor az ”&„ karakterrel háttérbe tesszük a folyamat nem állmeg.
Megnézhetjük az össze folyamatot a ps ax paranccsal:
ps ax
A kapcsolókat nem vezettük be kötőjellel.
Ezek után ehhez hasonló kimenetet láthatunk (részlet másolata):
PID TTY STAT TIME COMMAND... 4244 ? S 0:01 /usr/sbin/apache2 -k start 4245 ? S 0:00 /usr/sbin/apache2 -k start... 8474 ? S 0:01 [kworker/1:2] 8509 ? R 0:01 [kworker/1:1] 8572 pts/2 R+ 0:00 ps ax
A PID oszlop tartalmazza a folyamatazonosítókat (process identity) az első oszlopban.
A TTY oszlop azt mutatja, hogy a folyamat TeleTYpe-hoz van-e kötve. A szolgáltatást nyújtó démonprogramok nincsenek.
2015/12/08 21:23 53/107 Linux parancssor
SzitWiki - http://szit.hu/
A STAT oszlop a folyamat állapotáról tájékoztat.
A TIME oszlop mutatja, hogy a processzor idejéből mennyit használ.
Az utolsó oszlopban (COMMAND) a futtatott parancs nevét látjuk kapcsolókkal együtt.
A -f kapcsoló a full szóból ered, használata teljes kiemenet ad:
ps ax -f
Az „f” alparancs viszont megmutatja a gyermek szülő kapcsolatokat:
ps axf
Például egy részlet:
1366 ? Ss 0:00 /usr/sbin/apache2 -k start 2522 ? S 0:00 \_ /usr/sbin/apache2 -k start 2523 ? S 0:00 \_ /usr/sbin/apache2 -k start 2524 ? S 0:00 \_ /usr/sbin/apache2 -k start 2525 ? S 0:00 \_ /usr/sbin/apache2 -k start 2526 ? S 0:00 \_ /usr/sbin/apache2 -k start
A folyamatot indító felhasználók mutatása:
ps axu
STAT mezőR futó (runing) vagy futáskész (runable)S alvó (sleeping) de megszakíthatóD nem megszakíthatóan alvó (uninterruptible sleep) rendszerint IOT megállított (job kontroll; stoped) vagy nyomkövetett (traced)Z zombi (zombie) megállított, de elvesztette a szülőjétW nincs rezidens lapja (érvénytelen a 2.6.xx kernelek ótaX halott (valószínűleg sosem látható)
A STAT mezőhöz járulékos jelzések adhatók a BSD szerinti formátumban. A man -L en pskézikönyvben találunk róla infot:
< magas prioritás (más felhasználó nem tudja felülírni)N alacsony prioritás (más felhasználó felülírhatjaL a lapok a memóriába vannak zárva (valós idő eléréséhez és IO tevékenységhezs vezető munkamenetl többszálas (CLONE_THREAD használata, az NPTL pthreads-hez hasonló tevékenység)+ folyamat csoport az előtérben
Néhány példa:
ps -f
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
UID PID PPID C STIME TTY TIME CMDandras 22290 22151 0 07:32 pts/5 00:00:00 bashandras 23071 22290 0 11:40 pts/5 00:00:00 ps -f
UID felhasználó azonosítóPID folyamatazonosítóPPID szülőfolyamat azonosítójaC processzor kihasználtságSTIME indulási időTTY melyik teletájphoz van kötveTIME felhalmozott processzoridőCMD indító parancs
Felhasználói oszlopok
ps -o pid,stat,cmd PID STAT CMD 3823 Ss bash 4582 R+ ps -o pid,stat,cmd
Szülő folyamatok PID száma
A -ef kapcsolópárossal a folyamatok szüleinek PID-t is láthatjuk, ez a PPID.
Az oszlopok ekkor így néznek ki:
UID PID PPID C STIME TTY TIME CMDroot 1 0 0 10:24 ? 00:00:01 /sbin/initroot 2 0 0 10:24 ? 00:00:00 [kthreadd]root 3 2 0 10:24 ? 00:00:00 [ksoftirqd/0]root 4 2 0 10:24 ? 00:00:00 [kworker/0:0]root 5 2 0 10:24 ? 00:00:00 [kworker/0:0H]...
Folyamatok leállítása
Folyamat leállítása mindenképpen
kill -9 PIDSZÁM
A PIDSZÁMOT a „ps ax” parancs kimenetéből nézhetjük ki. Ha leállítandó program azonosítója 4852,akkor így állítjuk le:
kill -9 4852
A Linuxos rendszerben a folyamatok jelzésekkel kommunikálnak egymással. A használható jelzéseket
2015/12/08 21:23 55/107 Linux parancssor
SzitWiki - http://szit.hu/
kilistázhatod a következő paranccsal:
kill -l
További információkat olvashatsz a jelzésekről a man7 signal kézikönyvből.
Egy folyamat egyes jelzéseket figyelmen kívül hagyhat, másokat kötelezően figyelembe kell vennie.Egyes jelzéshez tartozik alapértelmezett művelet, egyesekhez nem.
Az alábbi táblázatban 31 jelzést látunk. Ezek az első Bell Laboratórium létrehozott Unixbólszármaznak. A POSIX szabvány alapján, további jelzésekkel egészült ki a jelzések listája, 34-től 64-ig.
man 7 signal kézikönyv alapján:
Jel Azonosító Tevékenység Leírás
HUP 1 Term A kontroll terminál megszűnt (A felhasználó kilépett)vagy démon esetén újra kell olvasni a konfigurációs fájlokat
INT 2 Term Megszakítás a billentyűzetről (Ctrl + C)QUIT 3 Core Kilépés a billentyűzetrőlILL 4 Core Illegális utasítás
ABRT 6 Core Abort signal from abort(3)FPE 8 Core Lebegőpontos kivételKILL 9 Term Semlegesítő jel
SEGV 11 Core Érvénytelen memóriahivatkozásPIPE 13 Term Eltört cső (pájp): írás vagy olvasás nem létező csőbe
ALRM 14 Term Időzítőjel az alarm(2)-tőlTERM 15 Term MegszakításjelUSR1 30,10,16 Term Felhasználó által definiált jelzés 1USR2 31,12,17 Term Felhasználó által definiált jelzés 2CHLD 20,17,18 Ign A gyermek leállt vagy megszakadtCONT 19,18,25 Cont Folytatás, ha meg lett állítvaSTOP 17,19,23 Stop A folyamat megállításaTSTP 18,20,24 Stop Megálljt gépeltek egy tty eszközönTTIN 21,21,26 Stop tty bevitel egy háttérfolyamat számáraTTOU 22,22,27 Stop tty kivitel egy háttérfolyamat számára
Termi - megállítja a folyamatotCore - megállítja a folyamatot, majd a kidumpolja a core adatokatStop - megállítja a folyamatotCont - folytatja a folyamatot, ha az meg volt állítvaIgn - elutasítja a folyamatot
A kill paranccsal lekérdezhetjük egy jelzés száma alapján a nevét. Például:
kill -l 1
Démon folyamat újraindítása:
killall -HUP pidszám
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
Egy 0 számú szignállal azt is megvizsgálhatjuk, hogy egy folyamat fut vagy nem fut.
Olvasnivalók: man signal, man 7 signal
Több folyamat egyetlen terminálban
Folyamat leállítása
A folyamatokat leállíthatjuk a Ctrl+Z billentyűkombinációval.
Indítsuk el a nano nevű szövegszerkesztő programot:
nano
Az indítás után a Ctrl+Z billentyűkombinációval tegyük háttérbe. Most indítsunk egy másik nano nevűprogramot, tegyük ezt is háttérbe a Ctrl+Z billentyűkkel. Indítsunk egy vi nevű szövegszerkesztőt.Tegyük a Ctrl+Z-vel háttérbe. Most indítsunk egy mutt nevű levelező programot. Tegyük háttérbe eztis.
Ezek után nézzük meg a háttérbe tett folyamatokat a „jobs” paranccsal:
jobs
Az eredmény ehhez hasonló:
[1] Megállítva nano[2] Megállítva nano[3]- Megállítva vi[4]+ Megálíltva mutt
A megállított nano, vi és mutt programot látjuk. Mindegyik kapott egy sorszámot. A sorszámokathasználhatjuk annak jelzésére, hogy melyiket szeretnénk előtérbe hozni.
Előtérbe az „fg” paranccsal hozhatjuk a folyamatokat. Ha csak önmagában adom ki az „fg” parancsot,akkor az utolsót, esetünkben a mutt nevű folyamatot hozza vissza. Az „fg” parancsnak azonbanparaméterként megadhatok egy sorszámot is. Például a második nano program visszahívása:
fg 2
Egy folyamat persze már indításkor is háttérbe tehető:
yes > /dev/null &
Ha az fg parancsnak nem adunk meg paramétert, akkor a legkisebb azonosító számú programot fogjaelőtérbe hozni.
2015/12/08 21:23 57/107 Linux parancssor
SzitWiki - http://szit.hu/
Gyakorlás
A yes parancs folyamatosan a képernyőre írja a paraméterként megadott szöveget, és a coreutilscsomagban található. Ha nem adunk meg paramétert akkor az y betűt írja. Használhatjuk tesztekhez.Például irányítsuk a y betűk sorozatát a /dev/null állományba:
yes > /dev/null
Így kapunk egy programot, amely folyamatosan a fut. A termináltól úgy tudom elszakítani, hogy atanult módon háttérbe helyezem:
Ctrl + Z
Vagy már indításkor is a háttérbe helyezhetjük:
yes > /dev/null &
Az elindított folyamatok számát ellenőrizzük, majd hozzuk előtérbe azokat és szakítsuk meg.Megszakítás a következő billentyűkombinációval:
Ctrl + C
Folyamatok fastruktúrában
A használható parancs:
pstree
Csak a jozsi felhasználó folyamatainak megjelenítése:
pstree joszi
A pstree kimenete átadható a less parancsnak lapozás céljából:
pstree | less
Vagy:
pstree joszi | less
A példa kedvéért indítsunk két folyamatot, amit leállítunk. Feltételezzük, hogy a felhasználónevünk„tibi”. A teendők a következők:
nano <Ctrl>+<Z>nano <Ctrl>+<Z>pstree -c tibi
Lehetséges kimenet (ha tibi csak egyszer lépett, és csak ezeket a programokat futtatja egy
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
teletájpról):
bash─┬─nano └─nano
top
Folyamatok valós idejű figyelése
Kilépés:
q
A h billentyűvel lekérdezhetjük a használható billentyűket:
h
Z,B Globálisan: a 'Z' a színtérképek cseréje; 'B' félkövér tiltása/engedésel,t,m Összefoglalók: 'l' terhelési átlagok; 't' folyamat/CPU statisztika; 'm' memóriainformációk1,I SMP nézet: '1' egyszerű/kifejtett; 'I' Irix/Solaris módf,o Mezők/Oszlopok: 'f' hozzáad vagy töröl; 'o' a megjelenés sorrendje
F vagy O A kiválasztott mező rendezése<,> A mező mozgatása: '<' a következő oszlop balra; '>' a következő oszlop jobbraR,H Kulcs: 'R' normál/fordított rendezés; 'H' szálak mutatásac,i,S Kulcs: 'c' cmd name/line; 'i' üres folyamatok; 'S' növekvő időx,y Kiemelő kulcsok: 'x' rendezett mezők; 'y' futó folyamatokz,b Kulcs: 'z' színes/mono; 'b' félkövér/fordít (csak 'x' vagy 'y' esetén)u Csak a felhasználók folyamatai
n vagy # Maximálisan mutatott folyamatok számak,r Folyamatok kezelése: 'k' kill; 'r' prioritás (renice)
d vagy s Frissítési időköz beállításaW Beállítások fájlba írásaq Kilépés
fuser
Használt fájl vagy könyvtár
A folyamatok által használt fájlokat és socketeket az fuser paranccsal tudjuk vizsgálni.
Szeretnénk látni azoknak a folyamatoknak a PID-jét, amelyeket az aktuális felhasználó használ:
fuser .
A kimenet:
2015/12/08 21:23 59/107 Linux parancssor
SzitWiki - http://szit.hu/
.: 21384c
A példában szereplő PID szám végén van egy „c” karakter. Ez a hozzáférés típusát mondja megszámunkra. Lássuk milyen típusok vannak még:
c az aktuális könyvtáre végrehajtható állományf nyitott fájlF írásra megnyitott fájlr root könyvtárm memóriába mapolt fájl vagy osztott könyvtár
A részletek megmutatásához írjuk be a -v kapcsolót:
fuser -v .
A kimenet:
FELHASZNÁLÓ PID HOZZÁFÉRÉS PARANCS.: joska 21384 ..c.. bash
Használt port
Melyik program használt egy adott portot?
Vizsgáljuk meg rootként a 80-as portot:
fuser -v -n tcp 80
A kimenet:
FELHASZNÁLÓ PID HOZZÁFÉRÉS PARANCS80/tcp: root 1416 F.... apache2 www-data 1539 F.... apache2 www-data 1540 F.... apache2 www-data 1541 F.... apache2 www-data 1542 F.... apache2 www-data 1543 F.... apache2 www-data 2856 F.... apache2 www-data 2909 F.... apache2 www-data 2925 F.... apache2 www-data 2926 F.... apache2
Porthasználat példa 2
fuser -v -n tcp 12345
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
FELHASZNÁLÓ PID HOZZÁFÉRÉS PARANCS12345/tcp: andras 3097 F.... server
Csatolt könyvtár
A mount paranccsal felcsatolt /mnt/valami könyvtárat valami foglalja. A következő parancs leállítja ezta programot:
fuser -vmk /mnt/valami
Futtatható program
./fuser
fuser -v server
Eredmény:
FELHASZNÁLÓ PID HOZZÁFÉRÉS PARANCSserver: andras 3097 ...e. server
Socket
fuser -v /var/run/mysqld/mysqld.sock
Eredmény:
FELHASZNÁLÓ PID HOZZÁFÉRÉS PARANCS/var/run/mysqld/mysqld.sock: mysql 1905 F.... mysqld
Program folyamatának kilővése
fuser -v -k server
FELHASZNÁLÓ PID HOZZÁFÉRÉS PARANCSserver: andras 3097 ...e. server
Ha program terminálhoz van kötve, akkor a következőt láthatjuk:
./serverKilőve
2015/12/08 21:23 61/107 Linux parancssor
SzitWiki - http://szit.hu/
Folyamat kilővése interaktív módon
fuser -v -i -k server
FELHASZNÁLÓ PID HOZZÁFÉRÉS PARANCSserver: andras 3199 ...e. serverKilövi a(z) 3199 folyamatot? (i/N)
fuser -v -i -k ./
Eredmény:
./: FELHASZNÁLÓ PID HOZZÁFÉRÉS PARANCS joska 1231 ..c.. bash joska 1327 ..c.. nano joska 1343 ..c.. mcedit joska 1345 ..c.. yesKilövi a(z) 1282 folyamatot? (i/N) nKilövi a(z) 1327 folyamatot? (i/N) iKilövi a(z) 1343 folyamatot? (i/N) iKilövi a(z) 1345 folyamatot? (i/N) i[1] Kilőve nano[2] Kilőve mcedit[3] Kilőve yes
pgrep és pkill
A pgrep és pkill parancsok segítségével a folyamatlistát tudjuk megszűrni minta alapján. A mintábanhasználhatók helyettesítő karakterek is, a man 7 regex alapján.
A rendszerben több felhasználó is indíthatott nano szövegszerkesztőt. Mi most a joska nevűfelhasználó által indított nano folyamat PID számára vagyunk kíváncsiak:
pgrep -u joska nano
Szeretnénk leállítani mindenáron a joska által indított nano folyamatokat:
pkill -9 -u joska nano
A pgrep és a pkill persze igazán akkor hasznos, ha mintákat is használunk.
A felhasználókat megadhatjuk a UID alapján is. A root felhasználó folyamatai:
pgrep -lu 0
pidof
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
A pidof segítségével folyamatok azonosítóját deríthetjük ki. Indítsunk egy nano programot, majdtegyük a Ctrl+Z-vel háttérbe. Majd futtassuk a következő parancsot:
pidof nano
A parancs az összes nano folyamat PID számát kiírja. Lehetséges kimenet:
3745 3694 3693
Gyakorlat
Hogyan tudjuk listázni a rendszer összes folyamatát?Hogyan tudjuk megjeleníteni a folyamatokat valós időben?Milyen jelzést kell küldeni egy folyamatnak, hogy biztosan leálljon?
Szűrők
A szűrőkről általában
A szűrők a bemenetükre került adatokkal csinálnak valamit, majd a kimenetre küldik.
cat
A cat az egyetlen szűrő, amely a bemenetre érkező adatokkal semmit nem csinál. Változatlanul írjaazokat a képernyőre. Mégis ez a parancs – mint azt feljebb láttuk, amellyel a legtöbb dolgot tehetjük.Ezek:
állomány tartalmának megjelenítéseállomány létrehozásaállományok összemásolásaállományok másolásaállományhoz fűzés
Állomány létrehozása:
cat > dolgozok.txt
Állomány tartalma:
cat dolgozok.txt
Állományok összemásolása:
cat fajl1 fajl2 fajl3 > egyfajl.txt
Állományok másolása:
2015/12/08 21:23 63/107 Linux parancssor
SzitWiki - http://szit.hu/
cat < eredeti > masolat
A fájl végéhez fűzünk:
cat >> dolgozok.txtSzabó Gábor 830000[Ctrl]+[D]
A fájl végéhez fűzők:
cat >> dolgozok.txt <<VEGENagy József 800000Kis Béla 570000Jég Lajos 750000VEGE
cat összefoglalva
Állományok létrehozása
cat > filenev.txttartalom...<Ctrl>+<D>
Állomány tartalmának megtekintése
cat < filenev
vagy
cat filenev
Állományok másolása
cat < filenev > filenev2
Állományok összemásolása
cat file1 file2 file3 > file4
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
colrm
A bemenetre érkező sorokból bizonyos oszlopok törlése
Szintaxis:
colrm [startoszlop [ végoszlop ]]
A példa kedvéért adott az alábbi tabulátorral tagolt állomány a következő tartalommal:
tanulok.txt
001 Alex Brown 85 5002 Dan Igor 40 3003 Barton Flex 56 3004 Rock Brain 78 4
Szeretnénk a nevek oszlopait eltüntetni.
Megoldás:
cat tanulok | colrm 9 24
Eredmény:
cel.txt
001 85 5002 40 3003 56 3004 78 4
Nagyobb példafájl:
tanulok.txt
001 Alex Brown 85 5002 Dan Igor 40 3003 Barton Flex 56 3004 Rock Brain 78 4005 Kis István 72 4006 Nagy Béla 70 4007 Fehér Tamás 28 1008 Kékes Imre 45 4009 Per Béla 78 4010 Zöld Elek 78 4011 Piros Gábor 23 1012 Fék Lajos 28 4
2015/12/08 21:23 65/107 Linux parancssor
SzitWiki - http://szit.hu/
013 Elmúlt Tibor 78 4014 Leendő Tamás 28 4015 Pék Gergő 78 4016 Rob Sándor 18 1017 Kékedi Imre 70 4018 Nagy Lajos 85 4
Egyéb használat
ifconfig eth0 | colrm 1 10
cat /var/log/syslog | colrm 1 16 | colrm 30
cat /var/log/auth.log.1 | colrm 70
Utóbbi példában ha szimplán az állomány tartalmát listázom, azok kilógnak a következő sorban. Acélom, hogy átláthatóbb sorokat szeretnék, de jelenleg csaka sorok elejére vagyok kíváncsi.
cut
Csak bizonyos oszlopokat szeretnénk megjeleníteni.
Szintaxis:
cut [opció] … [fájl] ...
Szóközökkel tagolt sorok
Adott az alábbi szóközökkel tagolt állomány:
tanulok2.txt
001 Alex Brown 85 5002 Dan Igor 40 3003 Barton Flex 56 3004 Rock Brain 78 4
Megoldás:
cat tanulok2.txt | cut -c4-22
Az eredmény:
Alex Brown Dan Igor Barton Flex
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
Rock Brain
Tabulátorral tagolt sorok
tanulok.txt
001 Alex Brown 85 5002 Dan Igor 40 3003 Barton Flex 56 3004 Rock Brain 78 4
Megoldás:
cut -f2 < tanulok.txt
A futtatás eredménye:
cut -f2 < tanulok.txtAlex BrownDan IgorBarton FlexRock Brain
Kettősponttal tagolt
tanulok3.txt
001:Alex Brown:85:5002:Dan Igor:40:3003:Barton Flex:56:3004:Rock Brain:78:4
Megoldás:
cut -f2 -d : tanulok3.txt
A -d kapcsoló után szóközzel vagy a nélkül megadjuk az elválasztójelet. A -d kapcsolóval szinte bármitmegadhatunk szeparátornak.
Eredmény:
cut -f2 -d: tanulok3.txtAlex BrownDan IgorBarton Flex
2015/12/08 21:23 67/107 Linux parancssor
SzitWiki - http://szit.hu/
Rock Brain
Egyszerre több oszlop megjelenítése
cut -f 2,3,7 -d : tanulok3.txt
Eredmény:
cut -f 2,3,4 -d: tanulok3.txtAlex Brown:85:5Dan Igor:40:3Barton Flex:56:3Rock Brain:78:4
mcrypt
A következő parancsok használatához szükséges az mcrypt nevű csomag telepítése. A telepítéshezlásd a csomagkezelés részt a „Rendszer” fejezetben.
Titkosítás
Adott az alábbi állomány a következő tartalommal:
nyilt.txt
Holnap este érkezem.
Szeretnénk titkosítani az állományt.
Titkosítás:
mcrypt nyilt.txt
A futtatás eredménye:
mcrypt nyilt.txtEnter the passphrase (maximum of 512 characters)Please use a combination of upper and lower case letters and numbers.Enter passphrase:Enter passphrase: File nyilt.txt was encrypted.
A parancs bekért egy jelszót kétszer, majd létrehozza a következő állományt:
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
nyilt.txt.nc
A nyilt.txt.nc szöveg tartalmát ha megnézzük olvashatatlan szöveg lesz. Így már elküldhetjük a titkosüzenetet. Ezek után az üzenet vevőjének vissza kell kódolni az üzenetet.
Dekódolás
A visszafejtés a következő paranccsal lehetséges:
mdecrypt nyilt.txt.nc
A futtatás eredménye:
mdecrypt nyilt.txt.ncEnter passphrase:File nyilt.txt.nc was decrypted.
A parancs bekéri a jelszót, majd elkészíti a nyilt.txt.nc állományt visszakódolva a nyilt.txt nevű fájlt.
crypt parancs
A crypt parancsot a mcrypt csomag valósítja meg. Régi unixból ismert parancs, amely a stdin-ről várjaa bemenetet, és a stdout-ra ír.
crypt < nyilt.txt > titkos.txtUnix crypt(1) emulation program using mcrypt(1). Use crypt -h for more help.Enter the passphrase (maximum of 512 characters)Please use a combination of upper and lower case letters and numbers.Enter passphrase:Enter passphrase: Stdin was encrypted.
Persze ebben a formában is használahtó:
crypt > titkos.ncUnix crypt(1) emulation program using mcrypt(1). Use crypt -h for more help.Enter the passphrase (maximum of 512 characters)Please use a combination of upper and lower case letters and numbers.Enter passphrase:Enter passphrase: Holnap este érkezem.
2015/12/08 21:23 69/107 Linux parancssor
SzitWiki - http://szit.hu/
Stdin was encrypted.
Visszafele ugyanígy:
crypt < titkos.ncUnix crypt(1) emulation program using mcrypt(1). Use crypt -h for more help.Enter the passphrase (maximum of 512 characters)Please use a combination of upper and lower case letters and numbers.Enter passphrase:Enter passphrase: Holnap este érkezem.Stdin was encrypted.
grep
Adott mintát tartalmazó sorok megjelenítése
Szintaxisa:
grep [ kapcsolók ] minta [ fájl ... ]
Adott az alábbi belépési napló:
belepesinaplo.txt
2005.10.25 18:30 alex 196.145.43.32005.10.26 18:30 joe 216.45.3.22005.10.26 18:44 richard 196.145.43.32005.10.28 22:31 joe 196.145.43.32005.10.29 18:00 alex 196.145.43.3
A futtatás eredménye:
grep alex belepesinaplo.txt 2005.10.25 18:30 alex 196.145.43.32005.10.29 18:00 alex 196.145.43.3
A grep -v azokat jeleníti meg, amelyek nem tartalmazzák a sorokat.
grep -v alex belepesinaplo.txt2005.10.26 18:30 joe 216.45.3.22005.10.26 18:44 richard 196.145.43.32005.10.28 22:31 joe 196.145.43.3
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
Az alábbi naplóállomány a következő mezőket tartalmazza:
dátum idő felhasználónév ipcím letöltött adatmennyiség
naplo.log
2005.12.25 18:30 alex 196.145.43.3 1960 bytes2005.12.26 18:30 joe 216.45.3.2 1512 bytes2005.12.26 18:44 richard 196.145.43.3 2005 bytes2005.12.28 22:31 joe 196.145.43.3 2006 bytes2005.12.29 18:00 alex 196.145.43.3 2050 bytes2006.01.02 08:25 joe 195.166.29.5 2008 bytes2006.01.02 12:20 alex 195.165.1.1 2005 bytes
Feladatunk, hogy listázzuk a 2006-os eseményeket. Ha most a fentebb tárgyalt módon csak ennyitírunk:
grep 2006 naplo.log
úgy azok a sorok is megjelennek ahol a letöltött byte-ok száma 2006. Ezért ez nekünk nem jó.Jeleznünk kell, hogy csak azokat a sorokat szeretnénk megjeleníteni, ahol a 2006 a sor elejénszerepel. Ehhez a ^ karaktert használjuk:
grep ^2006 naplo.log
A karakterosztályok használata
naplo.log
2005.12.25 18:30 alex 196.145.43.3 1960 bytes2005.12.26 18:30 joe 216.45.3.2 1512 bytes2005.12.26 18:44 richard 196.145.43.3 2005 bytes2005.12.28 22:31 joe 196.145.43.3 2006 bytes2005.12.29 18:00 alex 196.145.43.3 2050 bytes2006.01.02 08:25 joe 195.166.29.5 2008 bytes2006.01.02 12:20 alex 195.165.1.1 2005 bytes2006.01.03 07:02 mari 195.165.2.45 2007 bytes
A fenti állományban azokat a sorokat keressük, ahol a letöltés 2005, 2006, 2007 vagy 2008 van.
grep "200[5678] bytes" naplo.log
A negyedik karakter csak a szögletes zárójelben ”[ ]„ megadott négy karakter egyikére illeszkedik. Az5,6,7 vagy 8-as karakterek valamelyikére. A szám után kötelezően egy szóköznek, majd utána byteskarakterek megköveteltek.
A szögletes zárójel lehetővé teszi intervallumok megadását [5-8]:
2015/12/08 21:23 71/107 Linux parancssor
SzitWiki - http://szit.hu/
grep "200[5-8] bytes" naplo.log
Az intervallumok megadására használhatók betűk is:
[a-z]
Az előbbi minta például az angol ábécé összes kisbetűjére illeszkedik. A nagybetűk:
[A-Z]
Természetesen megadhatók kisebb intervallumok is:
[c-k]
Üres sorok törlése
grep -v "^$" filename
grep . filename
grep -v '^[[:space:]]*$' filename
Hashmárk jeles sorok kihagyása
grep -v '\#' filename
Fájlok keresése tartalom alapján
grep -H -r “Rewrite” /etc/apache2/
man -L en grep
grep gyakorlat
Adott az alábbi naplóállomány részlet (/var/log/syslog):
Feb 21 18:32:12 server postfix: Connection,Feb 21 18:32:12 server postfix: LOGIN, [email protected],Feb 21 18:32:46 server postix: LOGOUT, [email protected] 21 18:32:12 server pop3d: Connection,Feb 21 18:32:12 server pop3d: LOGIN, [email protected],Feb 21 18:32:46 server pop3d: LOGOUT, [email protected]
Csak a pop3d-t tartalmazhó sorokat szeretnék megjeleníteni.
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
grep pop3d /var/log/syslog
Adott egy konfigurációs állomány (dspam.conf) ami tele van megjegyzésekkel. Szeretném kiszűrni amegjegyzés sorokat és csak a beállításokat szeretném:
## DSPAM Home: Specifies the base directory to be used for DSPAM storage#Home /var/spool/dspam
Ekkor:
grep '^[^#]' dspam.conf
Fájl keresése tartalom alapján
grep -lir "keresett szöveg" /utvonal/konyvtar
egrep
Nem egyezik meg a grep -E használatával, mert annál több reguláris kifejezést ismer ha ezthasználjuk.
Ehhez hasonló reguláris kifejezések is használhatók:
+,?, | és ()
fgrep
Fix vagy fast grep rövidítése. Megegyezik a grep -F használatával
paste
Adatoszlopok összemásolása
Állományok oszlopainak összemásolása egy fájlba, egymás mellé
Szintaxis:
paste [ kapcsolók ... ] [ fájl ... ]
Van 4 darab fájl:
sroszamnev
2015/12/08 21:23 73/107 Linux parancssor
SzitWiki - http://szit.hu/
szuletesnaptelefonszam
sorszam
001002003
nev
AlexBrownJoe
szuletesnap
1985.07.111987.01.121999.12.22
telefonszam
(1) 335-3345(37) 332-328(48) 183-981
Szeretnénk egyetlen fájlban egymás mellé összemásolni.
Megoldás:
paste sorszam nev szuletesnap telefon > info.txt
Eredmény:
info.txt
001 Alex 1987.07.11 (1)335-3345002 Brown 1987.01.12 (37) 332-328003 Joe 1999.12.22 (48) 143-981
Tagolás szóközökkel
Megoldása
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
paste -d ' ' sorszam nev szuletesnap telefon > info
Eredmény:
info
001 Alex 1987.07.11 (1)335-3345002 Brown 1987.01.12 (37) 332-328003 Joe 1999.12.22 (48) 143-981
Tagoláshoz persze bármit megadhatunk pl.:
-d ':'
Táblázat oszlopainak cseréje
Adott egy dolgozok nevű állomány, amiben oszlopokban szeretnénk megcserélni.
dolgozok
Név Fizetés BeosztásAlex 130000 festőBrown 150000 asztalosJoe 170000 villanyszerelő
Megoldás:
cut -f1 dolgozok > nevcut -f2 dolgozok > fizetescut -f3 dolgozok > beosztas paste nev beosztas fizetes > dolgozok2 more dolgozok2 rm nev beosztas fizetes
sort
A bemenetre érkező adatokat rendezi.
A sort parancsot Adatok rendezése és összemásolása
Ha a bemenet egy másik programtól jön csővezetéken:
2015/12/08 21:23 75/107 Linux parancssor
SzitWiki - http://szit.hu/
cat filenev.txt | sort
Ha a program bemenete egy állomány:
sort < filenev.txt
Fordított rendezés
sort -r nevek.txtsort --reverse nevek.txt
Kimeneti fájl megadása
sort -o ujfajl.txt nevek.txt
Átirányítással:
sort nevek.txt > ujfajl.txt
Ha így használjuk:
sort nevek.txt > nevek.txt
A nevek.txt tartalma elveszett, mert a kimeneti fájl előkészítése megtörténik annak olvasása előtt.
Itt lehet ugyanaz a név:
sort -o nevek.txt nevek.txt
Egy fájlba
sort nevek1 nevek2 nevek3 > osszes
Egy fájlba rendezi a 3 fájl tartalmát
A gyümölcs fájl tartalma:
gyumolcs.txt
kortealmaszilvabarack
Eredmény:
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
sort gyumolcs.txtalmabarackkorteszilva
Rendezés adott mező szerint
gy.txt
1 körte2 alma3 szilva
Második oszlop szerint szeretnénk rendezni:
sort -k +2 < gy.txt
-k oszlopszám
rev
Egy sort megfordít
A rev parancsot karakterek sorrendjének megfordítása használjuk.
Szintaxis:
rev [fájl …]
A bemenet lehet a STDIN is.
Legszemléletesebben egy egyszerű állományon láthatjuk a működését. Az adat.txt állomány tartalmalegyen a következő:
adat.txt
12345abcdeAxAxA
Futtatás:
rev adat.txt54321edcba
2015/12/08 21:23 77/107 Linux parancssor
SzitWiki - http://szit.hu/
AxAxA
spell
A spell egy helyesírás ellenőrző program. A unixos rendszerekből származik. A spell csomag telepítéseután használható.
A spell a paraméterként megadott állományból kiírja azokat a szavakat amiket helytelennek tart.
Magyar helyesírásh ell.-hez: ihungarian csomag kell telepítve legyen.
(magyar környezeteben ékezet gondok)
helyesen helytelenülbarack barckszilva szilvekörte köritealma almehelyes helytelenpeach peacplum plempear peareapple aple
Gyakorlás
Adott a következő fájl:
gy.txt
barcakszilveeperkörtealme
A harmadik szó helyes, a többit helytelen.
Végrehajtás:
spell gy.txt
A parancs az eper szó kivételével kiír minden sort.
ispell használata
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
A hunspell csomag használata esetén rávehetjük annak használatára is:
spell -i /usr/bin/ispell gy.txt
hunspell használata
A hunspell csomag használata esetén rávehetjük annak használatára is:
spell -i /usr/bin/hunspell gy.txt
ispell
Ez egy interaktív helyesírás ellenőrző program.
Indítás:
ispell gy.txt
Az indítás után a program kiírja a hibás szót, majd lehetőségeket kínál a változtatásra. Számokkaladhatjuk meg, mire szeretnénk javítani. Ha ez nem egyezik az általunk kívánt lehetőséggel, akkor az rlenyomása után mást is beírhatunk. A program minden lehetőséget kiír a képernyő alján.
barcak File: gy.txt barcak : barack 1: barnak 2: bar�ak [SP] <number> R)epl A)ccept I)nsert L)ookup U)ncap Q)uit e(X)it or ? forhelp
Hátránya, hogy nem ismeri az UTF-8 kódolásul ékezeteseket.
http://magyarispell.sourceforge.net/magyarispell.pdf
aspell
Interaktív helyesírás ellenőrző program. UTF-8-as környezetben kezeli az ékezetes karaktereket.
2015/12/08 21:23 79/107 Linux parancssor
SzitWiki - http://szit.hu/
Felülete hasonlít az ispell programhoz.
Használatához telepíteni kell a aspell csomagot, a magyar helyesírás ellenőrzéshez pedig a aspell-hu csomagot.
Adott a következő állomány:
gy.txt
Szeretem a gyümölcsöket. Kedvenceim az alme, körti, szilve és a barakc.
aspell check gy.txt
barckszilvaköritealme
1) barack 4) barik2) Barcs 5) barok3) Barok 6) barék
i) Ignore I) Ignore allr) Replace R) Replace alla) Add l) Add Lowerb) Abort x) Exit?
hunspell
Adott a következő állomány:
gy.txt
Szeretem a gyümölcsöket. Kedvenceim az alme, körti, szilve és a barakc.
Ellenőrzés:
hunspell gy.txt
Felülete:
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
barck File: gy.txt
barck
0: barack 1: barok 2: barik 3: barék 4: barcsik 5: Barcs 6: barcsi 7: barchesz
[SPACE] R)epl A)ccept I)nsert U)ncap S)tem Q)uit e(X)it or ? for help
Előnyök:
http://manpages.ubuntu.com/manpages/hardy/hu/man1/hunspell.1.html
tr
Kiválasztott karakterek cseréje.
tr [kapcsolók] … készlet1 [készlet2]
Adatokat olvas a stdin-ről készlet1-beli előfordulását keresi, ha talál lecseréli a készlet2-beli párjával.
Kis a nagy A lesz:
tr a A < regifajl > ujfajl
Kis a,b,c nagy A,B,C lesz:
tr abc ABC < regifajl > ujfajl
Minden nagybetű kicsi lesz:
tr A-Z a-z < regifajl > ujfajl
2015/12/08 21:23 81/107 Linux parancssor
SzitWiki - http://szit.hu/
Ékezetlenítés
tr éáóö eaoo < ekezetes > ekezetlen
Az ékezetlenítés UTF-8-as környezetben nem jó működik. Helyette ajánlott a sed parancs használata.
uniq
Az ismétlődő sorokat csak egyszer jeleníti meg.
Rendezett, Ismétlődő sorok törlése
uniq [kapcsoló] ... [bemenet [kimenet]]
Így nem működik!
adat
almakörtealmabarackszilvakörte
uniq adatalmakörtealmabarackszilvakörte
Így helyes!
adat
almakörtealmabarackszilvakörte
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
sort adat | uniqalmabarackkörteszilva
wc
Sorok megszámolása
Sorok, szavak és karakterek számolása
Szintaxis:
wc [kapcsoló] ... [fájl] ...
Adott egy állomány:
adat
almakörtebarackszilva
Végrehajtás:
wc adat 4 4 25
Amit kaptunk:
4 sor4 szó25 byte
Gyakori használat.
wc -l
Csak sorok számolása
nl
Sorszámozás
A sorokat sorszámozza
2015/12/08 21:23 83/107 Linux parancssor
SzitWiki - http://szit.hu/
A számok a sor elé kerülnek
Példa a használatra:
nl -n rz -w3 -s:
(-n) jobbra zárt, előnullázva(-w3) számjegyek száma(-s:) szeparátor
Eredmény:
001:adat1:adat2
tac
A bemenetet megfordítja, az utolsó sortól írja ki.
eredeti.txt
alma 40 dbkörte 53 dbbarack 25 dbszilva 27 db
uj.txt
szilva 27 dbbarack 25 dbkörte 53 dbalma 40 db
expand
tabulátorok szóközökre cserélése
tanulok_tab.txt
001 Alex Brown 85 5002 Dan Igor 40 3003 Barton Flex 56 3004 Rock Brain 78 4
Végrehajtás:
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
expand tanulok_tab.txt > tanulok_szokoz.txt
unexpand
Szóközök tabulátorra cserélése.
Adott a következő állomány szóközökkel tagolva:
tanulok_szokoz.txt
001 Alex Brown 85 5002 Dan Igor 40 3003 Barton Flex 56 3004 Rock Brain 78 4
Végrehajtás:
unexpand -a tanulok_szokoz.txt > tanulok_tab.txt
(-a) Ne csak a bevezető szóközöket és tabulátorokat, hanem az összeset alakítsa át tabkarakterekké.
join
Összefűzés
Minden egyes azonos összekapcsolási mezővel rendelkező bementi sorpárhoz kiír egy sort aszabványos kimenetre.
nev
1 János2 Ferenc3 István4 Kati
szul
1 19814 19342 19453 1967
Végrehajtás:
2015/12/08 21:23 85/107 Linux parancssor
SzitWiki - http://szit.hu/
join nev szul1 János 19812 Ferenc 19343 István 19454 Kati 1967
Az állományok tartalmazhatnak üres sorokat. De ha nincs rendezve, akkor nem mindig jó azeredmény.
fold
sorok tördelése a megadott mezőszámmal:
fold -w 70 file.txt
Tegyük fel, hogy kaptam egy e-mailt, amelyben egy szöveges fájl van, de a levelet úgy írták, hogynem törtek sort a képernyő jobb szélre érve, ezért a mi olvasó programunkban kilóg a képernyőről.
level.txt
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiamcondimentum blandit sapien non volutpat. Vivamus posuere massa euismodlibero varius et mollis velit aliquam. Donec ultrices placeratconsequat. Phasellus sit amet est non lorem vestibulum placerat iaculisvitae justo. Lorem ipsum dolor sit amet, consectetur adipiscing elit.Vivamus bibendum feugiat eleifend. Duis tincidunt tempus eros, aclaoreet magna suscipit eu. Praesent quis facilisis lacus. Quisqueimperdiet egestas lectus dapibus iaculis. Morbi egestas nulla eu magnasagittis vitae eleifend lacus sodales. Nullam vel nunc nisl. Vestibulumeget sapien eros. Donec ac pellentesque odio. In hac habitasse plateadictumst.
(Ezt az állományt letöltheted így is:)
curl http://szit.hu/wiki/download/level.txt > level.txt
Ekkor tördelhetjük az az állományt a fenti mint alapján:
fold -w 70 level.txt
expr
Kifejezés kiértékelése
expr 1 + 23
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
expr 1 ”<” 21
expr 1 ”>” 2
expr length "alma a"6
expr 3 "*" 26
expr 1 = 2
tsort
Topológikus rendezést hajt végre egy fájlon.
Szintaxis:
tsort [fájl]
Ha nincs fájl megadva, akkor STDIN-ről olvas.
Például
Át fogunk adni a tsort-nak egy „X történt Y előtt” típusú párokból álló listát, és megvizsgáljuk, hogyhogyan rendezi azt. Megjegyezzük, hogy adott részleges rendezés esetén nem mindig létezikegyértelműen teljes rendezés is.
Adott a következő állomány:
szul.txt
Éva JánosErika JánosPéter ÉvaZoltán Erika
Alkalmazás
tsort < szul.txtPéterZoltánÉvaErikaJános
2015/12/08 21:23 87/107 Linux parancssor
SzitWiki - http://szit.hu/
diff
A diff Két fájl összehasonlítása való sorról sorra. A használat során listázza a két összehasonlítottállomány eltérő részeit.
gy1.txt
almakörtebarackszilva
gy2.txt
almakörteszilva
diff gy1.txt gy2.txt3d2< barack
Két könyvtár összehasonlítása:
diff elso masodikCsak elso -ben: egy.txtCsak masodik -ben: ketto.txt
A program kiírja, ha egy fájl csak az egyik könyvtárban van.
patch
A patch program foltozásra való. A foltot a diff programmal készítjük, majd patch paranccsal fűzzük arégi állományhoz.
Például adott a következő állomány:
gy1.txt
almabarackkörteszilva
Lemásoljuk az állományt:
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
cp gy1.txt gy2.txt
A gy2.txt állományban változásokat viszünk véghez.
Az állomány ezek után így néz ki:
gy2.txt
almabanánbarackcitromkörteszilva
A folt elkészítése:
diff -cBN gy1.txt gy2.txt > gy2.patch
Végrehajtás során:
diff -cBN gy1.txt gy2.txt > gy2.patch*** gy1.txt 2011-11-20 00:12:50.000000000 +0100--- gy2.txt 2011-11-20 00:45:58.000000000 +0100****************** 1,4 ****--- 1,6 ---- alma+ banán barack+ citrom körte szilva
Ha ezek után valakinek meg van gy1.txt állomány, a javítások alkalmazásához a foltot kellmegszerezni. Akinek csak a gy1.txt állomány van, megszerzi a foltot, majd alkalmazza a gy1.txtállományon.
A gy2.patch állományt a gy1.txt állománnyal azonos könyvtárba másolom. A patch alkalmazása ezután:
A folt alkalmazása:
patch < gy2.patch
Akkor hasznos ez a folthasználat alkalmazása ha az eredeti állomány nagyon nagy, nagyon komplexés szeretnénk egy apróbb vagy nagyobb változtatást alkalmazni az eredeti állományon.
A programozók gyakran használják a foltozást. Ha belejavítanak egy állományba, akkor csak elkészítika régi és új állomány különbségét (folt), majd ezt visszaküldik az eredeti fejlesztőnek. Az eredeti
2015/12/08 21:23 89/107 Linux parancssor
SzitWiki - http://szit.hu/
fejlesztőnek csak foltot kell letöltenie, amelyet alkalmaz az eredeti állományon.
diff3
Három fájl összehasonlítása sorról sorra.
sdiff
Két állomány összehasonlítása, tartalmuk interaktív egyesítése.
A két állomány tartalmát két oszlopban jeleníti meg, nagyon szemléletesen a különbségeket.
cmp
Két fájl összehasonlítása
Alapértelmezés szerint azonos állományok esetén nem ír ki semmit, eltérés esetén jelzi az eltérés sor-és bájtszámát.
comm
Sorról-sorra összehasonlít két rendezett fájlt.
A comm három oszlopban írja ki két állomány összehasonlításának eredményét. Az első oszlopbancsak azok a sorok szerepelnek, amelyek csak az első, a másodikban azok amelyek csak a második,végül a harmadikban azok amelyek mindkét állományban előfordulnak.
tail
Egy állomány végét írja ki.
Például:
tail /var/log/syslog
head
Egy állomány elejét írja ki.
dos2unix
A dos2unix egy parancs, amely ugyanezen a néven telepszik.
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
A Wines fájlvége jeleket cseréli Linuxosra és vissza.
strings
ASCII karaktersorozatok keresése. Tipikusan bináris fájlokban szoktunk keresni olvasható szöveget.Például egy futtatható .exe vagy elf binárisban szeretnénk látni ki írta, hátha szerepel benne.
tee
A tee parancs a bemenetét fájlba és az alapértelmezett kimenetre irányítja egyszerre. Akkor lehethasznos, ha a fájlba írás mellett szeretnék a képernyőre is írni vagy a kimenetet egy másikprogramnak csővezetéken továbbadni.
Fájlba és képernyőre:
cat fajl.txt | tee kimenet.txt
Fájlba és másik programnak:
cat fajl.txt | tee kimenet.txt | sort
Esetleg:
cat fajl.txt | tee kimenet.txt | sort | rendezettkimenet.txt
Egyéb parancsok
zdump
Az aktuális időt írja ki az adott időzónában.
Grinwicsi középidő például:
zdump UTC
Észak-amerikai idő lekérdezése:
zdump EST
Közép-európai idő lekérdezése:
zdump CET
Japán idő lekérdezése:
2015/12/08 21:23 91/107 Linux parancssor
SzitWiki - http://szit.hu/
zdump Japan
Eredmény:
Japan Sun Nov 20 20:32:16 2011 JST
A használható paraméterek listája:
ls /usr/share/zoneinfo
time
Megmérhetjük mennyi idő alatt hajtódik végre egy parancs
Valósidő és folyamatidő. Statisztika mennyi ideig tartott a parancs végrehajtása.
Például:
time ls /usr/bin
Eredményhalmaz:
real 0m1.232suser 0m0.028ssys 0m0.048s
Vagy
time sleep 60 real 1m0.009suser 0m0.000ssys 0m0.004s
times
Statisztika a programfutásról
times ls -l /
Eredmény:
0m3.948s 0m1.392s0m24.246s 0m3.240s
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
sleep
Várakozás meghatározott ideig. Alapértelmezett mértékegység a másodperc:
sleep 5
5 másodpercig vár
cal
Naptárat jelenít meg.
A cal parancs magyar kézikönyve sajnos elavult a Debian GNU/Linux 6.x rendszerekben. Helyettenézzük meg az angol nyelvűt. Például:
man -L us cal
Használhatjuk a cal helyett a ncal parancsot is.
A cal és az ncal parancsok a bsdmainutils csomag részei.
hwclock
A hardveróra lekérdezése és beállítása. Ez a parancs csak root felhasználóként használható.
rdate
Az rdate csomag egy távoli géről kérdezi le az időt.
rdate -p -n time.kfki.hu
Alapértelmezetten be is állítja az operációs rendszer idejét. Ez azonban csak root felhasználókénttehető meg.
A -n kapcsoló az RFC 2030 SNTP protokoll használatára utasít. Eredeti időprotokoll az RFC 868. De ezta példában szereplő kifki.hu intézet már régen nem szolgáltatja.
FIFO
FIFO fogalma
Mi a FIFO?
Elnevezett csövek
2015/12/08 21:23 93/107 Linux parancssor
SzitWiki - http://szit.hu/
Elnevezett pipe-okEgy különleges fájltípus
Mire jó?
Független folyamatok közötti adatcserét tesz lehetővé.
A FIFO használata
mkfifo pipeneve echo "Információ" > pipeneve & cat pipeneve
Az első sorral elkészítjük a FIFO-t. A második sorral teszünk bele információt, amely háttérbe kerül avégére tett & jel segítségével.
A cat pipeneve paranccsal olvassuk ki a FIFO tartalmát. A FIFO tartalma csak egyszer olvasható ki. Akiolvasással a háttérbe tett folyamat leáll.
ulimit
Az ulimit felhasználói limitek lekérdezésére és beállítására való.
Pl.:
ulimit -a
core file size (blocks, -c) 0data seg size (kbytes, -d) unlimitedscheduling priority (-e) 0file size (blocks, -f) unlimitedpending signals (-i) 16382max locked memory (kbytes, -l) unlimitedmax memory size (kbytes, -m) unlimitedopen files (-n) 1024pipe size (512 bytes, -p) 8POSIX message queues (bytes, -q) 819200real-time priority (-r) 95stack size (kbytes, -s) 8192cpu time (seconds, -t) unlimitedmax user processes (-u) unlimitedvirtual memory (kbytes, -v) unlimitedfile locks (-x) unlimited
Ehhez hasonló eredményt kaphatunk. Az egyes tulajdonságoknak megfelelő kapcsoló a kimenetbenlátható. Például, ha csak a verem (stack) méretét akarom lekérdezni:
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
ulimit -s
Vagy felhasználóként mennyi folyamatot és szálat indíthatok.
Lásd bővebben: ulimit
lsof
A nyitott fájlokat mutatja
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEinit 1 root cwd unknown/proc/1/cwd (readlink: Permission denied)init 1 root rtd unknown/proc/1/
date
A dátum kiíratására és beállítására való. Szimplán, paraméterek nélkül kiírj a dátumot:
date
Eredmény:
2012. jan. 15., vasárnap, 11.07.34 CET
Ha csak az aktuális évszámot szeretném:
date +%Y
Az év, hó és nap, kötőjelekkel tagolva:
date +%Y-%m-%d
Az év, hó és nap, tagolás nélkü:
date +%Y%m%d
Az idő lekérdezése, kettősponttal tagolva:
date +%H:%M
A kötőjeles forma megint:
date +%F
A kettőspontos forma újra:
2015/12/08 21:23 95/107 Linux parancssor
SzitWiki - http://szit.hu/
date +%R
Vegyesen szóközzel tagolva:
date "+%F %R"
A következő paranccsal beállíthatom az időt (Ehhez rendszergazdai jogok kellenek):
date 01151114
A mintában Január 15-öt állítok be, 11 óra és 14 percre. Ez persze csak rendszergazdaként fogműködni.
Így is lehet:
date --set 1998-11-02date --set 21:08:
Néha előfordul, hogy egy időbélyeg számként van eltárolva, és szeretnénk olvashatóbb formábanlátni:
date -d @1344444444
BSD rendszeren ugyanez:
date -r 1344444444
nice
Prioritás beállítása indításkor.
nice -n 5 nano
renice
Prioritás állítása futás közben.
renice 2 -p 2848828488: régi prioritás: 0, új prioritás: 2
logger
A logger programmal felhasználóként is írhatunk egy /var/log/syslog könyvtárba.
logger<Enter>Ami a naplóba megy
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
A naplóba dátummal, felhasználónévvel bekerül amit írtunk.
alias
Az alias parancs segítségével a parancsoknak megadhatunk alapértelmezett kapcsolókat.
Az alias parancs önmagában kiírja az aliaszokat:
alias
Ha például szeretnénk a -l kapcsolót folyamatosan megadni, akkor a következő parancsot adjuk ki:
alias ls="ls -l"
Az összes definiált alias megjelenítése:
alias -p
A beállított aliasok újabb munkamenet esetén elvesznek. Ezért írjuk őket ~/.bashrc fájlba. Ugyanakkornézünk szét ebben a fájlban az alias parancs után kutatva. A Debian GNU/Linux 6.x rendszerekben ittvan néhány előre definiált alias, és egy lehetőség, mely szerint ~/.bash_aliases fájlban ismeghatározhatunk újabb aliasokat.
Keresés
Szimpla keresés
Például keresem a main.c fájlt, amely az aktuális könyvtár valamelyik alkönyvtárban van:
find -name main.c
Lehetséges eredmény:
./c/main.c
Keresés helye
find /usr -name abook
A megtalált fájl becsomagolása
find -name main.c | xargs tar -cf valami.tar
2015/12/08 21:23 97/107 Linux parancssor
SzitWiki - http://szit.hu/
Keresés időbélyeg alapján
A fájlok statisztikájánál már volt szó arról, hogy egy Linux háromféle időbélyeget tárol egy fájlról.
mtime – modify time – A fájl módosításaatime – access time – A fájl olvasásactime – change time – Az inode módosítása
Az emberek ezekből általában az atime-ot ismerik, ami megmondja számunkra, a fájlt mikor olvastákutoljára.
Három napnál régebben olvasott fájlok:
find . -atime +3
Esetleg, ha a gyökérből értelmezve akarom futtatni:
find . -atime +3 -exec ls \;
Az utolsó három napban módosított fájl:
find . -mtime -3
Az utolsó 3 napban módosított txt fájlok:
find . -name '*.txt' -mtime -3
A 10000 kbytenál nagyobb fájlok:
find . -size +10000k
Fájl keresése tartalom alapján
find /utvonal/konyvtar -type f -exec grep -l "Amit keresek" {} +
Szabad hely
Háttértár
df -h
Memória
free
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
Információk a rendszerről
A terjesztéssel kapcsolatos információk megjelenítése:
lsb_release -a
Lehetséges kimenet:
No LSB modules are available.Distributor ID: DebianDescription: Debian GNU/Linux 6.0.5 (squeeze)Release: 6.0.5Codename: squeeze
A CPU hőmérséklete:
cat /proc/acpi/thermal_zone/THRM/temperature
acpi -t
cpuinfo.sh
#/bin/bash MHZ=`cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq`HOMERSEKLET=`cat /sys/class/thermal/thermal_zone0/temp` echo CPU Sebesség: $(($MHZ/1000)) MHz -- CPU Hőmérséklet:$(($HOMERSEKLET/1000)$
A processzor adatai:
cat /proc/cpuinfo
vagy:
lscpu
Hány bites a processzorod:
grep flags /proc/cpuinfo
Ha fenti kimenetben látod az lm szót, akkor 64-bites.
Terminál beállítása
A setterm parancs segítségével megváltoztathatjuk a terminálunk színeit.
2015/12/08 21:23 99/107 Linux parancssor
SzitWiki - http://szit.hu/
setterm -background white -foreground blue -store
Virtuális terminálon nem működik.
man setterm
Hexedit
Hexaszerkesztésre több csomagot is találunk parancssorban, nekem eddig a hexedit jött be alegjobban.
hexedit
Telepítés:
apt-get install hexedit
mkdir ~/munka/hexcp /bin/ls ~/munka/hex/lshexedit ~/munka/hex/ls
A bc számológép
Alap
Indítás:
bc
Kilépés:
quit
Segítség:
man bc
Alapműveletek
Összeadás:
3+2
Kivonás:
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
3-2
Osztás:
14/3
Szorzás:
3*5
Hatványozás:
2^8
Gyökvonás:
sqrt(9)
Számrendszerek közötti váltás
10 → 2
ibase=10obase=25101
10 → 16
ibase=10obase=1612C
Bemeneti számrendszer kiíratása:
print ibase,"\n"
2 → 10
ibase=2ibase=101004
Programírás
2015/12/08 21:23 101/107 Linux parancssor
SzitWiki - http://szit.hu/
#!/usr/bin/bc print "Első szám: "a = read()print "Második szám: "b = read()c = a + bprint "Összeg: ", c, "\n"quit
#!/usr/bin/bc
print "Első szám: "szam1 = read()
print "Második szám: "szam2 = read()
if (szam1>szam2) print "Az első szám nagyobb\n"
if(szam1<szam2) print "A második szám nagyobb\n"
quit
A stdin használata
A bc képe dolgozni az alapértelemzett bemenetről. Vagyis csővezetékből is képes adatokat venni:
echo 3 + 5 | bc
vagy:
echo 8 "*" 512 | bc
unix2dos
UNIX szöveges fájlok DOS/MAC formátumúvá alakítása.
Használatához a dos2unix csomagra van szükség.
Szintaxis:
unix2dos [options] [-c convmode] [-o file ...] [-n infile outfile ...]
Kapcsolók:
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
[-fhkLlqV] [--force] [--help] [--keepdate] [--license] [--newline][--quiet] [--version]
Bináris és nem szabályos fájlokat, mint a linkeket automatikusan átlép a program, ha csak nemhasználjuk a --force kapcsolót.
A -c kapcsoló:
c –convmode konverziósmód1.
Módok a következők lehetnek:
asciimac7bitiso
Példák:
unix2dos a.txt -c 7bit b.txt
unix2dos -c ascii a.txt -c 7bit b.txt
unix2dos < in.txt | iconv -f ISO-8859-1 -t CP850 > out.txt
iconv
Az iconv parancs állományok átkonvertálása más karakterkódolásra.
A használható karakterkódolások a -l kapcsolóval kérdezhetők le:
iconv -l
Milyen ANSI kódolások támogatottak:
iconv -l | grep -i ansi
Az eredmény ilyen lehet:
ANSI_X3.4-1968//ANSI_X3.4-1986//ANSI_X3.4//ANSI_X3.110-1983//ANSI_X3.110//MS-ANSI//
Használatra példa:
iconv -f ISO8859-2 -t UTF8 -o kimenet.txt bemenet.txt
2015/12/08 21:23 103/107 Linux parancssor
SzitWiki - http://szit.hu/
Vagy:
iconv -f MS-ANSI -t UTF8 -o kimenet.txt bemenet.txt
Ha nem tudjuk milyen kódolású amit szeretnénk átkódolni, használhatjuk a file parancsot:
file szoveg.txtszoveg.txt: UTF-8 Unicode text, with CRLF line terminators
file
A file utasítással információt kérhetünk állományokról.
Milyen kódolású egy fájl:
file -i /etc/apache2/apache2.conf
arch
A számítógép architektúrájának kiíratása. Az eredmény például i686. Megegyezik az uname -mparanccsal.
arch
uname -m
uptime
A gép mennyi ideje megy. Eredmény:
10:37:00 up 1:06, 3 users, load average: 0,79, 0,82, 0,71
A load average értéke például 0.01 0.01 1.00, a processzorok átlagos elérési ideje.
első szám: rövid távonmásodik szám: közép távonharmadik szám: hosszú távon
Ha 1.00-nál a szám kisebb akkor a processzor mindent azonnal kiszolgál. Ha nagyobb mint 1.00,akkor a proceszeknek várakoznia kell.
Ellenőrző összeg
CRC összeg számítás:
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
cksum fájlnév
Ellenőrző összeg számítása, BSD és System V algoritmusai:
sum fájlnév
MD5 ellenőrző összeg készítése:
md5sum fájlnév.kit > md5szam.txt
MD5 ellenőrzése:
md5sum -v -c md5szam.txt
A -v hatására kiírja ha az állomány rendben: OK Ha nem ok, akkor: FAILED
Önkicsomagoló állományok készítése
Az önkicsomagoló állomány mindig a már tömörített állományból készíthető. A tömörítendőállományokat célszerű egy könyvtárba tenni.
zip -r vmi.zip konyvatVagyAllomany | cat /usr/bin/unzipsfx vmi.zip > vmi.sfx
A zip esetén a -r rekurzívan az alkönyvtárakra is vonatkozik. vmi.zip esetén a kiterjeszétst nemkötelező megadni.
Az unzipsfx a Debian GNU/Linux 3.0-ban a uzip csomagban van.
A másik program shell típusú önkicsomagoló archív létrehozására:
shar -z állományok* > archinnev.shar
A -z kapcsoló a gzip tömörítésre ad utasítást.
A shar a Debain 3.0-ban a sharutils része.
Minimális személyes kalendárium
A when nevű parancs egy minimális személyi kalendáriumot valósít meg. Letölthető a weboldaláról,git tárolóból.
Debian alapú rendszereken csomagból telepíthetjük:
apt-get install when
Telepítés után kapunk egy „when” parancsot.
Első indításkor a következő üzenetet kapjuk:
2015/12/08 21:23 105/107 Linux parancssor
SzitWiki - http://szit.hu/
You can now set up your calendar. This involves creating a directory~/.when, and makinga couple of files in it. If you want to do this, type y and hit return.
Az üzenet szerint beállíthatjuk a kalendáriumunkat, amihez létre kell hozni egy ~/.when könyvtárat.Ha ezt az üzenet megértettük, akkor várja, hogy „y” leütésével nyugtázzuk, majd közli mi azalapértelmezett szövegszerkesztő.
yYou can edit your calendar file using your favorite editor. Please enter thecommand youwant to use to run your editor, or hit return to accept this default: emacs -nw
Én beírtam az „mcedit” parancsot, mivel ezt a szövegszerkesztőt szeretem.
mceditYou can now add items to your calendar file. Do ``when --help'' for moreinformation.Szo 2015 szept 26 4:50
A kalendárium szerkesztése ezek után:
when e
Ha az előbb a mcedit szövegszerkesztőt beírtuk, akkor azonnal el is indul, amely szerkesztiszámunkra a ~/.when/calendar állományt.
Írjunk be egy teszteseményt:
szept 26 Tesztesemény
A csillag az jelenti az év minden napján. A szeptembert magyarul beírva is értelmezi a program ahónapot. A napot 26-ra állítottam a példában. Mentés után lépjünk ki a szerkesztőből és futtassuk a„when” parancsot.
$ whenSzo 2015 szept 26 4:52
today 2015 szept 26 Tesztesemény
A program kiírja az aktuális napot, és az aktuális eseményt, ha van ilyen bejegyezve, a fenti példáhozhasonlóan.
SMB megosztás elérése
Egy állomány feltöltése:
Last update: 2015/12/08 20:38 oktatas:linux:parancssor http://szit.hu/doku.php?id=oktatas:linux:parancssor
http://szit.hu/ Printed on 2015/12/08 21:23
smbclient --user kati -c "put vmi.txt" //192.168.1.4/homes
A kati felhasználó könyvtárába töltjük fel a vmi.txt fájlt. Ha az aktuális felhasználó (ahol kiadjuk asmbclient parancsot) megegyezik a megosztás felhasználónevével, akkor nem kötelező a --userkapcsoló:
smbclient -c "put vmi.txt" //192.168.1.4/homes
Elérés interaktív módon:
smbclient //192.168.1.4/homes
Vagy van amikor a szerveren a megosztás csak „home”:
smbclient //172.16.0.1/home
Esetleg így:
smbclient --user joska //server/home
Általános kapcsolókkapcsoló Leírás
-U --user=felhasználónév Felhasználónév megadása-L --list A távoli gép szolgáltatásait mutatja-W --workgroup=tartománynév SMB csoport megadása-D --directory kezdőkönyvtár Kezdő könyvtár megadása
-c --command parancsszöveg Parancs végrehajtása a távoli szerveren.Kapcsolat nélkül szoktuk használni
Általánosan használt parancsok
Parancs Leírás
help [parancs] vagy ? [parancs] Az összes parancs megjelenítése,vagy egy adott parancs elírása
history Parancstörténet megjelenítése
cd [könyvtár] az aktuális könyvtár cseréje; argumentum nélkül az aktuáliskönyvtárat adja
lcd <könyvtár> a helyi könyvtár cseréjeput <helyi név> [távoli név] fájl feltöltéseget <távoli név> [helyi név] fájl letöltésels [maszk] az aktuális könyvtár tartalmamget <maszk> minden maszkra illeszkedő fájl letöltésemput <maszk> minden maszkra illeszkedő fájl feltöltése
recurse a rekurzív fel és letöltés engedélyezése az mget/mput parancsokesetén
promptVárakozás minden egyes fájl vagy könyvtár esetén,amikor mget/mput parancsot használjuk.Alapértelmezetten engedélyezve van.
!<helyi parancs> helyi parancs futtatása és a kimenet elkapása
2015/12/08 21:23 107/107 Linux parancssor
SzitWiki - http://szit.hu/
Parancs Leíráslistconnect Az aktuális kapcsolatról ad információt
more <fájlnév> Távoli fájl lekérése és tartalmának megmutatásaa PAGER környezetei változóban beállított lapozóval
rename <régi fájlnév> <újfájlnév>
Fájlok átnevezése az aktuáliskönyvtárban, a távoli gépen
rm <maszk> Az összes maszkkal egyező fájl törlése a távoli szerverenrmdir <könyvtárnév> Adott könyvtár törléseshowconnect Aktuális kapcsolat megjelenítése
lowercase Távoli fájlnevek kisbetűssé alakítása a get és mget parancsokszámára.
Utószó
Ezt a könyvet, jegyzetet (Ez az egy lap: Linux parancssor) még 2009-ben itt kezdtem el írni:
http://hu.wikibooks.org/wiki/Linux/Parancssor
Itt azonban kötekedett az ottani „vezető”, hogy hogyan alakítsam a tartalmat, mit írjak még. Eztmegelégeltem. Tulajdonképpen akkor gondoltam, hogy szükség lenne egy saját wikire. Íme a SzitWiki(http://szit.hu). Remélem másnak is hasznára válik. Az oktatás oldalon megtalálható az e-mail címem,szívesen veszek visszajelzéseket.
Külső linkek
http://www.gnu.org/software/bash/manual/html_node/http://hu.opensuse.org/Dokument%C3%A1ci%C3%B3/SL9.3/Rendszer/A_Linux_f%C3%A1jlrendszereihttp://www.thegeekstuff.com/2012/02/linux-fuser-command/http://thesmithfam.org/blog/2006/05/23/bash-socket-programming-with-devtcp-2/http://content.hccfl.edu/pollock/Unix/FindCmd.htm (find)http://linux.about.com/od/commands/a/blcmdl1_findx.htm (find)http://linuxbox.hu/find (find)http://www.comptechdoc.org/os/linux/programming/linux_pgsignals.html (Jelzések)http://www.nano-editor.org (Nano)http://codeidol.com/security/samba/Unix-Clients/smbclient/ (smbclient)
From:http://szit.hu/ - SzitWiki
Permanent link:http://szit.hu/doku.php?id=oktatas:linux:parancssor
Last update: 2015/12/08 20:38