Slik lagrer du kommandolinjeutgang til fil på Windows, Mac og Linux

Slik lagrer du kommandolinjeutgang til fil på Windows, Mac og Linux / Mac

Når du kjører en kommando i et Terminal-vindu, skrives utgangen av kommandoen normalt til Terminal, eller på skjermen, slik at du kan lese den umiddelbart. Du kan også skrive ut resultatet av en kommando til en fil hvis du vil lagre den.

Lagring av utdata fra en kommando til en fil er nyttig hvis du prøver å diagnostisere et problem. For å få hjelp fra teknisk støtte, må du kanskje kjøre enkelte kommandoer på datamaskinen din og sende resultatene til supportteamet. Dette er enkelt ved å bruke omdirigering av utdata på kommandolinjen.

I dag skal vi dekke hvordan du sender utgangen av en kommando til en tekstfil i bash-skjermen på Windows, Mac og Linux.

Merk: Vi bruker Mac Terminal Disse 6 Awesome Terminal Commands vil øke MacBook Disse 6 fantastiske Terminal Commands vil øke MacBook Du kan bare stappe så mye inn i grafisk brukergrensesnitt før det blir rotete, så det bør ikke komme som en stor overraskelse at Du kan gjøre noen veldig kule ting ved hjelp av Mac Terminal. Les mer i vårt eksempel, men det fungerer på samme måte i bash-skallet på Linux 40+ Mest brukte Linux Terminal Commands 40 + Mest brukte Linux Terminal Commands Uansett om du bare begynner eller bare nysgjerrig på Linux-terminalen, her er det mest vanlige kommandoer som vil bære deg gjennom hele tiden på Linux. Les mer og i det nye bash-skallet i Windows 10 En rask guide til Linux Bash Shell i Windows 10 En rask guide til Linux Bash Shell i Windows 10 Du kan nå kjøre Linux på Windows. Lær mer om Bash på Windows, fra hvordan og hvorfor du bør installere den, til skjulte funksjoner du sikkert ikke visste om. Les mer .

Omdirigere utdata til bare en fil

Det er to operatører for å omdirigere utgangen av en kommando til en fil i stedet for skjermen.

De > symbolet oppretter en ny fil hvis den ikke finnes, eller overskriver filen hvis den allerede finnes. De >> lager også en ny fil hvis den ikke er tilstede, men den legger til teksten til slutten av filen hvis den allerede eksisterer, i stedet for å overskrive filen.

Merk deg selv: Når du omdirigerer et shell-skriptutgang til en fil, vil det ikke bli vist på konsollen :-) #StupidMe

- Xavier Mertens? (@ xme) 5. august 2017

For å omdirigere utgangen av en kommando til en fil, skriv inn kommandoen, angi > eller >> operatør, og deretter gi banen til en fil du vil sende omdirigert til. Kommandoen ls for eksempel viser filene og mappene i gjeldende katalog. Når du kjører følgende kommando, blir listen over filer og mapper skrevet til ls_output.txt fil i TerminalOutput mappe.

Erstatte / Sti / til / fil med hele banen til filen du vil bruke.

ls> / bane / til / fil

Dette er kommandoen for vårt eksempel.

ls> /Users/lorikaufman/TerminalOutput/ls_output.txt

For å vise innholdet i filen i Terminal-vinduet, bruk katt kommando som vist i følgende kommando. Igjen, erstatt / Sti / til / fil med hele banen til filen du vil vise.

katt / bane / til / fil

De > Operatør erstatter innholdet i en eksisterende fil hver gang du bruker den til å omdirigere utdata. Hvis du vil lagre utdata fra flere kommandoer til en enkelt fil, bruker du >> operatør i stedet. Dette legger til produksjonen av en kommando til slutten av den angitte filen, hvis den allerede eksisterer. Hvis filen ikke eksisterer, oppretter den en ny.

For eksempel legger vi til systeminformasjon til slutten av filen vi opprettet ovenfor. Så, i den følgende linjen, uname -a er kommandoen, etterfulgt av >> omdirigeringsoperatør. Deretter, den fulle banen til filen som vi ønsker å legge til produksjonen av uname kommando.

De -en parameter i uname kommandoen skriver ut all tilgjengelig systeminformasjon.

uname -a >> /Users/lorikaufman/TerminalOutput/ls_output.txt

For å vise filen med den vedlagte informasjonen i Terminal-vinduet, skriv inn følgende kommando, med hele banen til filen.

cat /Users/lorikaufman/TerminalOutput/ls_output.txt

Gjenta denne prosessen så mange ganger som du trenger for å fortsette å legge til kommandoen til slutten av filen.

Her er et annet eksempel på å sende utdataene fra ls kommando som katalogtreet, med underkataloger oppført rekursivt ( R parameter) og en fil per linje (den 1 parameter).

ls -1R> /Users/lorikaufman/TerminalOutput/dir_tree.txt 

Så bruker vi katt kommando, som tidligere nevnt for å vise innholdet i filen i Terminal-vinduet.

cat /Users/lorikaufman/TerminalOutput/dir_tree.txt

Skriv ut utgang til skjerm og omdirigere den til en fil

De > og >> operatørene viser ikke utgangen av en kommando på skjermen. Utgangen sendes kun til en fil.

Hvis du vil sende utgangen til en fil og se den på skjermen, bruker du tee kommando i stedet for > og >> operatører.

Nerd varsel! I dag oppdaget jeg "tee" kommandoen, som rør til både en fil og standard ut. Unix fortsetter å glede seg. pic.twitter.com/aClIT8AdJB

- Zeke Sikelianos (@zeke) 29. august 2017

For å bruke tee kommandoen du må pipe utgangen fra kommandoen du kjører, som ls, til tee kommandoen, ved hjelp av røroperatøren, en vertikal stang (|). For eksempel tar følgende kommando utgangen av ls kommandoen og rør den inn i tee kommando. De tee kommandoen sender deretter den utdata til skjermen og til en fil du angir ved å bruke hele banen til filen.

ls | tee /Users/lorikaufman/TerminalOutput/ls_output.txt

Kommandoen ovenfor erstatter alt innholdet i filen, eller oppretter en ny hvis den ikke eksisterer, akkurat som > operatør. Vi brukte følgende katt kommando for å se innholdet i filen vår i Terminal-vinduet.

cat /Users/lorikaufman/TerminalOutput/ls_output.txt

For å bruke tee kommandoen for å skrive ut utdata til skjermen og legge den til slutten av en fil, skriv inn følgende kommando. Her legger vi til full systeminformasjon til slutten av filen ved hjelp av uname -a kommando, akkurat som vi gjorde med >> operatør, men sender også utgangen til skjermen.

uname -a | tee -a /Users/lorikaufman/TerminalOutput/ls_output.txt

Følgende kommando er tee versjon av å skrive ut et katalogtreet rekursivt til en fil og til skjermen, en fil på hver linje, akkurat som vi gjorde med > operatør.

ls -1R | tee /Users/lorikaufman/TerminalOutput/dir_tree.txt

Så bruker vi katt kommandoen igjen for å vise innholdet i filen.

cat /Users/lorikaufman/TerminalOutput/dir_tree.txt

Men vent, det er mer

Det er mange flere måter å omdirigere utdata, inkludert feil, til en fil. Du kan lese om de forskjellige operatørene og kommandoene som brukes til å omdirigere utdata i I / O-omadresseringskapitlet i Advanced Bash Scripting Guide. Du kan også lære mer om å bruke kommandolinjen En hurtigveiledning for å komme i gang med Linux-kommandolinjen En rask guide for å komme i gang med Linux-kommandolinjen Du kan gjøre mange fantastiske ting med kommandoer i Linux, og det er egentlig ikke vanskelig å lære . Les mer .

Jeg har lært en god leksjon i dag. Ikke omdirigere loggutgangen for en 10 millioner iterasjon for sløyfe til en txt-fil. Resultat: 5 gb txt fil.

- Lloyd (@ lcarswell1) 21. mai 2017

Hva bruker du omdirigering av output for? Hvilken metode bruker du? Har du lært noen andre måter å omdirigere utdata på? Del dine tanker og erfaringer med oss ​​i kommentarene nedenfor.

Utforsk mer om: Linux Bash Shell, Terminal.