Yksi tärkeimmistä ja mielenkiintoisia aiheita Linux -hallinnossa on I/O -uudelleenohjaus. Tämän komentorivin ominaisuuden avulla voit ohjata komentojen syöttämisen ja/tai lähdön tiedostoista ja/tai tiedostoihin tai yhdistää useita komentoja yhteen putkien avulla muodostaen ns.komentoputki”.
Kaikki suorittamamme komennot tuottavat pohjimmiltaan kahdenlaisia tuloksia:
Linuxissa ja muissa Unixin kaltaisissa järjestelmissä on kolme alla mainittua oletustiedostoa, jotka kuori tunnistaa myös tiedostojen kuvaajan numeroilla:
Siksi I/O -uudelleenohjauksen avulla voit muuttaa komennon tulolähdettä sekä sitä, mihin sen lähtö- ja virheilmoitukset lähetetään. Ja tämän tekee mahdolliseksi
“ ja “>”
uudelleenohjausoperaattorit.
Voit ohjata vakiolähdön kuten alla olevassa esimerkissä, tässä haluamme tallentaa ylin komento myöhempää tarkastusta varten:
$ top -bn 5> top.log.
Missä liput:
-b
- mahdollistaa alkuun suorittaaksesi erätilassa, jotta voit ohjata sen tuloksen tiedostoon tai muuhun komentoon.-n
- määrittää toistojen määrän ennen komennon päättymistä.Voit tarkastella sisältöä top.log
tiedostoa käyttämällä kissan komento seuraavasti:
$ kiss top.log.
Jos haluat liittää komennon tuloksen, käytä “>>”
operaattori.
Esimerkiksi liittääksesi tuloksen ylin komento edellä kohdassa top.log tiedosto erityisesti komentosarjan sisällä (tai komentorivillä), kirjoita alla oleva rivi:
$ top -bn 5 >> top.log.
Merkintä: Tiedoston kuvaajanumeroa käyttämällä yllä oleva uudelleenohjauskomento on sama kuin:
$ top -bn 5 1> top.log.
Jos haluat ohjata komennon vakiovirheen, sinun on määritettävä nimenomaisesti tiedoston kuvaajan numero, 2
jotta kuori ymmärtää mitä yrität tehdä.
Esimerkiksi ls komento alla antaa virheen, kun tavallinen järjestelmän käyttäjä suorittaa sen ilman pääkäyttäjän oikeuksia:
$ ls -l /root /
Voit ohjata vakiovirheen tiedostoon seuraavasti:
$ ls -l / root / 2> ls -error.log. $ cat ls-error.log
Jos haluat liittää vakiovirheen, käytä alla olevaa komentoa:
$ ls -l / root / 2 >> ls -error.log.
On myös mahdollista tallentaa kaikki komennon tulokset (sekä vakiolähtö että vakiovirhe) yhdeksi tiedostoksi. Tämä voidaan tehdä kahdella mahdollisella tavalla määrittämällä tiedoston kuvaajanumerot:
1. Ensimmäinen on suhteellisen vanha menetelmä, joka toimii seuraavasti:
$ ls -l / root /> ls -error.log 2> & 1.
Yllä oleva komento tarkoittaa, että kuori lähettää ensin ls komento tiedostoon ls-error.log (käyttäen > ls-error.log
) ja kirjoittaa sitten kaikki virheilmoitukset tiedoston kuvaajaan 2 (vakioulostulo), joka on uudelleenohjattu tiedostoon ls-error.log (käyttäen 2>&1
). Tämä tarkoittaa, että vakiovirhe lähetetään myös samaan tiedostoon kuin vakiolähtö.
2. Toinen ja suora menetelmä on:
$ ls -l / root / &> ls -error.log.
Voit myös liittää vakiolähdön ja -virheen yhteen tiedostoon seuraavasti:
$ ls -l / root / & >> ls -error.log.
Useimmat, elleivät kaikki komennot saavat tulonsa vakiotulosta, ja oletusarvoisesti vakiotulo on liitetty näppäimistöön.
Jos haluat ohjata vakiosyötteen muusta tiedostosta kuin näppäimistöstä, käytä “ operaattori kuten alla:
$ kissaVakiotulon/-lähdön uudelleenohjaus tiedostoon
Voit suorittaa vakiotulon ja vakiolähdön uudelleenohjauksen samanaikaisesti käyttämällä lajittelukomento kuten alla:
$ lajittelualajittele.lähtö. I/O -uudelleenohjauksen käyttäminen putkien avulla
Voit ohjata yhden komennon tuloksen toisen tuloksi käyttämällä putkia. Tämä on tehokas tapa luoda hyödyllisiä komentorivejä monimutkaisiin toimintoihin.
Esimerkiksi alla oleva komento tulee luettelo viidestä viimeksi muokatusta tiedostosta.
$ ls -lt | pää -n 5Tässä vaihtoehtoja:
-l
- mahdollistaa pitkän listausmuodon-t
– lajittele muokkausajan mukaan uusimpien tiedostojen avulla näytetään ensin-n
- määrittää näytettävien otsikkorivien määränTärkeitä käskyjä putkilinjojen rakentamiselle
Tässä tarkastellaan lyhyesti kahta tärkeää komentoa komentoputkien rakentamiseen ja ne ovat:
xargs jota käytetään komentorivien luomiseen ja suorittamiseen vakiotulosta. Alla on esimerkki putkesta, joka käyttää xargs, tämä komento on tottunut kopioi tiedosto useisiin Linux -hakemistoihin:
$ echo/home/aaronkilik/test//home/aaronkilik/tmp | xargs -n 1 cp -v /home/aaronkilik/bin/sys_info.sh.Ja vaihtoehdot:
-n 1
- kehottaa xargia käyttämään korkeintaan yhtä argumenttia komentorivillä ja lähettämään cp komentocp
- kopioi tiedoston-v
– näyttää kopiointikomennon edistymisen.Saat lisätietoja käyttövaihtoehdoista ja tiedoista lukemalla xargs man -sivu:
$ mies xargsA tee komento lukee vakiotulosta ja kirjoittaa vakiolähtöön ja tiedostoihin. Voimme osoittaa kuinka tee toimii seuraavasti:
$ echo "Testaa miten tee -komento toimii" | tee -tiedosto 1Tiedosto- tai tekstisuodattimet käytetään yleisesti putkien kanssa tehokkaat Linux -tiedostotoiminnot, käsitellä tietoja tehokkailla tavoilla, kuten komentojen tulosten uudelleenjärjestelyllä (tämä voi olla elintärkeää hyödyllisten Linux -raporttien luominen), muokata tiedostojen tekstiä ja useita muita Linux -järjestelmänhallintatehtävät.
Jos haluat lisätietoja Linux -suodattimista ja -putkista, lue tämä artikkeli Etsi Top 10 IP -osoitetta, jotka käyttävät Apache -palvelinta, näyttää hyödyllisen esimerkin suodattimien ja putkien käytöstä.
Tässä artikkelissa selitimme I/O -uudelleenohjauksen perusteet Linuxissa. Muista jakaa ajatuksesi alla olevan palauteosion kautta.