Så här lagrar du kommandoradsutgång till fil på Windows, Mac och Linux

Så här lagrar du kommandoradsutgång till fil på Windows, Mac och Linux / Mac

När du kör ett kommando i ett terminalfönster skrivs utmatningen av kommandot normalt till terminalen eller på skärmen så att du kan läsa den direkt. Du kan också skriva ut resultatet av ett kommando till en fil om du vill spara det.

Att spara utdata från ett kommando till en fil är till hjälp om du försöker diagnostisera ett problem. För att få hjälp från tekniskt stöd kanske du måste köra vissa kommandon på din dator och skicka resultaten till supportteamet. Det här är enkelt att använda utmatningsomvandling på kommandoraden.

Idag täcker vi hur du skickar utmatningen av ett kommando till en textfil i bash-skalet på Windows, Mac och Linux.

Notera: Vi använder Mac-terminalen Dessa 6 fantastiska terminalkommandon kommer att öka din MacBook Dessa 6 fantastiska terminalkommandon kommer att öka din MacBook Du kan bara ställa in så mycket i grafiskt användargränssnitt innan det blir rörigt, så det borde inte bli så stor överraskning att Du kan göra några riktigt coola saker med Mac Terminal. Läs mer i vårt exempel, men det fungerar på samma sätt i bash-skalet på Linux 40+ Mest använda Linux Terminal Commands 40 + Mest använda Linux Terminal Commands Oavsett om du bara är igång eller helt nyfiken på Linux-terminalen, här är vanligaste kommandon som kommer att leda dig genom hela din tid på Linux. Läs mer och i det nya bash-skalet i Windows 10 En snabbguide till Linux Bash Shell i Windows 10 En snabbguide till Linux Bash Shell i Windows 10 Du kan nu köra Linux på Windows. Läs mer om Bash på Windows, från hur och varför du ska installera den, till dolda funktioner som du förmodligen inte visste om. Läs mer .

Omdirigera utdata till enbart fil

Det finns två operatörer för omdirigering av utsignalen från ett kommando till en fil i stället för skärmen.

De > symbol skapar en ny fil om den inte finns, eller skrivs om filen om den redan finns. De >> skapar också en ny fil om den inte finns, men den lägger till texten till slutet av filen om den redan existerar, snarare än att skriva över filen.

Obs!: När du omdirigerar en skalskriptutgång till en fil visas den inte på konsolen :-) #StupidMe

- Xavier Mertens? (@xme) 5 augusti 2017

För att omdirigera utsignalen från ett kommando till en fil, skriv kommandot, ange > eller den >> operatör, och sedan ge sökvägen till en fil som du vill att produktionen omdirigeras till. Kommandot ls listar till exempel filerna och mapparna i den aktuella katalogen. När du kör följande kommando kommer listan över filer och mappar att skrivas till ls_output.txt fil i TerminalOutput mapp.

Byta ut / Sökväg / till / fil med hela sökvägen till filen du vill använda.

ls> / sökväg / till / fil

Detta är kommandot för vårt exempel.

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

Om du vill visa innehållet i filen i Terminal-fönstret använder du katt kommando som visas i följande kommando. Åter ersätt / Sökväg / till / fil med hela sökvägen till filen du vill visa.

katt / sökväg / till / fil

De > operatören ersätter innehållet i en befintlig fil varje gång du använder den för att omdirigera utmatningen. Om du vill spara utmatningen från flera kommandon till en enda fil, använd >> operatör istället. Detta lägger till utgången av ett kommando till slutet av den angivna filen, om den redan existerar. Om filen inte existerar skapar den en ny.

Till exempel lägger vi till systeminformation till slutet av filen vi skapade ovan. Så, i följande rad, uname -a är kommandot, följt av >> omdirigeringsoperatör. Sedan är hela sökvägen till filen som vi vill lägga till du namnger kommando.

De -en parameter i du namnger Kommandot skriver ut all tillgänglig systeminformation.

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

För att visa filen med den bifogade informationen i Terminal-fönstret, skriv följande kommando med hela sökvägen till din fil.

cat /Users/lorikaufman/TerminalOutput/ls_output.txt

Upprepa denna process så många gånger som du behöver för att fortsätta lägga till kommandotillgång till slutet av filen.

Här är ett annat exempel på att skicka utmatningen från ls Kommando som katalogtree, med underkataloger som listas rekursivt ( R parameter) och en fil per rad (den 1 parameter).

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

Då använder vi katt kommando, som tidigare nämnts för att se innehållet i filen i Terminal-fönstret.

cat /Users/lorikaufman/TerminalOutput/dir_tree.txt

Skriv ut utgång till skärm och omdirigera den till en fil

De > och >> operatörer visar inte utmatningen av ett kommando på skärmen. Utmatningen skickas endast till en fil.

Om du vill skicka utmatningen till en fil och se den på skärmen använder du tee kommando istället för > och >> operatörer.

Nerd alert! Idag upptäckte jag kommandot "tee" som rör både en fil och standard ut. Unix fortsätter att glädja. pic.twitter.com/aClIT8AdJB

- Zeke Sikelianos (@zeke) 29 augusti 2017

Att använda tee kommando du måste pipa utmatningen från kommandot du kör, som ls, till tee kommandot, med hjälp av röroperatören, en vertikal stång (|). Till exempel tar följande kommando utmatningen från ls kommandot och rör det in i tee kommando. De tee Kommandot skickar sedan den utgången till skärmen och till en fil du anger med hela sökvägen till filen.

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

Ovanstående kommando ersätter allt innehåll i filen eller skapar en ny om den inte existerar, precis som > operatör. Vi använde följande katt kommando för att visa innehållet i vår fil i Terminal-fönstret.

cat /Users/lorikaufman/TerminalOutput/ls_output.txt

Att använda tee kommando att skriva ut utgången till skärmen och lägga till den till slutet av en fil, skriv följande kommando. Här lägger vi till fullständig systeminformation till slutet av filen med hjälp av uname -a kommando, precis som vi gjorde med >> operatör, men skickar också utmatningen till skärmen.

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

Följande kommando är tee version av att skriva ut ett katalogtree rekursivt till en fil och till skärmen, en fil på varje rad, precis som vi gjorde med > operatör.

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

Då använder vi katt kommandot igen för att visa innehållet i filen.

cat /Users/lorikaufman/TerminalOutput/dir_tree.txt

Men vänta, det finns mer

Det finns många fler sätt att omdirigera utdata, inklusive fel, till en fil. Du kan läsa om olika operatörer och kommandon som används för att omdirigera produktionen i kapitlet I / O-omdirigering i Advanced Bash Scripting Guide. Du kan också lära dig mer om att använda kommandoraden En snabbguide för att komma igång med Linux-kommandoraden En snabbguide för att komma igång med Linux-kommandoraden Du kan göra massor av fantastiska saker med kommandon i Linux och det är verkligen inte svårt att lära dig . Läs mer .

Jag har lärt mig en bra lektion idag. Omdirigera inte loggutmatningen för en 10 miljoner iteration för slinga till en txt-fil. Resultat: 5 gb txt fil.

- Lloyd (@ lcarswell1) 21 maj 2017

Vad använder du utmatning omdirigering för? Vilken metod använder du? Har du lärt dig några andra sätt att omdirigera utmatningen? Dela dina tankar och erfarenheter med oss ​​i kommentarerna nedan.

Utforska mer om: Linux Bash Shell, Terminal.