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:
- niðurstaða skipana – gögn sem forritið er hannað til að framleiða, og
- 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:
- stdin eða 0 – það er tengt við lyklaborðið, flest forrit lesa inntak úr þessari skrá.
- stdout eða 1 – það er fest við skjáinn og öll forrit senda niðurstöður sínar í þessa skrá og
- 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:
-b
– gerir top kleift að keyra í lotuham, þannig að þú getur beina úttak þess yfir í skrá eða aðra skipun.-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:
-l
– gerir langa skráningu kleift-t
– flokkaðu eftir breytingatíma þar sem nýjustu skrárnar eru sýndar fyrst-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:
-n 1
– gefur xargs fyrirmæli um að nota í mesta lagi eina frumbreytu í hverja skipanalínu og senda á cp skipuninacp
– afritar skrána-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.