Tgħallem Il-Bażi ta' Kif Jaħdem id-Direzzjoni mill-ġdid tal-Linux I/O (Input/Output).
Wieħed mis-suġġetti l-aktar importanti u interessanti taħt l-amministrazzjoni tal-Linux huwa d-direzzjoni mill-ġdid tal-I/O. Din il-karatteristika tal-linja tal-kmand tippermettilek li terġa 'tidderieġi l-input u/jew l-output ta' kmandi minn u/jew lejn fajls, jew tingħaqad diversi kmandi flimkien billi tuża pajpijiet biex tifforma dak li hu magħruf bħala \pipeline ta' kmand.
Il-kmandi kollha li nħaddmu b'mod fundamentali jipproduċu żewġ tipi ta 'output:
- ir-riżultat tal-kmand – dejta li l-programm huwa ddisinjat li jipproduċi, u
- l-istatus tal-programm u l-messaġġi ta' żball li jinfurmaw lill-utent bid-dettalji tal-eżekuzzjoni tal-programm.
Fil-Linux u sistemi oħra bħal Unix, hemm tliet fajls default imsemmija hawn taħt li huma wkoll identifikati mill-qoxra bl-użu ta' numri tad-deskritturi tal-fajls:
- stdin jew 0 – huwa konness mat-tastiera, il-biċċa l-kbira tal-programmi jaqraw l-input minn dan il-fajl.
- stdout jew 1 – huwa mehmuż mal-iskrin, u l-programmi kollha jibagħtu r-riżultati tagħhom lil dan il-fajl u
- stderr jew 2 – il-programmi jibagħtu messaġġi ta' status/żball lil dan il-fajl li huwa wkoll mehmuż mal-iskrin.
Għalhekk, id-direzzjoni mill-ġdid I/O tippermettilek li tbiddel is-sors tad-dħul ta 'kmand kif ukoll fejn jintbagħtu l-output u l-messaġġi ta' żball tiegħu. U dan isir possibbli mill-operaturi ta' direzzjoni mill-ġdid \<”
u \>”
.
Kif tidderieġi l-output standard għall-fajl fil-Linux
Tista 'tindirizza mill-ġdid l-output standard bħal fl-eżempju hawn taħt, hawnhekk, irridu naħżnu l-output tal-kmand ta' fuq għal spezzjoni aktar tard:
$ top -bn 5 >top.log
Fejn il-bnadar:
-b
– jippermetti lil top jaħdem fil-modalità tal-lott, sabiex tkun tista’ tidderieġi mill-ġdid l-output tiegħu lejn fajl jew kmand ieħor.-n
– jispeċifika n-numru ta' iterazzjonijiet qabel ma jintemm il-kmand.
Tista' tara l-kontenut tal-fajl top.log
billi tuża l-kmand tal-qtates kif ġej:
$ cat top.log
Biex tehmeż l-output ta’ kmand, uża l-operatur \>>”
.
Per eżempju biex tehmeż l-output tal-kmand ta 'fuq hawn fuq fil-fajl top.log speċjalment fi skript (jew fuq il-linja tal-kmand), daħħal il-linja hawn taħt:
$ top -bn 5 >>top.log
Nota: Bl-użu tan-numru tad-deskrittur tal-fajl, il-kmand tal-output redirect hawn fuq huwa l-istess bħal:
$ top -bn 5 1>top.log
Kif Tindirizza mill-ġdid Żball Standard għall-Fajl fil-Linux
Biex tindirizza mill-ġdid żball standard ta' kmand, trid tispeċifika espliċitament in-numru tad-deskrittur tal-fajl, 2
biex il-qoxra tifhem dak li qed tipprova tagħmel.
Pereżempju l-kmand ls hawn taħt se jipproduċi żball meta jiġi eżegwit minn utent tas-sistema normali mingħajr privileġġi tal-għeruq:
$ ls -l /root/
Tista' tidderieġi mill-ġdid l-iżball standard għal fajl kif ġej:
$ ls -l /root/ 2>ls-error.log $ cat ls-error.log
Sabiex tehmeż l-iżball standard, uża l-kmand hawn taħt:
$ ls -l /root/ 2>>ls-error.log
Kif Tindirizza mill-ġdid l-Output Standard/Żball Għal Fajl Wieħed
Huwa wkoll possibbli li jinqabad l-output kollu ta 'kmand (kemm output standard kif ukoll żball standard) f'fajl wieħed. Dan jista' jsir b'żewġ modi possibbli billi jiġu speċifikati n-numri tad-deskritturi tal-fajl:
1. L-ewwel huwa metodu relattivament antik li jaħdem kif ġej:
$ ls -l /root/ >ls-error.log 2>&1
Il-kmand ta 'hawn fuq ifisser li l-qoxra l-ewwel tibgħat l-output tal-kmand ls lill-fajl ls-error.log (bl-użu ta' >ls-error.log
), u mbagħad tikteb il-messaġġi ta 'żball kollha lid-deskrittur tal-fajl 2 (output standard) li ġie ridirett lejn il-fajl ls-error.log (bl-użu 2>&1
). Li jimplika li l-iżball standard jintbagħat ukoll lill-istess fajl bħall-output standard.
2. It-tieni metodu u dirett huwa:
$ ls -l /root/ &>ls-error.log
Tista' wkoll tehmeż output standard u żball standard ma' fajl wieħed bħal dan:
$ ls -l /root/ &>>ls-error.log
Kif tidderieġi mill-ġdid l-Input Standard għall-Fajl
Ħafna jekk mhux il-kmandi kollha jiksbu l-input tagħhom minn input standard, u awtomatikament input standard huwa mehmuż mat-tastiera.
Biex tindirizza mill-ġdid input standard minn fajl għajr it-tastiera, uża l-operatur \<”
kif hawn taħt:
$ cat <domains.list
Kif tidderieġi mill-ġdid l-Input/Output Standard għall-Fajl
Tista 'twettaq input standard, direzzjoni mill-ġdid tal-output standard fl-istess ħin billi tuża kmand ta' sort kif hawn taħt:
$ sort <domains.list >sort.output
Kif tuża I/O Redirection Bl-użu tal-pajpijiet
Biex terġa 'tidderieġi l-output ta' kmand wieħed bħala input ta 'ieħor, tista' tuża pajpijiet, dan huwa mezz qawwi ta 'bini ta' linji ta 'kmand utli għal operazzjonijiet kumplessi.
Pereżempju, il-kmand hawn taħt se jelenka l-aqwa ħames fajls modifikati reċentement.
$ ls -lt | head -n 5
Hawnhekk, l-għażliet:
-l
– jippermetti format ta’ lista twila-t
– issortja skond il-ħin tal-modifika bl-aktar fajls ġodda jintwerew l-ewwel-n
– jispeċifika n-numru ta' linji ta' header li għandhom juru
Kmandi Importanti għall-Bini Pipelines
Hawnhekk, se nirrevedu fil-qosor żewġ kmandi importanti għall-bini ta' pipelines ta' kmand u huma:
xargs li tintuża biex tibni u tesegwixxi linji ta' kmand minn input standard. Hawn taħt hemm eżempju ta 'pipeline li juża xargs, dan il-kmand jintuża biex jikkopja fajl f'direttorji multipli fil-Linux:
$ echo /home/aaronkilik/test/ /home/aaronkilik/tmp | xargs -n 1 cp -v /home/aaronkilik/bin/sys_info.sh
U l-għażliet:
-n 1
– jagħti struzzjonijiet lil xargs biex jużaw l-iktar argument wieħed għal kull linja ta’ kmand u jibagħtu lill-kmand cpcp
– tikkopja l-fajl-v
– juri l-progress tal-kmand tal-kopja.
Għal aktar għażliet ta’ użu u informazzjoni, aqra l-paġna man xargs:
$ man xargs
Kmand tee jaqra minn input standard u jikteb fuq output u fajls standard. Nistgħu nuru kif it-tee taħdem kif ġej:
$ echo "Testing how tee command works" | tee file1
Ħidmiet ta 'amministrazzjoni tas-sistema Linux.
Biex titgħallem aktar dwar il-filtri u l-pajpijiet tal-Linux, aqra dan l-artikolu Sib l-Ewwel 10 Indirizzi IP Aċċess għal Apache Server, juri eżempju utli ta 'użu ta' filtri u pajpijiet.
F'dan l-artikolu, spjegajna l-prinċipji fundamentali tar-ridirezzjoni tal-I/O fil-Linux. Ftakar li taqsam il-ħsibijiet tiegħek permezz tat-taqsima tal-feedback hawn taħt.