Lærðu grunnatriði hvernig Linux I/O (Input/Output) Redirection virkar


Eitt mikilvægasta og áhugaverðasta viðfangsefnið undir Linux stjórnun er I/O endurleiðing. Þessi eiginleiki skipanalínunnar gerir þér kleift að beina innslátt og/eða úttak skipana frá og/eða í skrár, eða tengja margar skipanir saman með því að nota pípur til að mynda það sem er þekkt sem skipanaleiðsla.

Allar skipanir sem við keyrum framleiða í grundvallaratriðum tvenns konar úttak:

  1. niðurstaða skipana – gögn sem forritið er hannað til að framleiða, og
  2. stöðu forritsins og villuboðanna sem upplýsa notanda um framkvæmd forritsins.

Í Linux og öðrum Unix-líkum kerfum eru þrjár sjálfgefnar skrár nefndar hér að neðan sem eru einnig auðkenndar af skelinni með því að nota skráarlýsingarnúmer:

  1. stdin eða 0 – það er tengt við lyklaborðið, flest forrit lesa inntak úr þessari skrá.
  2. stdout eða 1 – það er fest við skjáinn og öll forrit senda niðurstöður sínar í þessa skrá og
  3. stderr eða 2 – forrit senda stöðu/villuskilaboð á þessa skrá sem er einnig hengd við skjáinn.

Þess vegna gerir I/O tilvísun þér kleift að breyta inntaksuppsprettu skipunar sem og hvert úttak hennar og villuboð eru send til. Og þetta er gert mögulegt með \<” og \>” tilvísunarrekstraraðilum.

Hvernig á að beina venjulegu úttaki í skrá í Linux

Þú getur beina staðlaðri úttak eins og í dæminu hér að neðan, hér viljum við geyma úttak efstu skipunarinnar til síðari skoðunar:

$ top -bn 5 >top.log

Hvar fánarnir:

  1. -b – gerir top kleift að keyra í lotuham, þannig að þú getur beina úttak þess yfir í skrá eða aðra skipun.
  2. -n – tilgreinir fjölda endurtekningar áður en skipuninni lýkur.

Þú getur skoðað innihald top.log skráarinnar með því að nota cat skipun sem hér segir:

$ cat top.log

Til að bæta við úttak skipunarinnar, notaðu \>>” stjórnandann.

Til dæmis til að bæta úttakinu af toppskipuninni fyrir ofan í top.log skránni, sérstaklega innan handrits (eða á skipanalínunni), sláðu inn línuna fyrir neðan:

$ top -bn 5 >>top.log

Athugið: Með því að nota skráarlýsingarnúmerið er framsendingarskipunin hér að ofan sú sama og:

$ top -bn 5 1>top.log

Hvernig á að beina staðalvillu í skrá í Linux

Til að beina staðalvillu í skipun þarftu að tilgreina skýrt skráarlýsingarnúmerið, 2 fyrir skelina til að skilja hvað þú ert að reyna að gera.

Til dæmis mun ls skipunin hér að neðan framleiða villu þegar hún er keyrð af venjulegum kerfisnotanda án rótarréttinda:

$ ls -l /root/

Þú getur beint stöðluðu villunni í skrá eins og hér að neðan:

$ ls -l /root/ 2>ls-error.log
$ cat ls-error.log 

Til að bæta við staðlaða villunni skaltu nota skipunina hér að neðan:

$ ls -l /root/ 2>>ls-error.log

Hvernig á að beina venjulegu úttak/villu í eina skrá

Það er líka hægt að fanga allt úttak skipunar (bæði staðlað úttak og staðlað villa) í eina skrá. Þetta er hægt að gera á tvo mögulega vegu með því að tilgreina skráarlýsingarnúmer:

1. Sú fyrsta er tiltölulega gömul aðferð sem virkar sem hér segir:

$ ls -l /root/ >ls-error.log 2>&1

Skipunin hér að ofan þýðir að skelin sendir fyrst úttak ls skipunarinnar í skrána ls-error.log (með því að nota >ls-error.log), og skrifar síðan öll villuboð í skráarlýsinguna 2 (venjulegt úttak) sem hefur verið vísað á skrána ls-error.log (með því að nota 2>&1). Gefið í skyn að staðalvilla sé einnig send í sömu skrá og staðlað úttak.

2. Önnur og bein aðferðin er:

$ ls -l /root/ &>ls-error.log

Þú getur líka bætt við venjulegu úttakinu og stöðluðu villunni við eina skrá eins og svo:

$ ls -l /root/ &>>ls-error.log

Hvernig á að beina venjulegu inntaki í skrá

Flestar ef ekki allar skipanir fá inntak sitt frá venjulegu inntaki og sjálfgefið er staðlað inntak fest við lyklaborðið.

Til að beina venjulegu inntaki frá annarri skrá en lyklaborðinu skaltu nota \<” stjórnanda eins og hér að neðan:

$ cat <domains.list 

Hvernig á að beina venjulegu inntak/úttak í skrá

Þú getur framkvæmt staðlað inntak, staðlað framleiðsla tilvísunar á sama tíma með því að nota flokkunarskipunina eins og hér að neðan:

$ sort <domains.list >sort.output

Hvernig á að nota I/O Redirection Using Pipes

Til að beina úttaki einnar skipunar sem inntak annarrar geturðu notað rör, þetta er öflug leið til að byggja upp gagnlegar skipanalínur fyrir flóknar aðgerðir.

Til dæmis mun skipunin hér að neðan lista yfir fimm efstu nýlega breyttu skrárnar.

$ ls -lt | head -n 5 

Hér eru valkostirnir:

  1. -l – gerir langa skráningu kleift
  2. -t – flokkaðu eftir breytingatíma þar sem nýjustu skrárnar eru sýndar fyrst
  3. -n – tilgreinir fjölda hauslína sem á að sýna

Mikilvægar skipanir til að byggja upp leiðslur

Hér munum við í stuttu máli fara yfir tvær mikilvægar skipanir til að byggja upp stjórnunarleiðslur og þær eru:

xargs sem er notað til að byggja upp og keyra skipanalínur úr venjulegu inntaki. Hér að neðan er dæmi um leiðslu sem notar xargs, þessi skipun er notuð til að afrita skrá í margar möppur í Linux:

$ echo /home/aaronkilik/test/ /home/aaronkilik/tmp | xargs -n 1 cp -v /home/aaronkilik/bin/sys_info.sh

Og valkostirnir:

  1. -n 1 – gefur xargs fyrirmæli um að nota í mesta lagi eina frumbreytu í hverja skipanalínu og senda á cp skipunina
  2. cp – afritar skrána
  3. -v – sýnir framvindu afritunarskipunar.

Fyrir frekari notkunarmöguleika og upplýsingar, lestu í gegnum xargs man síðuna:

$ man xargs 

Tee-skipun les úr venjulegu inntaki og skrifar í venjulegt úttak og skrár. Við getum sýnt fram á hvernig teigur virkar sem hér segir:

$ echo "Testing how tee command works" | tee file1 

Linux kerfisstjórnunarverkefni.

Til að læra meira um Linux síur og pípur, lestu þessa grein Finndu 10 bestu IP tölur sem fá aðgang að Apache Server, sýnir gagnlegt dæmi um notkun sía og pípa.

Í þessari grein útskýrðum við grundvallaratriði I/O endurstefnu í Linux. Mundu að deila hugsunum þínum í gegnum athugasemdahlutann hér að neðan.