Ofte, mens du jobber med Linux-terminalen, vil du kanskje lagre terminalutgangen til en kommando i en fil. Denne filen kan brukes som informasjon for en annen operasjon eller bare for å logge terminalaktivitet. Her er fire forskjellige måter terminalinnholdet kan lagres i en fil.
Følgende metoder er tilgjengelige på tvers av alle Linux-distribusjoner og kan til og med brukes på Mac og BSD. Det eneste du må tenke på er hvilken metode som er best for å få jobben gjort.
1. Bruke viderekoblingsoperatører
Den vanligste og grunnleggende måten å omdirigere utdata fra terminalen til en fil er å bruke >
og >>
operatører. De leder bare utdataene til en spesifisert tekstfil. De omdirigerer ikke feil. De vil fremdeles vises i terminalen.
De >
operatøren omdirigerer utdata til en fil og overskriver innholdet i den filen mens >>
operatøren legger utgangen til slutten av filen. Her er en illustrasjon:
Opprett først en fil ved hjelp av touch
kommando.

En linje ekko nå til “file1.txt” ved hjelp av >
operatør. Man kan tenke på det som å dumpe utdataene fra echo
kommando til “file1.txt.”
echo "first statement" > file1.txt

En annen linje gjenspeiles i “file1.txt.”
echo "second statement" > file1.txt

Når vi ser på innholdet i “file1.txt”, ser vi at bare den andre linjen er lagret i filen. Dette er fordi >
operatøren overskriver eksisterende filinnhold.

Hvis vi ønsker å “legge til” innhold i filen, vil >>
operatøren må spesifiseres.

Vi kan se resultatet av den vellykkede tilleggsoperasjonen.

Hvis du bare vil lagre feilene, bruker du 2>
og 2>>
i stedet.
Hvis du er interessert i å logge alt, bruk &>
og &>>
for å omdirigere all utdata (inkludert feil) til en fil uten å vise noe i terminalen.
2. Bruke tee-kommando
Med omdirigeringsoperatørene vist ovenfor vises ikke kommandoutgangen på skjermen. Hvis du ønsker at den skal vise utgangen på terminalen og skrive til en fil, kan du bruke tee
kommando.
<command> | tee -a <file_name>
Rørsymbolet (|) passerer utdataene fra <command>
som innspill til tee
, som igjen viser utdataene på skjermen. Hvis den -a
bryteren er spesifisert, da tee
legger utgangen til den angitte filen, ellers vil den overskrive filens innhold.

I følge kommandoen demonstrert ovenfor, skulle teksten “fjerde uttalelse” ha blitt lagt til “file1.txt.” Bekreftelse ved hjelp av cat
kommando bekrefter vårt gjetning.

Du kan også bruke |&
operatøren og tee
kommando om å vise alt og logge det også.
<command> |& tee -a <file_name>
3. Bruke skriptkommando
Med script
kommando, utdata fra kommandoer som skrives etter den, vil automatisk skrives til en fil til du blir bedt om å slutte. Dette kan sammenlignes med en økt som registrerer terminalaktivitet.
For det første script
kommandoen påkalles med navnet på filen for å lagre terminalaktivitet.
script <file_name>

En melding ber om at skriptet har startet, så skriver du kommandoer etter hverandre – her date
, pwd
, ls
og cal
.

For å avslutte skriptet, exit
kommando påberopes. Det er en melding om at “skript” -operasjonen er utført. Vise innholdet i “script_log.txt” ved hjelp av cat
, ser vi at filens innhold ser ut som en eksakt kopi av terminalen.

Mot slutten kan vi se tidsstemplet når manuset ble fullført. Når denne filen vises i en tekstredigerer, kan vi se litt tekstinnhold og søppel, som faktisk er bash-ledeteksten i et format som kan forstås av bash shell.

Bare når denne filen vises i skallet ved hjelp av cat
kommando, får vi fullt forståelig informasjon.
La oss prøve en annen, og lagre terminalutgangen i “2-script_log.txt.”

Kommandoerpwd
og ls
er skrevet.

Uten å skrive exit
, terminalvinduet er lukket. Når vi prøver å se innholdet i “2-script_log.txt”, kan vi se at det er tomt.

Når en skriptsesjon er startet, blir innholdet i den økten lagret i minnet og skrevet til filen bare når exit
kommando påberopes. Her, siden exit
ble ikke påkalt, innholdet til økten ble ikke lagret i “2-script_log.txt.”
Overskrivingen og tilføyelsen av skriptet ligner på tee
og viderekoblingsoperatørene. De -a
switch legger innholdet i en økt til en tidligere eksisterende fil. Her, produksjon av echo
kommandoen er lagt til “script_log.txt.”

La oss se utdataene fra “script_log.txt.” Vi kan se den tidligere lagrede utgangen av date
, pwd
, ls
, cal
kommandoer fulgt av tidsstempelet; etterpå, finner vi informasjonen til neste økt som ender med tidsstemplet.

4. Bruke logsave-kommandoen
logsave
oppfører seg som tee
– den viser utdataene på skjermen og lagrer den også i en fil. Den brukes som vist nedenfor:
logsave <file_name> <command>

logsave
skriver utdata fra <command>
til filen spesifisert av <file_name>
. La oss se utdataene fra “mylog_file.txt.”

Det er mye informasjon lagret sammen med resultatet av en kommando. Her lagres to tidsstempler: den første er tidspunktet da kommandoen ble startet, og den andre er tidspunktet da kommandoen fullførte kjøringen. Her er tidsstemplene de samme. Selv om en rekursiv katalogoppføring blir startet i “/ home” -katalogen på et flerbruker-system, vil kommandoen ta en stund å fullføre den. I så fall ville start- og sluttstemplene være forskjellige.
Output av flere kommandoer kan legges til den samme filen når -a
bryteren brukes med logsave
.
logsave -a <file_name> <command>

Når vi prøver å se innholdet i “mylog_file.txt”, ser vi at utdataene fra de to tidligere angitte kommandoene er avgrenset av en linje.

Ovennevnte er noen av de mer nyttige måtene å lagre en terminalutgang til en fil i Linux. Hvilken foretrekker du?
I slekt:
- Hvordan multitaske i Linux-terminalen med skjerm
- Slik installerer du en ordbok for bruk i Linux Terminal
- Hvordan bruke Linux Terminal som en kalkulator