Koyi Tushen Yadda Linux I/O (Input/Output) Juyawa ke Aiki


Ɗaya daga cikin batutuwa masu mahimmanci da ban sha'awa a ƙarƙashin gwamnatin Linux shine juyawa I/O. Wannan fasalin layin umarni yana ba ku damar tura shigarwar da/ko fitarwa na umarni daga da/ko zuwa fayiloli, ko haɗa umarni da yawa tare ta amfani da bututu don samar da abin da aka sani da bututun umarni.

Duk umarnin da muke gudanarwa a zahiri suna samar da nau'ikan fitarwa guda biyu:

  1. sakamakon umarni - an tsara bayanan shirin don samarwa, da
  2. Matsayin shirin da saƙonnin kuskure waɗanda ke sanar da mai amfani da bayanan aiwatar da shirin.

A cikin Linux da sauran tsarin kamar Unix, akwai tsoffin fayiloli guda uku masu suna a ƙasa waɗanda harsashi kuma aka gano su ta amfani da lambobin bayanin fayil:

  1. stdin ko 0 - an haɗa shi da madannai, yawancin shirye-shirye suna karanta shigarwa daga wannan fayil.
  2. stdout ko 1 - an haɗe shi zuwa allon, kuma duk shirye-shiryen suna aika sakamakonsu zuwa wannan fayil kuma
  3. stderr ko 2 - shirye-shirye suna aika saƙon matsayi/kuskure zuwa wannan fayil wanda kuma ke haɗe zuwa allon.

Don haka, jujjuyawar I/O tana ba ku damar canza tushen shigar da umarni da kuma inda ake aika fitar da saƙon sa da kuskure. Kuma wannan yana yiwuwa ta hanyar \< da \> masu aiki na turawa.

Yadda Ake Juya Daidaitaccen Fitarwa zuwa Fayil a cikin Linux

Kuna iya tura madaidaicin fitarwa kamar yadda yake a cikin misalin da ke ƙasa, anan, muna so mu adana fitarwa na babban umarni don dubawa daga baya:

$ top -bn 5 >top.log

Inda tutoci:

  1. -b - yana ba da damar saman yin aiki a yanayin batch, ta yadda za ku iya tura fitar da shi zuwa fayil ko wani umarni.
  2. -n - yana ƙayyadaddun adadin yawan maimaitawa kafin umarni ya ƙare.

Kuna iya duba abubuwan da ke cikin fayil top.log ta amfani da umarnin cat kamar haka:

$ cat top.log

Don ƙara fitar da umarni, yi amfani da ma'aikacin \>>.

Misali don ƙara fitarwa na babban umarni a sama a cikin fayil ɗin top.log musamman a cikin rubutun (ko akan layin umarni), shigar da layin da ke ƙasa:

$ top -bn 5 >>top.log

Lura: Yin amfani da lambar bayanin fayil, umarnin fitarwar fitarwa da ke sama iri ɗaya ne da:

$ top -bn 5 1>top.log

Yadda Ake Jagorar Kuskuren Daidaitawa zuwa Fayil a cikin Linux

Don karkatar da daidaitattun kuskuren umarni, kuna buƙatar ƙayyadadden lambar bayanin fayil, 2 don harsashi ya fahimci abin da kuke ƙoƙarin yi.

Misali umurnin ls da ke ƙasa zai haifar da kuskure lokacin da mai amfani da tsarin al'ada ya kashe shi ba tare da tushen gata ba:

$ ls -l /root/

Kuna iya tura daidaitaccen kuskuren zuwa fayil kamar ƙasa:

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

Domin ƙara daidaitaccen kuskure, yi amfani da umarnin da ke ƙasa:

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

Yadda Ake Miƙa Madaidaicin Fitowa/Kuskure Zuwa Fayil ɗaya

Hakanan yana yiwuwa a kama duk fitar da umarni (duka daidaitattun fitarwa da kuskuren kuskure) cikin fayil guda. Ana iya yin wannan ta hanyoyi biyu masu yiwuwa ta hanyar ƙididdige lambobi masu bayanin fayil:

1. Na farko wata tsohuwar hanya ce wacce ke aiki kamar haka:

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

Umurnin da ke sama yana nufin harsashi zai fara aika fitarwa na umarnin ls zuwa fayil ɗin ls-error.log (ta amfani da >ls-error.log), sannan ya rubuta duk saƙonnin kuskure zuwa mai bayanin fayil ɗin. 2 (daidaitaccen fitarwa) wanda aka tura zuwa fayil ɗin ls-error.log (ta amfani da 2>&1). Yana nufin cewa daidaitaccen kuskure kuma ana aika shi zuwa fayil iri ɗaya azaman daidaitaccen fitarwa.

2. Hanya ta biyu kuma kai tsaye ita ce:

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

Hakanan zaka iya ƙara daidaitaccen fitarwa da kuskuren kuskure zuwa fayil guda kamar haka:

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

Yadda Ake Miƙa Madaidaicin Input zuwa Fayil

Yawancin idan ba duk umarni ba suna samun shigarwar su daga daidaitattun shigarwar, kuma ta tsohuwa daidaitattun shigarwar an haɗa su zuwa madannai.

Don tura daidaitattun shigarwar bayanai daga fayil banda madannai, yi amfani da ma'aikacin \< kamar yadda yake ƙasa:

$ cat <domains.list 

Yadda Ake Miƙa Madaidaicin Input/Fitarwa zuwa Fayil

Kuna iya yin daidaitaccen shigarwar, daidaitaccen juyawar fitarwa a lokaci guda ta amfani da nau'in umarni kamar ƙasa:

$ sort <domains.list >sort.output

Yadda Ake Amfani da Juyawa I/O Ta Amfani da Bututu

Don tura fitar da umarni ɗaya azaman shigar da wani, zaku iya amfani da bututu, wannan hanya ce mai ƙarfi ta gina layukan umarni masu amfani don hadaddun ayyuka.

Misali, umarnin da ke ƙasa zai jera manyan fayiloli biyar da aka gyara kwanan nan.

$ ls -lt | head -n 5 

Anan, zaɓuɓɓuka:

  1. -l - yana ba da damar dogon jeri tsarin
  2. -t - ana jera ta lokacin gyarawa tare da sabbin fayiloli ana nunawa da farko
  3. -n - yana ƙayyadadden adadin layin kan da za a nuna

Muhimman Dokoki don Gina Bututun Gina

Anan, za mu ɗan taƙaita mahimman umarni guda biyu don gina bututun umarni kuma sune:

xargs wanda ake amfani dashi don ginawa da aiwatar da layukan umarni daga daidaitattun shigarwar. A ƙasa akwai misalin bututun da ke amfani da xargs, ana amfani da wannan umarni don kwafi fayil zuwa kundin adireshi da yawa a cikin Linux:

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

Kuma zaɓuɓɓuka:

  1. -n 1 - yana umurtar xargs suyi amfani da mafi yawan hujja ɗaya akan kowane layin umarni kuma aika zuwa umurnin cp
  2. cp - kwafi fayil ɗin
  3. -v - yana nuna ci gaban umarnin kwafin.

Don ƙarin zaɓuɓɓukan amfani da bayanai, karanta ta shafin xargs man:

$ man xargs 

Umurnin tee yana karantawa daga daidaitaccen shigarwa kuma yana rubutawa zuwa daidaitaccen fitarwa da fayiloli. Za mu iya nuna yadda tee ke aiki kamar haka:

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

Ayyukan gudanar da tsarin Linux.

Don ƙarin koyo game da matattarar Linux da bututu, karanta wannan labarin Nemo Manyan adiresoshin IP 10 Samun shiga uwar garken Apache, yana nuna misali mai amfani na amfani da matattara da bututu.

A cikin wannan labarin, mun bayyana mahimman abubuwan juyawa I/O a cikin Linux. Ka tuna don raba ra'ayoyin ku ta sashin ra'ayoyin da ke ƙasa.