Bemeneti kimenet átirányítása Linux/Unix rendszerben Példák
Mi az átirányítás?
Az átirányítás egy olyan funkció a Linuxban, amely parancs végrehajtása során megváltoztathatja a szabványos bemeneti/kimeneti eszközöket. Az alapvető munkafolyamat bármely Linux parancs az, hogy vesz egy bemenetet és ad egy kimenetet.
- A szabványos beviteli (stdin) eszköz a billentyűzet.
- A szabványos kimeneti (stdout) eszköz a képernyő.
Átirányítással a fenti szabványos bemenet/kimenet módosítható.
Kattints itt ha a videó nem érhető el
Kimenet átirányítása
Az '>' szimbólum a kimenet (STDOUT) átirányítására szolgál.
Példa:
ls -al > listings
Itt az ls -al parancs kimenete a képernyő helyett a „listings” fájlba kerül.
Megjegyzések: Használja a megfelelő fájlnevet, miközben átirányítja a parancs kimenetét egy fájlra. Ha létezik ilyen nevű fájl, az átirányított parancs törli az adott fájl tartalmát, majd felülírható.”
Ha nem szeretné, hogy egy fájl felülírásra kerüljön, hanem további tartalmat szeretne hozzáadni egy meglévő fájlhoz, akkor használja '>>' operátor.
Átirányíthatja a szabványos kimenetet, nem csak fájlokra, hanem eszközökre is!
$ cat music.mp3 > /dev/audio
A cat parancs beolvassa a music.mp3 fájlt, és elküldi a kimenetet a /dev/audio fájlba, amely az audioeszköz. Ha a számítógép hangbeállításai megfelelőek, ez a parancs a music.mp3 fájlt játssza le
Bemeneti átirányítás
Az '' szimbólum a bemeneti (STDIN) átirányításra szolgál
Példa: A Linux levelezőprogramja segíthet e-mailek küldésében a terminálról.
Az e-mail tartalmát a készülék szabványos billentyűzetével írhatja be. Ha azonban fájlt szeretne csatolni az e-mailhez, használhatja a bemeneti átirányítási operátort a következő formátumban.
Mail -s "Subject" to-address < Filename
Ez csatolja a fájlt az e-mailhez, és elküldi a címzettnek.
A fenti példák egyszerűek voltak. Nézzünk meg néhány előre irányított technikát, amelyek a File-t használják Descriptill.
filé Descriptors (FD)
Linux/Unix esetén minden fájl. A normál fájl, a könyvtárak és még az eszközök is fájlok. Minden fájlhoz tartozik egy Fájl nevű szám Descriptvagy (FD).
A képernyőn egy fájl is található Descriptvagy. A program végrehajtásakor a kimenet a Fájlba kerül Descriptvagy a képernyőn, és megjelenik a program kimenete a monitoron. Ha a kimenet a Fájlba kerül Descriptvagy a nyomtató esetében a program kimenete ki lett volna nyomtatva.
Hiba az átirányításban
Valahányszor végrehajt egy programot/parancsot a terminálon, mindig 3 fájl van nyitva: standard bemenet, szabványos kimenet, standard hiba.
Ezek a fájlok mindig jelen vannak, amikor egy program fut. Amint azt korábban kifejtettük, egy fájlleíró társítva van mindegyik fájlhoz.
| filé | filé Descriptor |
|---|---|
| Standard bemenet STDIN | 0 |
| Standard kimenet STDOUT | 1 |
| Standard hiba STDERR | 2 |
Alapértelmezés szerint hibaüzenet jelenik meg a képernyőn. A hibaátirányítás a hibákat a képernyőn kívüli fájlba irányítja.
Miért az átirányítási hiba?
A hiba-újrairányítás az egyik nagyon népszerű funkció Unix/Linux.
A gyakori UNIX-felhasználók úgy gondolják, hogy sok parancs hatalmas mennyiségű hibát okoz.
- Például a fájlok keresése során az ember általában engedély megtagadva hibákat kap. Ezek a hibák általában nem segítenek annak, aki egy adott fájlt keres.
- A shell szkriptek végrehajtása közben gyakran NEM szeretné, ha a hibaüzenetek összezavarják a normál programkimenetet.
A megoldás a hibaüzenetek átirányítása egy fájlba.
Példa 1
$ myprogram 2>errorsfile
Fent egy myprogram nevű programot hajtunk végre.
A szabványos hiba fájlleírója a 2.
A „2>” használatával átirányítjuk a hibakimenetet egy „errorfile” nevű fájlba.
Így a program kimenete nincs tele hibákkal.
Példa 2
Íme egy másik példa, amely a find utasítást használja -
find . -name 'my*' 2>error.log
A „find” paranccsal keresünk a „.” aktuális könyvtár egy olyan fájlhoz, amelynek „name” kezdete „saját”
Példa 3: Lássunk egy bonyolultabb példát,
A szerveradminisztrátorok gyakran listázzák a könyvtárakat, és mind a hibákat, mind a szabványos kimenetet fájlba tárolják, amely később feldolgozható. Itt a parancs.
ls Documents ABC> dirlist 2>&1
Itt,
- amely az egyik fájl kimenetét egy másik fájl bemenetére írja. A 2>&1 azt jelenti, hogy az STDERR átirányít az STDOUT céljára (ami a fájlkönyvtár)
- A hibakimenetet átirányítjuk a szabványos kimenetre, amely viszont a fájl könyvtárlistára kerül. Ezért mindkét kimenet a fájl könyvtárlistába kerül
Összegzésként
- A Linuxban minden fájlhoz tartozik egy megfelelő fájl Descriptvagy társul hozzá
- A billentyűzet a szabványos beviteli eszköz, míg a képernyő a szabványos kimeneti eszköz
- A „>” a kimeneti átirányítási operátor. A „>>” hozzáfűzi a kimenetet egy meglévő fájlhoz
- A „<” a bemeneti átirányítás operátora
- A ">&" átirányítja az egyik fájl kimenetét a másikra.
- A hibát átirányíthatja a megfelelő fájl használatával Descriptvagy 2.






.png)