2.2 Lecke 1
Tanúsítvány: |
Linux Essentials |
---|---|
Verzió: |
1.6 |
Témakör: |
2 Hogyan Igazodjunk El Linux Rendszerekben? |
Fejezet: |
2.2 Segítség a Parancssor Használata Során |
Lecke: |
1/1 |
Bevezetés
A paranccsor egy nagyon összetett eszköz. Minden parancsnak megvannak a maga egyedi beállításai, így a dokumentáció a kulcs a Linux rendszeren történő munkavégzéshez. A dokumentáció nagy részét tároló /usr/share/doc/
mappa mellett számos más eszköz ad információt a Linux parancsok használatáról. Ez a fejezet ennek a dokumentációnak az eléréseire összpontosít; célja, hogy segítséget nyújtson.
Számos módszer létezik arra, hogy segítséget kapjunk a Linux paranccsorban. A man
, a help
és az info
csak néhány közülük. A Linux Essentials-ben a man
és az info
parancsokra fókuszálunk, mivel ezek a leggyakrabban használt eszközök a segítségkéréshez.
A fejezet másik témája a fájlok lokalizálása lesz. Főleg a locate
paranccsal fogunk dolgozni.
Segítség a Parancssor Használata Során
Beépített Segítség
Amikor a --help
paraméterrel indítjuk, a legtöbb parancs néhány rövid utasítást jelenít meg a saját használatáról. Bár nem minden parancshoz tartozik ilyen kapcsoló, jó próbálkozás arra, hogy többet megtudjunk a parancs paramétereiről. Ne feledjük, hogy a --help
utasításai gyakran meglehetősen rövidek a többi dokumentációs forráshoz képest, amelyekről a lecke többi részében lesz szó.
Man Oldalak
A legtöbb parancshoz tartozik egy kézikönyv (manual) vagy “man” oldal. Ez a dokumentáció általában a szoftverrel telepítődik és a man
paranccsal érhető el. A parancsot, amelynek meg szeretnénk nézni a man oldalát, meg kell adnunk a man
parancs argumentumaként:
$ man mkdir
Ez a parancs megnyitja az mkdir
man oldalát. A fel és le nyilakkal vagy a szóköz gombbal navigálhatunk az oldalakon. A kilépéshez csak nyomjuk meg a Q billentyűt.
Minden man oldal maximum 11 szekcióra van felosztva, de ezek közül sok opcionális:
Szekció | Leírás |
---|---|
NAME |
Parancsnév és rövid leírás |
SYNOPSIS |
A parancs szintaxisának leírása |
DESCRIPTION |
A parancs hatásainak leírása |
OPTIONS |
Elérhető opciók |
ARGUMENTS |
Elérhető argumentumok |
FILES |
Auxiliary fájlok |
EXAMPLES |
Parancssori példa |
SEE ALSO |
Kereszthivatkozások a kapcsolódó témákra |
DIAGNOSTICS |
Warning és Error üzenetek |
COPYRIGHT |
A parancs szerző(i) |
BUGS |
A parancs ismert limitációi |
A gyakorlatban a legtöbb man oldal nem tartalmazza az összes szekciót.
A man oldalakat 1-től 8-ig számozzuk, mivel nyolc kategóriára vannak felosztva:
Kategória | Leírás |
---|---|
1 |
Felhasználói parancsok |
2 |
Rendszerhívások |
3 |
A C library funkciói |
4 |
Driverek és eszközfájlok |
5 |
Konfigurációs fájlok és fájlformátumok |
6 |
Játékok |
7 |
Egyéb |
8 |
Rendszeradminisztrátori parancsok |
9 |
Kernelfunkciók (nem alapértelmezett) |
Minden man oldal pontosan egy kategóriához tartozik. Ennek ellenére több kategória is tartalmazhat azonos nevű man oldalakat. Példaként nézzük meg a passwd
parancsot. Ezzel a paranccsal megváltoztathatjuk egy felhasználó jelszavát. Mivel a passwd
egy felhasználói parancs, a man oldala az 1-es kategóriában található. A passwd
parancs mellett a jelszóadatbázis fájlnak (/etc/passwd
) is van egy man oldala, szintén passwd
néven. Mivel ez egy konfigurációs fájl, az 5-ös kategóriába tartozik. Amikor egy man oldalra hivatkozunk, gyakran meg van adva a nevében a kategória is, mint passwd(1)
vagy passwd(5)
, hogy azonosítani tudjuk a vonatkozó man oldalakat.
Alapértelmezésben a man passwd
megjeleníti az első elérhető man oldalt, ami esetünkben a passwd(1)
. A parancsban megadhatjuk, hogy melyik man oldalt szeretnénk látni, például man 1 passwd
vagy man 5 passwd
.
Már volt szó a man oldalak közötti navigációról és arról, hogy hogyan térjünk vissza a paranccsorba. A man
a működése során a less
parancsot használja a tartalom megjelenítésére. A less
segítségével kereshetünk egy man oldalon. A linux
szóra a /linux
beírásával kereshetünk a hátralevő szövegben, a ?linux
beírásával pedig a kurzortól visszafelé. Ez kijelöli az összes találatot és az első kijelölt találathoz lapoz az oldalon. Mindkét esetben az N segítségével ugorhatunk a következő találatra. Az ilyen funkciókról a H lenyomásával elérhető menü tartalmaz minden információt.
Info Oldalak
Egy másik eszköz, amely segíthet nekünk a Linuxon való munkánk során, az info oldal. Az info oldalak általában részletesebbek a man oldalaknál és hypertextben vannak formázva, hasonlóan az internetes weboldalakhoz.
Az info oldalak így jeleníthetőek meg:
$ info mkdir
Minden info oldalhoz az info
beolvas egy info fájlt, ami egy fastruktúra csomópontjainak felel meg. Minden bejegyzésben van egy egyszerű cím, az info
parancs pedig olyan hivatkozásokat tartalmaz, amikkel ezek között mozoghatunk egyikről a másikra. A csillaggal megjelölt sorokban enter lenyomásával érhetjük el a hivatkozott oldalt.
A man
-hoz hasonlóan az info
is rendelkezik navigációs parancsokkal. Ezekről a parancsokról több információt a ? lenyomásával szerezhetünk az info oldalon. Ezek az eszközök segítenek a könnyebb navigációban, a csomópontok megértésében és a fastruktúrában való mozgásban.
A /usr/share/doc/
mappa
Ahogy már említettük, a /usr/share/doc/
mappában található a legtöbb, a rendszerben használható parancs dokumentációja. Ebben a mappában a legtöbb telepített packagehez tartozik egy almappa. A mappa neve általában a package neve és néha a verziószáma. Ezekben a mappákban van egy README
vagy readme.txt
fájl, ami a package általános dokumentációját tartalmazza. A README
fájlon túl a mappában lehetnek egyéb dokumentációs fájlok, például a changelog, ami részletesen tartalmazza a program történetét, vagy példák konfigurációs fájlokra.
A README
fájlban lévő információk csomagonként változhatnak. Minden fájl egyszerű szövegfájl, ezért bármilyen szövegszerkesztővel megnyithatóak. A fájlok típusa és száma a packagetől függ. Nézzünk meg néhány mappát, hogy átlássuk a tartalmukat.
Fájlok lokalizálása
A locate
parancs
Egy Linux rendszer számos mappából és fájlból áll. A Linuxban több eszköz van egy fájl lokalizálására a rendszeren belül. Az egyik leggyorsabb parancs a locate
.
A locate
egy adatbázisban keres és visszaad minden nevet, amely megegyezik a megadott sztringgel:
$ locate note /lib/udev/keymaps/zepto-znote /usr/bin/zipnote /usr/share/doc/initramfs-tools/maintainer-notes.html /usr/share/man/man1/zipnote.1.gz
A locate
parancs lehetővé teszi helyettesítő karakterek és reguláris kifejezések használatát, ezért a keresésnek nem kell egyeznie a fájl teljes nevével. A reguláris kifejezésekről egy későbbi leckében tanulunk majd.
Alapértelmezésben a locate
úgy viselkedik, mintha a mintát csillagok vennék körül, tehát a locate PATTERN
ugyanaz, mint a locate *PATTERN*
. Ez teszi lehetővé, hogy pontos fájlnév helyett annak egy részlete is elég legyen. Ez a viselkedés módosítható különböző opciók használatával, amelyek a locate
man oldalán vannak kifejtve.
Mivel a locate
egy adatbázisból olvas, lehetséges, hogy nem talál meg egy nemrég létrehozott fájlt. Az adatbázist az updatedb
parancs menedzseli. Ez általában periodikusan fut le, de ha vannak root jogaink és szükséges az adatbázis azonnali frissítése, manuálisan is lefuttathatjuk az updatedb
parancsot.
A find
parancs
A find
egy másik népszerű eszköz fájlok kereséséhez. Ez a locate
parancshoz képest másik megközelítést használ. A find
rekurzívan keres a mappastruktúrában, beleértve az almappákat is. A find
minden esetben így keres, nem tartozik hozzá olyan adatbázis, mint a locate
esetén. Ahogy a locate
, a find
is támogatja a helyettesítő karakterek és a reguláris kifejezések használatát.
A find
használatához minimum az útvonal szükséges, ahol keresnie kell. Ezenfelül úgynevezett kifejezésekkel szűrhetjük, hogy milyen fájlokat jelenítsen meg. Ilyen például a -name
kifejezés, ami csak bizonyos nevű fájlokat keres:
~$ cd Downloads ~/Downloads $ find . -name thesis.pdf ./thesis.pdf ~/Downloads $ find ~ -name thesis.pdf /home/carol/Downloads/thesis.pdf
Az első find
parancs az aktuális Downloads
mappában keresi a fájlt, míg a másik a felhasználó home könyvtárában.
A find
parancs nagyon összetett, ezért a Linux Essentials vizsgában nem szerepel, a gyakorlatban azonban különösen hatékony eszköz.
Gyakorló Feladatok
-
Használjuk a
man
parancsot, hogy megtudjuk, melyik parancs mire jó:Parancs Leírás ls
Egy mappa tartalmának kilistázása
cat
cut
cd
cp
mv
mkdir
touch
wc
passwd
rm
rmdir
more
less
whereis
head
tail
sort
tr
chmod
grep
-
Nyissuk meg az
ls
infó oldalát és azonosítsuk a MENU-t!-
Milyen opciók vannak benne?
-
Keressük meg azt az opciót, amellyel módosítási időpont alapján rendezhetjük sorba a kimenetet!
-
-
Jelenítsük meg az első 3
README
fájl útvonalát! Használjuk aman
parancsot, hogy megismerjük alocate
parancshoz szükséges opciót! -
Hozzunk létre egy
test
nevű mappát a home mappánkban! Határozzuk meg az abszolút útvonalat alocate
paranccsal! -
Sikerült azonnal megtalálni? Mit kell tennünk, hogy a
locate
megtalálja? -
Keressük meg az előbb létrehozott tesztfájlt a
find
parancs használatával! Milyen szintaxist kell használnunk és mi az abszolút útvonal?
Gondolkodtató Feladatok
-
A fenti táblázatban van egy olyan parancs, amelynek nincs
man
oldala. Miért nincs és melyik az a parancs? -
A fenti táblázatban levő parancsok használatával hozzuk létre az alábbi fastruktúrát! A nagy kezdőbetűsek legyenek a mappák, a kis kezdőbetűsek pedig a fájlok.
User ├── Documents | ├──Hello | | ├──hey2 | | ├──helloa | | └──ola5 | └──World | └──earth9 ├── Downloads | ├──Music | └──Songs | ├──collection1 | └──collection2 ├── Test | └── passa └── test
-
Jelenítsük meg a képernyőn az aktuális mappát, beleértve az almappákat is!
-
Keressük meg a fán az összes fájlt, ami számjegyre végződik!
-
Távolítsuk el a teljes mappastruktúrát egyetlen paranccsal!
Összefoglalás
Ebben a leckében megtanultuk:
-
Hogyan kérjünk segítséget
-
Hogyan használjuk a
man
parancsot -
Hogyan navigáljunk a`man` oldalon
-
A
man
oldal különböző szekcióit -
Hogyan használjuk az
info
parancsot -
Hogyan navigáljunk különböző csomópontok között
-
Hogyan keressünk fájlokat a rendszerben
A gyakorlatok során használt parancsok:
man
-
Megjelenít egy man oldalt.
info
-
Megjelenít egy infó oldalt.
locate
-
A
locate
adatbázisban keres fájlokat a meghatározott név alapján. find
-
A fájlrendszerben keres a kritériumoknak megfelelő neveket.
updatedb
-
Frissíti a
locate
adatbázist.
Válaszok a Gyakorló Feladatokra
-
Használjuk a
man
parancsot, hogy megtudjuk, melyik parancs mire jó:Parancs Leírás ls
Egy mappa tartalmának kilistázása
cat
Szöveges fájlok megjelenítése vagy összefűzése
cut
Szekciók eltávolítása egy szövegfájlból
cd
Váltás egy másik mappára
cp
Fájl másolása
mv
Fájl áthelyezése (használható átnevezésre is)
mkdir
Új mappa létrehozása
touch
Fájl létrehozása vagy egy már létező fájl utolsó módosítási időpontjának a megváltoztatása
wc
Szavak, sorok vagy bájtok megszámolása egy fájlban
passwd
Egy felhasználó jelszavának megváltoztatása
rm
Fájl törlése
rmdir
Mappa törlése
more
Szövegfájl megjelenítése oldalanként
less
Szövegfájl megjelenítése, sor vagy oldal görgetésének lehetőségével
whereis
Egy program elérési útjának és manual fájljainak megjelenítése
head
Egy fájl első néhány sorának megjelenítése
tail
Egy fájl utolsó néhány sorának megjelenítése
sort
Fájl rendezése numerikusan vagy ABC szerint
tr
Karakterek módosítása vagy eltávolítása egy fájlból
chmod
Megváltoztatja egy fájl jogosultságait
grep
Fájlon belüli keresés
-
Nyissuk meg az
ls
infó oldalát és azonosítsuk a MENU-t!*-
Milyen opciók vannak benne?
-
Mely fájlok listázódnak
-
Milyen információk listázódnak
-
A kimenet sorbarendezése
-
Részletek a verzió rendezéséről
-
A kimenet általános formázása
-
A fájlok időbélyegeinek formázása
-
A fájlnevek formázása
-
-
Keressük meg azt az opciót, amellyel módosítási időpont alapján rendezhetjük sorba a kimenetet!
-t
or--sort=time
-
-
Jelenítsük meg az első 3
README
fájl útvonalát! Használjuk aman
parancsot, hogy megismerjük alocate
parancshoz szükséges opciót!$ locate -l 3 README /etc/alternatives/README /etc/init.d/README /etc/rc0.d/README
-
Hozzunk létre egy
test
nevű mappát a home mappánkban! Keressük meg az abszolút útvonalat alocate
paranccsal!$ touch test $ locate test /home/user/test
-
Sikerült azonnal megtalálni? Mit kell tennünk, hogy a
locate
megtalálja?$ sudo updatedb
A fájl újonnan lett létrehozva, ezért nincs rekordja az adatbázisban.
-
Keressük meg az előbb létrehozott tesztfájlt a
find
parancs használatával! Milyen szintaxist kell használnunk és mi az abszolút útvonal?$ find ~ -name test
or
$ find . -name test /home/user/test
Válaszok a Gondolkodtató Feladatokra
-
A fenti táblázatban van egy olyan parancs, amelynek nincs
man
oldala. Miért nincs és melyik az a parancs?A
cd
parancs. Azért nincs man oldala, mert egy beépített shell parancs. -
A fenti táblázatban levő parancsok használatával hozzuk létre az alábbi fastruktúrát! A nagy kezdőbetűsek legyenek a mappák, a kis kezdőbetűsek pedig a fájlok.
User ├── Documents | ├──Hello | | ├──hey2 | | ├──helloa | | └──ola5 | └──World | └──earth9 ├── Downloads | ├──Music | └──Songs | ├──collection1 | └──collection2 ├── Test | └── passa └── test
A megoldás az
mkdir
és atouch
parancsok kombinálása. -
Jelenítsük meg a képernyőn az aktuális mappát, beleértve az almappákat is!
$ ls -R
-
Keressük meg a fán az összes fájlt, ami számjegyre végződik!
$ find ~ -name "*[0-9]" $ locate "*[0-9]"
-
Távolítsuk el a teljes mappastruktúrát egyetlen paranccsal!
$ rm -r Documents Downloads Test test