Tartalomjegyzék
Kivonat
A Linux-rendszer indulása után általában egy grafikus felhasználói felület jelenik meg, amely átvezet a bejelentkezési folyamaton és segít a rendszerrel való kapcsolatban. Bár a grafikus felhasználói felületek egyre fontosabbá és egyre felhasználóbarátabbá válnak, nem az egyetlen módját jelentik a rendszerrel folytatott kommunikációnak. Használható szöveges alapú kommunikáció is: egy, a parancssorokat feldolgozó program (ezt szokás parancsértelmezőnek hívni). Mivel a Linux lehetővé teszi parancsértelmező ablakok elindítását a grafikus felhasználói felületről is, semmi akadálya a két módszer együttes használatának.
Az adminisztráció terén a parancsértelmezőre épülő alkalmazások különösen fontosak a csak lassú hálózati kapcsolatokon keresztül elérhető számítógépek vezérlésében, vagy ha a root
felhasználó nevében kíván parancssori feladatokat kiadni. „Újonc” Linux-felhasználók számára eleinte szokatlan lehet a parancsok egy szöveges képernyőn begépelése, de hamar rájönnek, hogy nemcsak rendszergazdák számára hasznos dolog a parancsértelmező – egyes naponta ismétlődő feladatok elvégzésére sokszor a leggyorsabb és legegyszerűbb megoldást jelentik.
UNIX- és Linux-rendszerekben többféle parancsértelmező is használható. A SUSE® Linux Enterprise alapértelmezett parancsértelmezője a Bash (GNU Bourne-Again Shell).
Ebben a fejezetben a parancsértelmező használatával kapcsolatos néhány alapvető dolgot mutatunk be. Ezek az alábbiak: hogyan kell beírni a parancsokat, a Linux könyvtárstruktúrája, fájlok és könyvtárak kezelése, egyes alapvető funkciók használata, a Linux által használt felhasználói és jogosultságfogalom, a parancsértelmezőben kiadható legfontosabb parancsok áttekintése, valamint a vi szövegszerkesztő, a UNIX- és Linux-rendszerekben mindig elérhető alapértelmezett szerkesztő rövid bemutatása.
Linux rendszereken a parancssor a grafikus felhasználói felülettel együtt használható és egyszerű a váltás a kettő között. A KDE grafikus felületéről egy terminálablak megnyitásához kattintson a panel Konsole ikonjára. GNOME alatt kattintson a GNOME Terminál ikonjára a panelen.
Megjelenik a Konsole vagy a GNOME Terminál ablaka, és az első sorában a prompt (15.1. ábra - Példa egy bash terminálablakra). A prompt általában a bejelentkezési névből (a jelen példában tux
), a gép nevéből (itt knox
) és az aktuális elérési útból áll (a jelen esetben a saját könyvtár, amelyet a tilde ~
szimbólum jelez). Távoli számítógépről bejelentkezve mindig látható, hogy éppen melyik rendszeren dolgozik. Ha a kurzor látható a prompt után, akkor közvetlenül lehet parancsokat adni a számítógépes rendszernek.
Egy parancs több elemből áll. Az első elem mindig maga a parancs, amelyet paraméterek és opciók követnek. Beírhat parancsokat és szerkesztheti azokat a ←, →, <—, Suppr és Space billentyűk segítségével. Hozzáadhat paramétereket, vagy kijavíthatja a gépelési hibákat. A parancsok az Entrée billentyű lenyomásakor kerülnek végrehajtásra.
![]() | A hír hiánya jó hír |
---|---|
A parancsértelmező nem túl szószátyár: szemben egyes grafikus felületekkel, általában nem ad visszajelző üzeneteket a parancsok végrehajtása után. Üzenetek csak a problémák vagy hibák esetén jelennek meg. Érdemes ezt észben tartani, mert az objektumokat törlő parancsokra is igaz. Mielőtt megadna egy, az rm-hez hasonló parancsot egy fájl törléséhez, érdemes pontosan tisztában lenni vele, hogy mit is csinál: a fájl visszavonhatatlanul törlődni fog, visszakérdezés nélkül. |
Figyelje meg a parancsok szerkezetét egy egyszerű példán: az ls parancs szolgál a könyvtárak tartalmának kiíratására. A parancs használható paraméterekkel és nélkülük. Ha az ls paraméterek nélkül írja be a konzolba, akkor az aktuális könyvtár tartalma jelenik meg.
Szemben más operációs rendszerekkel, a Linux-fájloknak lehet kiterjesztésük, például .txt
, de nem muszáj, hogy legyen nekik. Ez viszont azt eredményezi, hogy nehéz lehet különbséget tenni a fájlok és a könyvtárak között az ls parancs kimenetében. Alapértelmezés szerint a színek segítenek egy kicsit: a könyvtárak kék színnel jelennek meg, a fájlok pedig feketével (fehérrel).
Jobb módszer a könyvtár tartalmának a kiíratására az ls parancs különféle paraméterekkel együtt történő használata. A paraméterek módosítják a parancsok működését, így meghatározott feladatok végezhetők el. A paraméterek a parancstól egy szóközzel el vannak választva, és előttük egy kötőjel (mínusz jel) áll. Az ls -l
parancs például a könyvtár tartalmát teljes részletességgel (hosszú listaformátumban) mutatja meg.
Az objektumok nevei mellett több oszlopban láthatók az objektumok egyéb adatai. A legfontosabbak a következők: az első oszlop jelzi az objektum fájltípusát (a jelen példában d
a könyvtárak, -
a normál fájlok esetében). A következő kilenc oszlop az objektum felhasználói jogosultságait jelzi. A 11. és 12. oszlop a fájl tulajdonosának és tulajdonos csoportjának a nevét jelzi (a jelen esetben tux
és users
). A felhasználói jogosultságokról és a Linux felhasználói fogalmairól a 15.2. szakasz - Felhasználók és hozzáférési jogosultságok rész ír többet. A következő oszlop a fájl méretét jelzi bájtokban. Ezután a legutolsó módosítás dátuma és ideje látható. Az utolsó oszlop az objektum nevét jelzi.
Ha még ennél is több információra kíváncsi, akkor össze lehet kapcsolni az ls parancs két paraméterét: írja be, hogy ls -la
. A parancsértelmező ezek után a könyvtár rejtett fájljait is megjeleníti, ponttal a nevük előtt (például .rejtettfájl
).
Senkitől nem várható el, hogy fejből tudja az összes parancs összes paraméterét. Ha emlékszik a parancs nevére, de nem biztos a paraméterek használatában, írja be a parancs nevét, egy szóközt és a --help
paramétert. Ez a --help
paraméter nagyon sok parancs esetében működik. Az ls --help
például megjeleníti az ls parancs összes paraméterét.
Mivel a parancsértelmező nem kínál grafikus áttekintést a könyvtárakról és a fájlokról a fájlkezelőkéhez hasonló faszerkezetben a parancsértelmező hatékony használatához szükség van a Linux rendszer fájl- és könyvtárszerkezetének bizonyos fokú ismeretére. A könyvtárak tekinthetők a fájlokat, programokat és alkönyvtárakat tároló elektronikus mappáknak. A könyvtárhierarchia csúcsán a gyökérkönyvtár található, amelyet /
szimbólum jelöl. Innen érhető el az összes többi könyvtár
A 15.4. ábra ábra bemutatja a Linux szokásos könyvtárfa-struktúráját, az yxz
, linux
és tux
felhasználók saját könyvtárával. A /home
könyvtárban találhatók az egyes felhasználók személyes fájljait tartalmazó könyvtárak.
![]() | Saját könyvtár egy hálózati környezetben. |
---|---|
Hálózati környezetben dolgozva előfordulhat, hogy a saját könyvtár neve nem |
Az alábbi lista röviden bemutatja a Linux szokásos könyvtárait.
15.1. táblázat - Egy szokásos könyvtárfa áttekintése
|
gyökérkönyvtár, a könyvtárfa kiindulópontja |
|
felhasználók (saját) könyvtárai |
|
a rendszerkonfiguráció fájljai |
|
a rendszerbetöltés korai szakaszában szükséges programok ( |
|
az összes alkalmazásprogram és a helyi, disztribúciófüggetlen bővítések ( |
|
Általánosan elérhető programok ( |
|
különféle dokumentumfájlok |
|
ideiglenes fájlok (ne mentsen ebbe a könyvtárba, csak ha nincs szüksége a fájlokra) |
|
külön telepíthető szoftverek, nagyobb kiegészítő programcsomagok (például KDE, GNOME, Netscape) |
A fájlokkal és könyvtárakkal végzett munka során meg kell adni a könyvtárhoz vagy fájlhoz vezető elérési utat. Az elérési út kétféleképpen adható meg:
Az abszolút elérési utak mindig egy törtvonallal kezdődnek. A relatív elérési utak elején nincs törtvonal.
![]() | A Linux érzékeny a kis- és nagybetűkre |
---|---|
A Linux különbséget tesz a kis- és nagybetűk között a fájlrendszerben. A |
Könyvtárváltáshoz használja a cd parancsot.
A saját könyvtárba váltáshoz adja ki a cd parancsot (paraméter nélkül).
Az aktuális könyvtárra egy ponttal lehet hivatkozni (.
). Ezek elsősorban más parancsok (cp, mv, …) esetén hasznosak.
A fa eggyel feljebbi szintjére két ponttal lehet hivatkozni (..
). Ha például az aktuális könyvtár szülőkönyvtárába kíván átlépni, írja be, hogy cd ...
A 15.1.3. szakasz - Könyvtárak és fájlok kezelése részben a cd parancs relatív elérési utakat használt. Természetesen abszolút elérési utak is használhatók. Tegyük fel például, hogy a saját könyvtárból át akar másolni egy fájlt a /tmp
egy alkönyvtárába:
Először is a saját könyvtárból hozzon létre egy alkönyvtárat a /tmp
alatt:
Ha az aktuális könyvtár nem a saját könyvtár, akkor írja be a cd ~
parancsot az átváltáshoz. A fájlrendszerben bárhonnan elérheti a saját könyvtárát a cd ~
paranccsal.
A saját könyvtárában írja be, hogy mkdir /tmp/teszt
. Az mkdir a „make directory”, azaz könyvtár létrehozása parancsot jelenti. Ez a parancs létrehoz egy teszt
nevű új könyvtárat a /tmp
könyvtárban. Ebben az esetben abszolút elérési utat használtunk a könyvtár létrehozásához.
Azt, hogy mi történt, a ls -l /tmp
paranccsal ellenőrizheti. A /tmp
könyvtár tartalmában meg kell, hogy jelenjen az új teszt
könyvtár.
Most hozzon létre egy új fájlt a saját könyvtárában, és másolja át a /tmp/teszt
könyvtárba, relatív elérési út használatával.
Írja be, hogy touch myfile.txt
. A touch
parancs a myfile.txt
paraméterrel kiadva azt eredményezi, hogy létrejön egy új, üres, myfile.txt
nevű fájl az aktuális könyvtárban.
Ellenőrizze ezt az ls -l
paranccsal. Az új fájlnak látszania kell a listában.
Írja be, hogy cp myfile.txt ../tmp/teszt
. Ez átmásolja a myfile.txt
fájlt a /tmp/teszt
könyvtárba, anélkül, hogy megváltoztatná a fájl nevét.
Ellenőrizze az ls -l /tmp/teszt
paranccsal. A myfile.txt
fájlnak látszania kell a /tmp/teszt
könyvtár listájában.
Más felhasználók saját könyvtárának a tartalmát az ls ~
paranccsal listázhatja ki. 15.4. ábra - Részlet egy szokásos könyvtárfából példa könyvtárfájában a példafelhasználók egyike a felhasználónév
tux
. Az ls ~tux parancs kilistázza tux
saját könyvtárának a tartalmát.
![]() | Szóközöket tartalmazó fájl- és könyvtárnevek kezelése |
---|---|
Ha egy fájlnév szóközöket tartalmaz, akkor vagy használjon fordított törtvonalat ( |
A bash parancsértelmező használata közben elég sokat kell gépelni. Az alábbiakban bemutatunk néhány olyan funkciót, amelyik leegyszerűsíti a munkát és egy csomó gépelést meg tud takarítani.
Alapértelmezés szerint a bash „emlékszik” a beírt parancsokra. Ezt a funkciót hívjuk előzményeknek (history). Egy korábban már beírt parancs megismétléséhez egyszerűen csak nyomja meg többször a ↑ billentyűt, amíg a kívánt parancs meg nem jelenik a parancssorban. A ↓ megnyomásával mozoghat előre a korábban beírt parancsok listájában. A Ctrl-R használatával kereshet az előzményekben.
Foghatja a kiválasztott parancsot, és például megváltoztathatja benne egy fájl nevét, mielőtt újra kiadná a parancsot az Entrée megnyomásával. A parancssor szerkesztéséhez egyszerűen csak mozogjon a kurzorral a kívánt helyre a nyíl billentyűket használva, és gépelje be a kívánt szöveget.
A bash másik hasznos funkciója, hogy képes kiegészíteni a fájlok és könyvtárak nevét az első néhány betűjük beírása után. Ehhez írja be az első néhány betűt, majd nyomja meg a →| gombot. Ha a fájl neve vagy az elérési út egyértelműen azonosítható, akkor azonnal kiegészítésre kerül, és a kurzor a fájlnév végére mozog. Ezután írhatja a parancs következő paraméterét, például. Ha a fájl neve vagy az elérési út nem azonosítható egyértelműen (például mert sok fájl neve kezdődik ugyanazokkal a betűkkel), akkor a fájl vagy elérési út csak addig a pontig kerül kiegészítésre, ahol elágazási lehetőség van. Ezután a →| másodszori megnyomásával lekérheti a lehetőségek listáját. Ezután írja be a fájl vagy az elérési út következő néhány betűjét, majd próbálja újra használni a kiegészítést: nyomja meg a →| gombot. Amikor a →| gombot használja a fájlnevek és elérési utak kiegészítéséhez, egyidejűleg ellenőrizheti, hogy a fájl vagy elérési út valóban létezik-e (és biztos, hogy jól fogja írni).
A parancsértelmező kényelmi szolgáltatásai közé tartozik a helyettesítő karakterek használata is. A helyettesítő karakterek egyéb karakterek helyett állhatnak. A Bash háromféle helyettesítő karaktert ismer:
?
Pontosan egy tetszőleges karaktert helyettesít
*
Tetszőleges számú karaktert helyettesít
[halmaz
]
Egyetlen karaktert helyettesít, amely a szögletes zárójelek között található karakterek bármelyike lehet, vagyis ebben az esetben ez a halmazban
felsorolt karaktersorozat bármelyik karaktere A halmaz
részeként meg lehet adni karakterosztályokat is a következő szintaxissal: [:osztály
:], ahol osztály helyére az alnum
, alpha
, ascii
stb. kerülhet.
A !
vagy ^
használata a csoport elején A ([!halmaz
]) egy olyan karakternek felel meg, amelyik nem egyezik a halmaz
-ban megadott karakterek egyikével sem.
Amennyiben a teszt
könyvtár Tesztfajl
, Tesztfajl1
, Tesztfajl2
és adatfajl
nevű fájlokat tartalmazza,
akkor az ls Tesztfajl? parancs a Tesztfajl1
és Tesztfajl2
fájlokat fogja kilistázni.
Az ls Tesztfajl? parancs a Tesztfajl1
és Tesztfajl2
fájlokat fogja kilistázni
Az ls Teszt* parancs esetében már a Tesztfajl
is szerepelni fog a listán.
Az ls *faj* parancs valamennyi példafájlt megjeleníti.
Végül, a halmaz
helyettesítővel az összes számra végződő fájl megadható: ls Tesztfajl[1-9] vagy osztályok segítségével: ls Tesztfajl[[:digit:]].
A négy helyettesítő közül a csillag a leghatékonyabb. Ennek segítségével egyetlen parancs elegendő egy könyvtár összes fájljának másolásához, vagy törléséhez. Az rm *faj* parancs például az összes, a nevében a faj karaktersorozatot tartalmazó fájlt törli az aktuális könyvtárban.
A Linux két kis programmal teszi lehetővé szöveges fájlok megtekintését közvetlenül a parancsértelmezőben. Ez a less
és a more
. Egy Olvassel.txt
fájl megtekintéséhez például nem kell külön szövegszerkesztőt elindítani, elég begépelni a less Olvassel.txt parancsot, hogy a szöveg megjelenjen a konzolablakban. A szóköz billentyű segítségével lapozhat előre egy oldalt. A Page Up és Page Down billentyűkkel mozoghat előre és hátra a szövegben. A less programból kilépéshez a Q billentyűt kell megnyomni.
A less helyett a régebbi more program is használható. Ez azonban kevésbé kényelmes, mivel nem teszi lehetővé a visszafelé lapozást.
A less program, amelynek neve onnan származik, hogy a kevesebb több (less is more, vagyis a less program több [mint a more]), egy parancs kimenetének kényelmes megjelenítésére is alkalmas. Ennek működéséről további információ: 15.1.4.4. szakasz - Átirányítások és csövek.
A parancsértelmező szabványos kimenete a képernyő vagy a konzolablak, szabványos bemenete pedig a billentyűzet. A parancsértelmező azonban lehetővé teszi, hogy a egy parancs bemenetét vagy kimenetét átirányítsa egy másik objektumnak, például egy fájlba, vagy egy másik parancsnak. A >
és <
szimbólumokkal átirányítható egy parancs kimenete egy fájlba (kimenet átirányítása), illetve felhasználható egy fájl egy parancs bemenetéül (bemenet átirányítása), Ha például az ls parancs kimenetét egy fáljba akarja írni, adja ki a ls -l > file.txt parancsot. Ennek hatására létrejön egy file.txt
nevű fájl, amelyben az aktuális könyvtár tartalma található, az ls parancs által előállított módon. Ha létezik már file.txt
nevű fájl, akkor ez a parancs felül fogja írni a meglévő fájlt. Ez megakadályozható a >>
használatával. Az ls -l >> file.txt az ls parancs kimenetét hozzáírja a már létező file.txt
nevű fájl tartalmához. Ha a fájl még nem létezik, akkor létrejön.
Néha hasznos lehet egy fájl tartalmát egy parancs bemenetéül használni. Például a tr paranccsal kicserélhetők egy fájlból átirányított tartalomban a karakterek és az eredmény kiíratható a standard kimenetre, a képernyőre. Tegyük fel például, hogy a fenti példában létrehozott file.txt
fájlban az összes t
karaktert ki akarjuk cserélni x
karakterekre, és ezt ki akarjuk íratni a képernyőre. Ez a tr t x < file.txt paranccsal hajtható végre.
A szabványos kimenethez hasonlóan a szabványos hibakimenet is a konzolra kerül. Ha a szabványos hibakimenetet egy hibak
nevű fájlba szeretné irányítani, akkor a parancsot egészítse ki a 2> hibak paraméterrel. Az >& osszeskimenet paraméter használata esetén mind a szabványos kimenet, mind a hibakimenet az osszeskimenet
nevű fájlba lesz elmentve.
A csővezetékek (pipelines) vagy csövek (pipes) használata is egyfajta átirányítás, bár a csövek nincsenek fájlokra korlátozva. Egy cső (|
) használatával több parancs is egyesíthető, az egyik kimenetét a másik bemeneteként használva. Például ha meg kívánja nézni az aktuális könyvtár tartalmát a less programmal, akkor írja be, hogy ls | less. Ennek persze csak akkor van jelentősége, ha a simán az ls paranccsal kiíratott kimenet túl hosszú. Ha például meg akarja nézni a dev
könyvtár tartalmát az ls /dev paranccsal, akkor az ablakba csak egy kis része fér ki. Az ls /dev | less paranccsal a teljes lista megtekinthető.
Most, hogy már létrehozott egy sor fájlt és könyvtárat, érdemes egy kicsit foglalkozni az archívumok és az adattömörítés témakörével. Tegyük fel, hogy a teljes teszt
könyvtárat egyetlen fájlba szeretné csomagolni, amely biztonsági másolatként például USB-meghajtóra menthető, vagy e-mailben elküldhető. Erre a tar (angolul tape archiver, szalagos archiváló) parancs használható. A tar használható paraméterei a tar --help paranccsal jeleníthetők meg. A legfontosabb paramétereket alább bemutatjuk:
(create) Új archívum létrehozása.
(table) Archívum tartalmának megjelenítése.
(eXtract) Archívum kicsomagolása.
(verbose) Az archívum létrehozása során az összes fájl megjelenítése a képernyőn.
(file) Az archívumfájl nevének megadása. Archívum létrehozásakor ezt a beállítást mindig utolsóként kell megadni.
Ha a teszt
könyvtárat és annak összes fájlját, illetve alkönyvtárát szeretné a tesztarchivum.tar
fájlba csomagolni:
Nyisson meg egy parancsértelmezőt.
A cd paranccsal lépjen a teszt
teszt könyvtárat tartalmazó saját könyvtárába.
Írja be, hogy tar -cvf tesztarchivum.tar teszt. A -c
paraméter létrehozza az archívumot, és a -f
paraméter által meghatározott nevű fájlt csinál belőle. A -v
paraméter kilistázza a fájlokat feldolgozás közben.
Az archívumfájl tartalma a tar -tf tesztarchivum.tar paranccsal jeleníthető meg.
A teszt
könyvtár és annak valamennyi fájlja és alkönyvtára változatlanul megtalálható a merevlemezen. Az archívum a tar -xvf tesztarchivum.tar paranccsal csomagolható ki (ezt egyelőre még ne tegye meg).
Fájltömörítéshez Linux alatt a népszerű gzip program a kézenfekvő választás, vagy ha még nagyobb tömörítés kell, a bzip2. Csak írja be, hogy gzip tesztarchivum.tar (vagy bzip2 tesztarchivum.tar, de a jelen példában a gzip-et használjuk). Az ls parancs megmutatja, hogy a tesztarchivum.tar
fájl már nem létezik, viszont helyette létrejött egy tesztarchivum.tar.gz
nevű fájl. Ez a fájl sokkal kisebb, így sokkal könnyebben küldhető el e-mailben, illetve tárolható bárhol, például USB-meghajtón.
Most csomagolja ki ezt a fájlt a korábban létrehozott teszt2
könyvtárba. Ehhez a cp tesztarchivum.tar.gz teszt2 paranccsal másolja a fájlt a teszt2 könyvtárba. A cd teszt2 paranccsal váltson át a teszt2 könyvtárba. A .tar.gz
kiterjesztésű tömörített archívumok a a gunzip paranccsal csomagolhatók ki. Beírva a gunzip tesztarchivum.tar.gz parancsot, eredményül a tesztarchivum.tar
fájlt kapja, amit ezután a tar -xvf tesztarchivum.tar parancs használatával lehet kibontani (untar). Egy tömörített archívum egy lépésben is kicsomagolható és kibontható a tar -xvf tesztarchivum.tar.gz (a -z
paraméter hozzáadására már nincs szükség). Az ls parancs megmutatja, hogy egy új teszt
könyvtár jött létre, amelynek tartalma megegyezik a saját könyvtárban található teszt
könyvtáréval.
Reméljük, e rövid ismertető után tisztában van a Linux parancsértelmező és a parancssor alapfogalmaival. A saját könyvtár kitakarításához használja az rm és rmdir parancsokat, ezekkel lehet törölni a különböző tesztfájlokat, illetve a tesztkönyvtárakat. A 15.3. szakasz - Fontos Linux-parancsok részben megtalálja a legfontosabb parancsokat és rövid leírásukat.