Linux lar deg lagre kommandoutdata i filer som et middel for utdataomdirigering. Når du lagrer utdataene til en fil ved hjelp av > eller >> operatører, blir utgangen omdirigert uten informasjon vist på terminalen.
Men hva om du vil skrive ut utdataene på skjermen og lagre det i en fil samtidig? Selv om du ikke kan gjøre det med utdataomdirigeringsoperatørene, er det mulig å gjøre det ved å bruke tee-kommandoen på Linux.
Grunnleggende kommandosyntaks
tee er et standard Linux-verktøy som brukes til å dele utdata fra en kommando mellom standardutdata og filer.
I motsetning til de fleste Linux-kommandoer, brukes tee med andre programmer som bruker en pipe (|). Røroperatøren – en av de mange kommandolinjeoperatører på Linux – lar et program bruke en annen kommandos utdata som input. Du kan ha brukt pipe mens du brukte grep ved siden av ls-kommandoen eller katt.
Den grunnleggende syntaksen til tee-kommandoen er:
kommando | tee alternativer filbane
...hvor alternativer og filbane er kommandolinjeargumentene og banen til filen du vil lagre utdataene i.
Delt terminalutgang på Linux med tee
Den enkleste bruken av tee er å dele utgangen for å vise den i terminalen samt lagre den i en fil. For eksempel å lagre utdataene fra ls-kommandoen til en tekstfil kalt "output.txt," løpe:
ls | tee ./output.txt
Utdataene vil vise innholdet i gjeldende arbeidskatalog som vanlig. Når du sjekker output.txt-filen, vil du finne at tee lagret utdataene til filen også.
Når du angir en filbane, sjekker tee om filen eksisterer. Hvis den ikke finner en, oppretter den automatisk filen for deg, noe som gjør den praktisk å bruke i shell-skript. Det er nyttig når du vil logge utdataene fra et program eller skript for senere referanse.
Du må innlede tee-kommandoen med sudo for å lese eller lagre data til en fil som eies av root-brukeren.
Hvis den angitte filen har data lagret inni som du ikke vil overskrive, bruk -en flagg til legge til utdataene til filen, i stedet for å slette hele filen og deretter lagre dataene:
ls | tee -a ./output.txt
På samme måte kan du omdirigere utdataene til flere filer ved å spesifisere banene, atskilt med enkelt mellomrom:
ls | tee ./output1.txt ./output2.txt
Noen ganger kan uventede feil eller manuelle avbrudd (ved hjelp av Ctrl + C eller Ctrl + Z) i den tidligere kommandoen kan føre til at tee avsluttes. For å ignorere slike avbrudd, bruk -Jeg flagg:
ls | tee -i output.txt
Til få kommandolinjehjelp angående tee eller finne versjonsdetaljer, bruk --hjelp og --versjon flagg som følger:
tee --hjelp
tee --versjon
Omdirigere utdata til en annen kommando
Du kan lage en utdatakjede ved å koble tee med andre Linux-kommandoer. Hvis du gjør det, lagres utdataene til den angitte filen og deretter sendes den videre til neste kommando for behandling.
Bruk følgende format for å omdirigere utdata til en annen kommando:
kommando | tee filbane | annen kommando
For eksempel vil følgende kommando lagre ls-kommandoutgangen til output.txt før du til slutt omdirigerer den til grep for et raskt søk:
ls | tee output.txt | grep "Dokumenter"
Totalt sett kan du bruke tee-kommandoen til å leke med standard input og output på Linux.
Manipulere utdata og tekst med Linux-kommandoer
Tee-kommandoen legger til sårt tiltrengt funksjonalitet til standard utdataomdirigeringsoperatører på Linux. Du kan til og med bruke den til å manipulere utdataene til en kommando før du sender den videre til et annet program.
På samme måte kan du endre tekst ved hjelp av terminalen ved hjelp av noen standard Linux-kommandoer. De kan ta litt tid å venne seg til, men til slutt er tekstmanipulering via kommandolinjen verdt å lære for enhver systemadministrator.