Ismerje meg a Linux I/O (bemenet/kimenet) átirányítás működésének alapjait
Az egyik legfontosabb és érdekes témák Linux adminisztráció alatt az I/O átirányítás. A parancssor ezen funkciója lehetővé teszi a parancsok be- és/vagy kimenetének átirányítását fájlokból és/vagy fájlokba, vagy több parancs összekapcsolását csövek segítségével az úgynevezett „parancsvonal”.
Az általunk futtatott összes parancs alapvetően kétféle kimenetet eredményez:
a parancs eredménye - adatok, amelyeket a program előállít, és
a program állapotát és hibaüzeneteket, amelyek tájékoztatják a felhasználót a program végrehajtásának részleteiről.
Linuxban és más Unix-szerű rendszerekben három alapértelmezett fájl található az alábbiakban, amelyeket a shell is azonosít a fájlleíró számok használatával:
stdin vagy 0 - a billentyűzethez van csatlakoztatva, a legtöbb program ebből a fájlból olvassa be a bemenetet.
stdout vagy 1 - a képernyőhöz van csatolva, és minden program elküldi eredményeit ebbe a fájlba és
stderr vagy 2 - a programok állapot/hibaüzeneteket küldenek erre a képernyőhöz is csatolt fájlra.
Ezért az I/O átirányítás lehetővé teszi a parancs bemeneti forrásának, valamint annak kimeneti és hibaüzeneteinek megváltoztatását. Ezt pedig az teszi lehetővé “ és “>” átirányítási operátorok.
Hogyan lehet átirányítani a szabványos kimenetet fájlba Linux alatt
Átirányíthatja a szabványos kimenetet, mint az alábbi példában, itt szeretnénk tárolni a felső parancs későbbi ellenőrzésre:
$ top -bn 5> top.log.
Hol a zászlók:
-b - lehetővé teszi tetején kötegelt üzemmódban történő futtatáshoz, így a kimenetet átirányíthatja egy fájlra vagy egy másik parancsra.
-n - megadja a parancs befejezése előtti iterációk számát.
Megtekintheti a tartalmát top.log fájl használatával macska parancs alábbiak szerint:
$ macska top.log.
A parancs kimenetének hozzáfűzéséhez használja a “>>” operátor.
Például a kimenet hozzáfűzéséhez felső parancs fent a top.log fájlt, különösen egy parancsfájlban (vagy a parancssorban), írja be az alábbi sort:
$ top -bn 5 >> top.log.
jegyzet: A fájlleíró szám használatával a fenti kimeneti átirányítási parancs ugyanaz, mint:
$ top -bn 5 1> top.log.
A szabványos hiba átirányítása fájlba Linux alatt
Egy parancs standard hibájának átirányításához kifejezetten meg kell adnia a fájlleíró számát, 2 hogy a héj megértse, mit akarsz csinálni.
Például a parancs Az alábbi hibaüzenet jelenik meg, ha normál rendszergazda hajtja végre root jogosultságok nélkül:
$ ls -l /root /
A szabványos hibát átirányíthatja egy fájlba az alábbiak szerint:
$ ls -l / root / 2> ls -error.log. $ cat ls-error.log
Standard hiba átirányítása fájlba
A standard hiba hozzáfűzéséhez használja az alábbi parancsot:
$ ls -l / root / 2 >> ls -error.log.
A szabványos kimenet/ hiba átirányítása egy fájlba
Az is lehetséges, hogy egy parancs összes kimenetét (standard kimenetet és standard hibát) egyetlen fájlba rögzítse. Ezt két lehetséges módon teheti meg a fájlleíró számok megadásával:
1. Az első egy viszonylag régi módszer, amely a következőképpen működik:
$ ls -l / root /> ls -error.log 2> & 1.
A fenti parancs azt jelenti, hogy a shell először elküldi a parancs a fájlhoz ls-error.log (használatával > ls-error.log), majd az összes hibaüzenetet a fájlleíróba írja 2 (standard kimenet), amelyet átirányítottak a fájlba ls-error.log (használatával 2>&1). Ez azt jelenti, hogy a szabványos hiba ugyanabba a fájlba kerül, mint a standard kimenet.
2. A második és közvetlen módszer a következő:
$ ls -l / root / &> ls -error.log.
A szabványos kimenetet és a standard hibát is hozzáfűzheti egyetlen fájlhoz, például:
$ ls -l / root / & >> ls -error.log.
Hogyan lehet átirányítani a szabványos bemenetet fájlba
A legtöbb, ha nem minden parancs a szabványos bemenetről kapja a bemenetet, és alapértelmezés szerint a szabványos bemenet a billentyűzethez van csatlakoztatva.
Ha a billentyűzeten kívüli fájlból át szeretné irányítani a szabványos bemenetet, használja a “ operátor az alábbiak szerint:
$ macska Normál bemenet átirányítása fájlba
Hogyan lehet átirányítani a szabványos bemenetet/kimenetet fájlba
Egyszerre elvégezheti a standard bemenetet, a szabványos kimenet átirányítását rendezési parancs az alábbi:
$ fajta rendezés.kimenet.
Az I/O átirányítás használata csövek használatával
Ha egy parancs kimenetét át szeretné irányítani egy másik bemeneteként, használhat csöveket, ez egy hatékony eszköz a hasznos parancssorok létrehozásához a bonyolult műveletekhez.
Például az alábbi parancs lesz sorolja fel az öt legutóbb módosított fájlt.
$ ls -lt | fej -n 5
Itt a lehetőségek:
-l - lehetővé teszi a hosszú listázási formátumot
-t – rendezés a módosítási idő szerint a legújabb fájlokkal először láthatók
-n - megadja a megjelenítendő fejlécsorok számát
Fontos parancsok a csővezetékek építéséhez
Itt röviden áttekintünk két fontos parancsot a parancsvezetékek építéséhez, és ezek:
xargs amelyet szabványos bemenetről parancssorok létrehozására és végrehajtására használnak. Az alábbiakban egy példát mutatunk be egy csővezetékre xargs, ezt a parancsot szokták másoljon egy fájlt több könyvtárba Linux alatt:
-n 1 - utasítja az xargst, hogy parancssoronként legfeljebb egy argumentumot használjon, és küldje el a cp parancs
cp - másolja a fájlt
-v – megjeleníti a másolási parancs előrehaladását.
További használati lehetőségekért és információkért olvassa el a xargs man oldal:
$ man xargs
A póló parancs szabványos bemenetről olvas és ír a szabványos kimenetre és fájlokba. Bemutathatjuk, hogyan póló a következőképpen működik:
$ echo "A tee parancs működésének tesztelése" | tee fájl 1
tee parancs példa
Fájl- vagy szövegszűrők általában csövekhez használják hatékony Linux -fájlműveletek, az információk hatékony feldolgozására, például a parancsok kimenetének átalakítására (ez létfontosságú lehet hasznos Linux -jelentések generálása), a fájlok szövegének módosítása és számos más Linux rendszergazdai feladatok.
Ha többet szeretne megtudni a Linux szűrőkről és csövekről, olvassa el ezt a cikket Keresse meg a 10 legjobb IP -címet, amelyek hozzáférnek az Apache szerverhez, hasznos példát mutat a szűrők és csövek használatára.
Ebben a cikkben elmagyaráztuk az I/O átirányítás alapjait Linuxon. Ne felejtse el megosztani gondolatait az alábbi visszajelzési részben.