Jifunze Misingi ya Jinsi Uelekezaji Upya wa Linux I/O (Ingizo/Pato) Hufanya Kazi
Moja ya mada muhimu na ya kuvutia chini ya usimamizi wa Linux ni uelekezaji upya wa I/O. Kipengele hiki cha safu ya amri hukuwezesha kuelekeza upya ingizo na/au matokeo ya amri kutoka na/au kwa faili, au kuunganisha amri nyingi pamoja kwa kutumia mabomba kuunda kile kinachojulikana kama \bomba la amri.
Amri zote ambazo tunaendesha kimsingi hutoa aina mbili za pato:
- matokeo ya amri - data ambayo programu imeundwa kutoa, na
- hali ya programu na ujumbe wa hitilafu ambao hufahamisha mtumiaji kuhusu maelezo ya utekelezaji wa programu.
Katika Linux na mifumo mingine kama ya Unix, kuna faili tatu chaguo-msingi zilizotajwa hapa chini ambazo pia zinatambuliwa na ganda kwa kutumia nambari za maelezo ya faili:
- stdin au 0 - imeunganishwa kwenye kibodi, programu nyingi husoma ingizo kutoka kwa faili hii.
- stdout au 1 - imeambatishwa kwenye skrini, na programu zote hutuma matokeo yake kwa faili hii na
- stderr au 2 - programu hutuma ujumbe wa hali/makosa kwa faili hii ambayo pia imeambatishwa kwenye skrini.
Kwa hivyo, uelekezaji upya wa I/O hukuruhusu kubadilisha chanzo cha ingizo cha amri na vile vile pato lake na ujumbe wa makosa hutumwa. Na hili linawezeshwa na waendeshaji wa uelekezaji kwingine wa \<”
na \>”
.
Jinsi ya Kuelekeza Pato la Kawaida kwa Faili kwenye Linux
Unaweza kuelekeza pato la kawaida kama ilivyo kwenye mfano hapa chini, hapa, tunataka kuhifadhi matokeo ya amri ya juu kwa ukaguzi wa baadaye:
$ top -bn 5 >top.log
Ambapo bendera:
-b
- huwezesha top kufanya kazi katika hali ya bechi, ili uweze kuelekeza towe lake kwa faili au amri nyingine.-n
- hubainisha idadi ya marudio kabla ya amri kukomesha.
Unaweza kuona yaliyomo kwenye faili ya top.log
kwa kutumia paka amri kama ifuatavyo:
$ cat top.log
Ili kuambatisha tokeo la amri, tumia \>>”
opereta.
Kwa mfano kuambatanisha matokeo ya amri ya juu hapo juu katika faili ya top.log haswa ndani ya hati (au kwenye safu ya amri), weka laini hapa chini:
$ top -bn 5 >>top.log
Kumbuka: Kwa kutumia nambari ya maelezo ya faili, amri ya kuelekeza pato hapo juu ni sawa na:
$ top -bn 5 1>top.log
Jinsi ya Kuelekeza Kosa la Kawaida kwa Faili kwenye Linux
Ili kuelekeza upya kosa la kawaida la amri, unahitaji kubainisha kwa uwazi nambari ya maelezo ya faili, 2
ili shell ielewe kile unachojaribu kufanya.
Kwa mfano ls amri hapa chini itatoa hitilafu inapotekelezwa na mtumiaji wa kawaida wa mfumo bila upendeleo wa mizizi:
$ ls -l /root/
Unaweza kuelekeza kosa la kawaida kwa faili kama ilivyo hapo chini:
$ ls -l /root/ 2>ls-error.log $ cat ls-error.log
Ili kuongeza kosa la kawaida, tumia amri hapa chini:
$ ls -l /root/ 2>>ls-error.log
Jinsi ya Kuelekeza Pato/ Hitilafu Kawaida kwa Faili Moja
Inawezekana pia kunasa matokeo yote ya amri (matokeo ya kawaida na makosa ya kawaida) kwenye faili moja. Hii inaweza kufanywa kwa njia mbili zinazowezekana kwa kutaja nambari za maelezo ya faili:
1. Ya kwanza ni njia ya zamani ambayo inafanya kazi kama ifuatavyo:
$ ls -l /root/ >ls-error.log 2>&1
Amri iliyo hapo juu inamaanisha kuwa ganda litatuma kwanza matokeo ya ls amri kwa faili ls-error.log (kwa kutumia >ls-error.log
), na kisha kuandika ujumbe wote wa makosa kwa maelezo ya faili. 2 (matokeo ya kawaida) ambayo yameelekezwa kwenye faili ls-error.log (kwa kutumia 2>&1
). Kuashiria kuwa kosa la kawaida pia hutumwa kwa faili sawa na pato la kawaida.
2. Njia ya pili na ya moja kwa moja ni:
$ ls -l /root/ &>ls-error.log
Unaweza pia kuongeza pato la kawaida na kosa la kawaida kwa faili moja kama hivyo:
$ ls -l /root/ &>>ls-error.log
Jinsi ya Kuelekeza Uingizaji Kawaida kwa Faili
Amri nyingi ikiwa sio zote hupata ingizo lao kutoka kwa ingizo la kawaida, na kwa chaguo-msingi ingizo la kawaida huambatishwa kwenye kibodi.
Ili kuelekeza upya ingizo la kawaida kutoka kwa faili tofauti na kibodi, tumia \<”
opereta kama ilivyo hapo chini:
$ cat <domains.list
Jinsi ya Kuelekeza Uingizaji/Pato la Kawaida kwa Faili
Unaweza kutekeleza uingizaji wa kawaida, uelekezaji wa pato la kawaida kwa wakati mmoja kwa kutumia amri ya kupanga kama ilivyo hapo chini:
$ sort <domains.list >sort.output
Jinsi ya Kutumia Uelekezaji wa I/O kwa kutumia Mabomba
Ili kuelekeza pato la amri moja kama pembejeo ya nyingine, unaweza kutumia bomba, hii ni njia yenye nguvu ya kujenga mistari muhimu ya amri kwa shughuli ngumu.
Kwa mfano, amri iliyo hapa chini itaorodhesha faili tano za juu zilizobadilishwa hivi karibuni.
$ ls -lt | head -n 5
Hapa, chaguzi:
-l
- huwasha umbizo la muda mrefu la uorodheshaji-t
- kupanga kwa muda wa kurekebisha na faili mpya zaidi zinaonyeshwa kwanza-n
- hubainisha idadi ya vichwa vya kuonyesha
Amri Muhimu za Kujenga Mabomba
Hapa, tutapitia kwa ufupi amri mbili muhimu za bomba la ujenzi na ni:
xargs ambayo hutumiwa kujenga na kutekeleza mistari ya amri kutoka kwa pembejeo ya kawaida. Hapo chini kuna mfano wa bomba ambalo hutumia xargs, amri hii inatumika kunakili faili kwenye saraka nyingi kwenye Linux:
$ echo /home/aaronkilik/test/ /home/aaronkilik/tmp | xargs -n 1 cp -v /home/aaronkilik/bin/sys_info.sh
Na chaguzi:
-n 1
- inaelekeza xargs kutumia angalau hoja moja kwa kila mstari wa amri na kutuma kwa amri ya cpcp
- kunakili faili-v
- huonyesha maendeleo ya amri ya kunakili.
Kwa chaguzi zaidi za utumiaji na habari, soma kupitia ukurasa wa mtu wa xargs:
$ man xargs
Amri ya tee inasoma kutoka kwa pembejeo ya kawaida na huandika hadi pato la kawaida na faili. Tunaweza kuonyesha jinsi tee inavyofanya kazi kama ifuatavyo:
$ echo "Testing how tee command works" | tee file1
Kazi za usimamizi wa mfumo wa Linux.
Ili kujifunza zaidi kuhusu vichungi na mabomba ya Linux, soma makala hii Tafuta Anwani 10 za Juu za IP Kufikia Seva ya Apache, inaonyesha mfano muhimu wa kutumia vichungi na mabomba.
Katika makala haya, tulielezea misingi ya uelekezaji upya wa I/O katika Linux. Kumbuka kushiriki mawazo yako kupitia sehemu ya maoni hapa chini.