Når du kører en kommando i et Terminal-vindue, skrives udgangen af kommandoen normalt til Terminal eller på skærmen, så du kan læse den med det samme. Du kan også udskrive output fra en kommando til en fil, hvis du vil gemme den.
Det er nyttigt at gemme output fra en kommando til en fil, hvis du forsøger at diagnosticere et problem. For at få hjælp fra teknisk support, skal du muligvis køre visse kommandoer på din computer og sende resultaterne til supportteamet. Dette er nemt at bruge output omdirigering på kommandolinjen.
I dag dækker vi hvordan du sender output fra en kommando til en tekstfil i bash-shell på Windows, Mac og Linux.
Bemærk: Vi bruger Mac-terminalen Disse 6 fantastiske terminalkommandoer vil øge din MacBook Disse 6 fantastiske terminalkommandoer vil øge din MacBook Du kan kun få fat i så meget i grafisk brugergrænseflade, før det bliver rod, så det skal komme som ikke stort Overrask at du kan gøre nogle virkelig seje ting ved hjælp af Mac Terminal. Læs mere i vores eksempel, men det fungerer på samme måde i bash shell på Linux 40+ Mest brugte Linux Terminal Commands 40 + Mest brugte Linux Terminal Commands Uanset om du lige er begyndt eller bare nysgerrig om Linux-terminalen, her er de mest almindelige kommandoer, der vil bære dig igennem hele din tid på Linux. Læs mere og i den nye bash shell i Windows 10 En hurtig guide til Linux Bash Shell i Windows 10 En hurtig guide til Linux Bash Shell i Windows 10 Du kan nu køre Linux på Windows. Lær mere om Bash på Windows, fra hvordan og hvorfor du skal installere det, til skjulte funktioner, som du sikkert ikke vidste om. Læs mere .
Omdirigere output til kun en fil
Der er to operatører til omdirigering af output fra en kommando til en fil i stedet for skærmen.
Symbolet > opretter en ny fil, hvis den ikke findes, eller overskriver filen, hvis den allerede findes. >> oprettes også en ny fil, hvis den ikke er til stede, men den tilføjer teksten til slutningen af filen, hvis den allerede findes, snarere end overskrivning af filen.
Bemærk til mig selv: Når du omdirigerer et shell script output til en fil, vises det ikke på konsollen :-) #StupidMe
- Xavier Mertens? (@ xme) 5. august 2017
Hvis du vil omdirigere output fra en kommando til en fil, skal du skrive kommandoen, angive operatøren > eller >> og derefter angive stien til en fil, du vil omdirigere outputen til. For eksempel ls kommandoen lister filerne og mapper i den aktuelle mappe. Når du kører følgende kommando, vil listen over filer og mapper blive skrevet til filen ls_output.txt i mappen TerminalOutput .
Udskift / sti / til / fil med den fulde sti til den fil, du vil bruge.
ls>/path/to/file
Dette er kommandoen til vores eksempel.
ls>/Users/lorikaufman/TerminalOutput/ls_output.txt
For at se indholdet af filen i Terminal-vinduet, brug kommandoen cat som vist i den følgende kommando. Igen erstattes / path / to / fil med den fulde sti til den fil, du vil se.
cat /path/to/file
Operatøren > erstatter indholdet af en eksisterende fil, hver gang du bruger den til at omdirigere output. Hvis du vil gemme output fra flere kommandoer til en enkelt fil, skal du bruge >> -operatoren i stedet. Dette tilføjer output fra en kommando til slutningen af den angivne fil, hvis den allerede eksisterer. Hvis filen ikke findes, opretter den en ny.
For eksempel tilføjer vi systemoplysninger til slutningen af den fil, vi oprettede ovenfor. Så i den følgende linje er uname -a kommandoen, efterfulgt af >> omdirigeringsoperatøren. Dernæst den fulde sti til den fil, som vi ønsker at tilføje udgangen af uname- kommandoen.
-en parameter i kommandoen uname udskriver alle tilgængelige systemoplysninger.
uname -a>>/Users/lorikaufman/TerminalOutput/ls_output.txt
For at få vist filen med den vedhæftede information i vinduet Terminal, skal du indtaste følgende kommando med den fulde sti til din fil.
cat /Users/lorikaufman/TerminalOutput/ls_output.txt
Gentag denne proces så mange gange, som du behøver for at beholde kommandoudgang til slutningen af filen.
Her er et andet eksempel på at sende output fra kommandoen ls som katalogtræ med underkataloger, der er rekursivt angivet ( R- parameteren) og en fil pr. Linje (den 1 parameter).
ls -1R>/Users/lorikaufman/TerminalOutput/dir_tree.txt
Derefter bruger vi kommandoen cat som tidligere nævnt til at se indholdet af filen i Terminal vinduet.
cat /Users/lorikaufman/TerminalOutput/dir_tree.txt
Udskriv output til skærm og omdirigere det til en fil
Operatørerne > og >> viser ikke output fra en kommando på skærmen. Udgangen sendes kun til en fil.
Hvis du vil sende output til en fil og se den på skærmen, skal du bruge kommandoen tee i stedet for > og >> operatørerne.
Nerd alarm! I dag opdagede jeg 'tee'-kommandoen, som rør til både en fil og standard ud. Unix fortsætter med at glæde. pic.twitter.com/aClIT8AdJB
- Zeke Sikelianos (@zeke) 29. august 2017
For at bruge kommandoen tee skal du rør udgangen fra kommandoen, du kører, ligesom ls, til tee- kommandoen, ved hjælp af røroperatøren, en lodret bjælke ( | ). Følgende kommando tager f.eks. Outputen fra kommandoen ls og piper den ind i kommandoen til tee . T- kommandoen sender derefter den output til skærmen og til en fil, du angiver, ved at bruge den fulde sti til filen.
ls | tee /Users/lorikaufman/TerminalOutput/ls_output.txt
Ovenstående kommando erstatter alt indholdet i filen eller opretter en ny, hvis den ikke findes, ligesom > operatøren. Vi brugte følgende kommando til at se indholdet af vores fil i vinduet Terminal.
cat /Users/lorikaufman/TerminalOutput/ls_output.txt
For at bruge tee- kommandoen til at udskrive output til skærmen og tilføje den til enden af en fil, skal du indtaste følgende kommando. Her tilføjer vi komplette systemoplysninger til slutningen af filen ved hjælp af kommandoen uname -a, ligesom vi gjorde med >> operatøren, men sender også output til skærmen.
uname -a | tee -a /Users/lorikaufman/TerminalOutput/ls_output.txt
Følgende kommando er tee- versionen af at udskrive et katalogtræ rekursivt til en fil og til skærmen, en fil på hver linje, ligesom vi gjorde med > operatøren.
ls -1R | tee /Users/lorikaufman/TerminalOutput/dir_tree.txt
Derefter bruger vi kommandoen cat igen for at se indholdet af filen.
cat /Users/lorikaufman/TerminalOutput/dir_tree.txt
Men vent, der er mere
Der er mange flere måder at omdirigere output, herunder fejl, til en fil. Du kan læse om de forskellige operatører og kommandoer, der bruges til at omdirigere output i kapitlet I / O omdirigering i Advanced Bash Scripting Guide. Du kan også lære mere om at bruge kommandolinjen En hurtig guide til at komme i gang med Linux-kommandolinjen En hurtig guide til at komme i gang med Linux-kommandolinjen Du kan lave masser af fantastiske ting med kommandoer i Linux, og det er virkelig ikke svært at lære . Læs mere .
Jeg har lært en god lektion i dag. Du må ikke omdirigere logproduktet fra en 10 million iteration for loop til en txt-fil. Resultat: 5 gb txt fil.
- Lloyd (@ lcarswell1) 21. maj 2017
Hvad bruger du output omdirigering til? Hvilken metode bruger du? Har du lært nogen andre måder at omdirigere output til? Del dine tanker og oplevelser med os i kommentarerne nedenfor.