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.
Obs! 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 klämma så mycket in i grafiskt användargränssnitt innan det blir rörigt, så det borde bli så stort ö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.
Symbolen > skapar en ny fil om den inte finns, eller skriver över filen om den redan finns. >> 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
Om du vill omdirigera utmatningen från ett kommando till en fil skriver du kommandot, anger operatören > eller >> och anger sedan sökvägen till en fil som du vill vidarebefordra produktionen till. Kommandot ls listar till exempel filerna och mapparna i den aktuella katalogen. När du kör följande kommando skrivs listan över filer och mappar till filen ls_output.txt i mappen TerminalOutput .
Byt / sökväg / till / fil med hela sökvägen till filen du vill använda.
ls>/path/to/file
Detta är kommandot för vårt exempel.
ls>/Users/lorikaufman/TerminalOutput/ls_output.txt
För att visa innehållet i filen i Terminal-fönstret, använd kommandot katt som visas i följande kommando. Återför, ersätt / sökväg / till / fil med hela sökvägen till filen du vill visa.
cat /path/to/file
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ören 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 den följande raden, är uname -a kommandot följt av >> omriktningsoperatören. Sedan är hela sökvägen till filen som vi vill lägga till kommandot från uname- kommandot.
-en parameter i kommandot uname 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 av kommandot ls som katalogtree, med underkataloger som är listade rekursivt ( R- parametern) och en fil per rad (den 1 parametern).
ls -1R>/Users/lorikaufman/TerminalOutput/dir_tree.txt
Sedan använder vi kommandot katt, 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
Operatörerna > och >> 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änd kommandot tee istället för > och >> operatörerna.
Nerd alert! Idag upptäckte jag kommandot `tee` som rör till både en fil och standard ut. Unix fortsätter att glädja. pic.twitter.com/aClIT8AdJB
- Zeke Sikelianos (@zeke) 29 augusti 2017
För att använda tee- kommandot måste du leda utmatningen från kommandot du kör, till exempel, till tee- kommandot, med hjälp av pipoperatören, en vertikal bar ( | ). Till exempel tar följande kommando utmatningen från kommandot ls och rör det i tee- kommandot. Tee- kommandot skickar sedan den utmatningen 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ören. Vi använde följande kattkommando för att se innehållet i vår fil i Terminal-fönstret.
cat /Users/lorikaufman/TerminalOutput/ls_output.txt
Om du vill använda tee- kommandot för att skriva ut utgången till skärmen och lägga till den i slutet av en fil anger du följande kommando. Här lägger vi till fullständig systeminformation till slutet av filen med kommandot uname -a, precis som vi gjorde med >> -operatören, men skickar också utmatningen till skärmen.
uname -a | tee -a /Users/lorikaufman/TerminalOutput/ls_output.txt
Följande kommando är tee- versionen 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ören.
ls -1R | tee /Users/lorikaufman/TerminalOutput/dir_tree.txt
Sedan använder vi kattkommandot igen för att se 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.