Õppige põhitõdesid, kuidas Linuxi I/O (sisend/väljund) ümbersuunamine töötab
Linuxi administreerimise üks olulisemaid ja huvitavamaid teemasid on I/O ümbersuunamine. See käsurea funktsioon võimaldab teil suunata käskude sisendi ja/või väljundi failidest ja/või failidesse või ühendada torude abil mitu käsku, et moodustada nn käsurida.
Kõik käsklused, mida käitame, annavad põhimõtteliselt kahte tüüpi väljundit:
- käsu tulemus - andmed, mille tootmiseks programm on loodud, ja
- programmi oleku ja tõrketeated, mis teavitavad kasutajat programmi täitmise üksikasjadest.
Linuxis ja teistes Unixi-laadsetes süsteemides on kolm allpool nimetatud vaikefaili, mille ka koor tuvastab faili kirjeldajate numbritega:
- stdin või 0 - see on ühendatud klaviatuuriga, enamik programme loeb selle faili sisendit.
- stdout või 1 - see on lisatud ekraanile ja kõik programmid saadavad oma tulemused sellesse faili ja
- stderr või 2 - programmid saadavad oleku/veateateid sellesse faili, mis on samuti ekraanile lisatud.
Seetõttu võimaldab sisend/väljund ümbersuunamine muuta nii käsu sisendallikat kui ka selle väljundi- ja veateateid. Ja seda võimaldavad ümbersuunamisoperaatorid \"<"
ja \">"
.
Kuidas suunata standardväljund faili Linuxis
Saate standardväljundi ümber suunata nagu allpool toodud näites, siin soovime salvestada ülemise käsu väljundi hilisemaks kontrollimiseks:
$ top -bn 5 >top.log
Kus lipud:
-
-b
- võimaldab topil töötada pakettrežiimis, et saaksite selle väljundi faili või mõnda muusse käsusse suunata. -
-n
- määrab korduste arvu enne käsu lõppemist.
Faili top.log
sisu saate vaadata käsu cat abil järgmiselt:
$ cat top.log
Käsu väljundi lisamiseks kasutage operaatorit \">>"
.
Näiteks ülemise ülemise käsu väljundi lisamiseks top.log-faili, eriti skripti (või käsureale), sisestage järgmine rida:
$ top -bn 5 >>top.log
Märkus. Kasutades failikirjelduse numbrit, on ülaltoodud väljundi ümbersuunamise käsk sama mis:
$ top -bn 5 1>top.log
Kuidas standardviga Linuxis faili suunata
Käsu standardvea ümbersuunamiseks peate shellile selgesõnaliselt määrama faili kirjeldaja numbri 2
, et mõista, mida proovite teha.
Näiteks allpool olev käsk ls tekitab vea, kui selle täidab tavaline süsteemi kasutaja ilma juurõigusteta:
$ ls -l /root/
Võite standardvea faili suunata järgmiselt:
$ ls -l /root/ 2>ls-error.log $ cat ls-error.log
Standardvea lisamiseks kasutage allolevat käsku:
$ ls -l /root/ 2>>ls-error.log
Kuidas suunata standardväljund/-viga ühte faili
Samuti on võimalik kogu käsu väljund (nii standardväljund kui ka standardviga) hõivata ühte faili. Seda saab teha kahel võimalikul viisil, määrates faili kirjeldajate numbrid:
1. Esimene on suhteliselt vana meetod, mis toimib järgmiselt:
$ ls -l /root/ >ls-error.log 2>&1
Ülaltoodud käsk tähendab, et kest saadab esmalt käsu ls väljundi faili ls-error.log (kasutades > ls-error.log
) ja kirjutab seejärel kõik tõrketeated failikirjeldisse 2 (standardväljund), mis on suunatud faili ls-error.log (kasutades 2> & 1
). See tähendab, et standardviga saadetakse ka standardsesse väljundisse samasse faili.
2. Teine ja otsene meetod on:
$ ls -l /root/ &>ls-error.log
Samuti saate ühele failile lisada standardväljundi ja standardvea, näiteks:
$ ls -l /root/ &>>ls-error.log
Kuidas suunata standardsisend faili
Enamik, kui mitte kõik käsud, saavad sisendi standardsisendist ja vaikimisi on standardne sisend klaviatuuril ühendatud.
Standardse sisendi ümbersuunamiseks failist, mis pole klaviatuur, kasutage operaatorit \"<"
järgmiselt:
$ cat <domains.list
Kuidas suunata standardsisend/väljund faili
Saate samaaegselt teha standardsisendi, väljundi standardse ümbersuunamise, kasutades allpool asuvat sortimis käsku:
$ sort <domains.list >sort.output
Kuidas kasutada I/O ümbersuunamist torude abil
Ühe käsu väljundi ümbersuunamiseks teise sisendina võite kasutada torusid. See on võimas vahend keeruliste toimingute jaoks kasulike käsuridade loomiseks.
Näiteks loetleb allolev käsk viis viimast muudetud faili.
$ ls -lt | head -n 5
Siin on valikud:
-
-l
- lubab pika loendi vormingu -
-t
- kõigepealt kuvatakse uusimate failidega sortimine muutmisaja järgi -
-n
- määrab kuvatavate päiseridade arvu
Torustike ehitamise olulised käsud
Siin vaatame lühidalt läbi kaks olulist käsku torujuhtmete ehitamiseks ja need on:
xargs, mida kasutatakse käsuridade loomiseks ja käivitamiseks standardsisendist. Allpool on näide torustikust, mis kasutab xargsi. Seda käsku kasutatakse faili kopeerimiseks Linuxi mitmesse kataloogi:
$ echo /home/aaronkilik/test/ /home/aaronkilik/tmp | xargs -n 1 cp -v /home/aaronkilik/bin/sys_info.sh
Ja võimalused:
-
-n 1
- käsib xargsil kasutada käsureal maksimaalselt ühte argumenti ja saata käsule cp -
cp
- kopeerib faili -
-v
- kuvab käsu kopeerimise edenemise.
Kasutamisvõimaluste ja lisateabe saamiseks lugege läbi xargsi käsulehe:
$ man xargs
Tee-käsk loeb standardsisendist ja kirjutab standardsesse väljundisse ja failidesse. Me saame näidata, kuidas tee töötab, järgmiselt:
$ echo "Testing how tee command works" | tee file1
Linuxi süsteemi administreerimise ülesanded.
Linuxi filtrite ja torude kohta lisateabe saamiseks lugege seda artiklit. Leidke 10 parimat IP-aadressi, mis pääsevad juurde Apache Serverile. Selles on kasulik näide filtrite ja torude kasutamisest.
Selles artiklis selgitasime Linuxis I/O ümbersuunamise põhialuseid. Ärge unustage oma mõtteid jagada allpool oleva tagasiside jaotise kaudu.