Mụta ihe ndabere nke ka Linux I/O (ntinye/mmepụta) redirection si arụ ọrụ


Otu n'ime isiokwu kachasị mkpa ma dị ụtọ n'okpuru nchịkwa Linux bụ ntụgharị I/O. Akụkụ a nke ahịrị iwu na-enyere gị aka ịtụgharị ntinye na/ma ọ bụ mmepụta nke iwu sitere na na/ma ọ bụ na faịlụ, ma ọ bụ jikọọ ọtụtụ iwu ọnụ site na iji ọkpọkọ iji mepụta ihe a maara dị ka pipeline iwu.

Iwu niile anyị na-agba na-emepụta ụdị mmepụta abụọ:

  1. nsonaazụ iwu – data mmemme e mere iji mepụta, yana
  2. Ọkwa mmemme na ozi njehie na-eme ka onye ọrụ mara nkọwa mmezu mmemme.

Na Linux na sistemụ Unix ndị ọzọ, enwere faịlụ ndabara atọ akpọrọ n'okpuru nke shei ahụ na-ejikwa nọmba nkọwa faịlụ mara:

  1. stdin ma ọ bụ 0 - ejikọrọ ya na ahụigodo, ọtụtụ mmemme na-agụ ntinye sitere na faịlụ a.
  2. stdout ma ọ bụ 1 - etinyere ya na ihuenyo, mmemme niile na-eziga nsonaazụ ha na faịlụ a yana
  3. stderr ma ọ bụ 2 - mmemme na-eziga ozi ọkwa/ njehie na faịlụ a nke etinyekwara na ihuenyo.

Ya mere, I/O redirection na-enye gị ohere ịgbanwe isi mmalite ntinye nke iwu yana ebe ezigara ya na ozi njehie ya. Ma nke a ga-ekwe omume site n'aka ndị ọrụ ntụgharịgharị \< na \>.

Otu esi emegharị ihe nrụpụta ọkọlọtọ na faịlụ na Linux

Ị nwere ike redirect mmepụta ọkọlọtọ dị ka ihe atụ dị n'okpuru ebe a, anyị chọrọ ịchekwa mmepụta nke iwu kachasị elu maka nyocha ọzọ:

$ top -bn 5 >top.log

Ebe ọkọlọtọ:

  1. -b - na-enyere elu aka ịgba ọsọ n'ụdị ogbe, ka ị nwee ike ibugharị mmepụta ya na faịlụ ma ọ bụ iwu ọzọ.
  2. -n - na-akọwapụta ọnụọgụgụ ugboro ugboro tupu iwu akwụsị.

Ị nwere ike ịlele ọdịnaya nke top.log faịlụ site na iji iwu cat dị ka ndị a:

$ cat top.log

Iji tinye mmepụta nke iwu, jiri onye ọrụ \>>.

Dịka ọmụmaatụ iji tinye mmepụta nke iwu kachasị elu na faịlụ top.log karịsịa n'ime edemede (ma ọ bụ na ahịrị iwu), tinye ahịrị n'okpuru:

$ top -bn 5 >>top.log

Mara: Iji nọmba nkọwa faịlụ, iwu redirect nke dị n'elu bụ otu ihe ahụ:

$ top -bn 5 1>top.log

Otu esi atụgharị njehie ọkọlọtọ na faịlụ na Linux

Iji degharịa njehie ọkọlọtọ nke iwu, ịkwesịrị ịkọwapụta nọmba nkọwa faịlụ, 2 ka shei ahụ ghọta ihe ị na-achọ ime.

Dịka ọmụmaatụ, iwu ls dị n'okpuru ga-emepụta njehie mgbe onye ọrụ sistemu nkịtị gburu ya na-enweghị ikike mgbọrọgwụ:

$ ls -l /root/

Ị nwere ike ibugharị njehie ọkọlọtọ ahụ na faịlụ dịka n'okpuru:

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

Ka ịgbakwunye njehie ọkọlọtọ, jiri iwu dị n'okpuru:

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

Otu esi emegharị mmepụta/ mperi na otu faịlụ

Ọ dịkwa ike ijide nsonaazụ niile nke iwu (ma mmepụta ọkọlọtọ na njehie ọkọlọtọ) n'ime otu faịlụ. Enwere ike ime nke a n'ụzọ abụọ enwere ike site na ịkọwa nọmba nkọwa faịlụ:

1. Nke mbụ bụ usoro ochie nke na-arụ ọrụ dịka ndị a:

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

Iwu dị n'elu pụtara na shei ahụ ga-ebu ụzọ ziga mmepụta nke iwu ls na faịlụ ls-error.log (iji >ls-error.log), wee dee ozi njehie niile na onye na-akọwa faịlụ. 2 (mmepụta ọkọlọtọ) nke ebugharịrị gaa na faịlụ ls-error.log (iji 2>&1). Na-egosi na a na-ezigakwa njehie ọkọlọtọ n'otu faịlụ ahụ dị ka mmepụta ọkọlọtọ.

2. Ụzọ nke abụọ na kpọmkwem bụ:

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

Ị nwekwara ike itinye mmepụta ọkọlọtọ na njehie ọkọlọtọ na otu faịlụ dị ka nke a:

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

Otu esi atụgharị ntinye ọkọlọtọ na faịlụ

Ọtụtụ ma ọ bụrụ na ọ bụghị iwu niile na-enweta ntinye ha site na ndenye ọkọlọtọ, na ndabara na-etinye ntinye ọkọlọtọ na ahụigodo.

Ka ibugharịa ndenye ọkọlọtọ site na faịlụ na-abụghị nke ahụigodo, jiri onye ọrụ \< dị ka n'okpuru:

$ cat <domains.list 

Otu esi atụgharị ntinye/mmepụta ọkọlọtọ na faịlụ

Ị nwere ike ịme ntinye ọkọlọtọ, ntụgharị nrụpụta ọkọlọtọ n'otu oge site na iji ụdị iwu dị ka n'okpuru:

$ sort <domains.list >sort.output

Otu esi eji Ntugharị I/O na-eji ọkpọkọ

Iji redirect mmepụta nke otu iwu dị ka ntinye nke ọzọ, ị nwere ike iji ọkpọkọ, nke a bụ ụzọ dị ike isi wuo ahịrị iwu bara uru maka ịrụ ọrụ mgbagwoju anya.

Dịka ọmụmaatụ, iwu dị n'okpuru ga-edepụta faịlụ ise kachasị elu emezigharịrị nso nso a.

$ ls -lt | head -n 5 

Ebe a, nhọrọ:

  1. -l - na-enyere usoro ndepụta ogologo aka
  2. -t - Ụdị site na oge mgbanwe yana faịlụ ndị kachasị ọhụrụ na-ebu ụzọ gosi
  3. -n - ezipụta ọnụ ọgụgụ ahịrị nkụnye eji isi mee ka egosi

Iwu ndị dị mkpa maka iwulite pipeline

N'ebe a, anyị ga-enyocha nkenke iwu abụọ dị mkpa maka iwupụta pipeline iwu na ha bụ:

xargs nke a na-eji wuo ma mebie ahịrị iwu site na ntinye ọkọlọtọ. N'okpuru bụ ọmụmaatụ nke pipeline nke na-eji xargs, a na-eji iwu a iji detuo faịlụ n'ime ọtụtụ akwụkwọ ndekọ aha na Linux:

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

Na nhọrọ:

  1. -n 1 - na-adụ ọdụ ka xargs jiri otu arụmụka maka ahịrị iwu wee ziga na iwu cp
  2. cp - detuo faịlụ ahụ
  3. -v - na-egosiputa ọganihu nke iwu nnomi.

Maka nhọrọ ojiji na ozi ndị ọzọ, gụọ site na ibe xargs man:

$ man xargs 

Iwu tee na-agụ site na ntinye ọkọlọtọ wee dee na mmepụta ọkọlọtọ na faịlụ. Anyị nwere ike igosi otú tee si arụ ọrụ dị ka ndị a:

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

Ọrụ nchịkwa sistemụ Linux.

Iji mụtakwuo maka nzacha Linux na ọkpọkọ, gụọ akụkọ a Chọta Top 10 Adreesị IP Ịnweta Apache Server, na-egosi ihe atụ bara uru nke iji nzacha na ọkpọkọ.

N'edemede a, anyị kọwara isi mmalite nke I/O redirection na Linux. Cheta ịkekọrịta echiche gị site na ngalaba nzaghachi n'okpuru.