Hur man spelar in Linux -terminalkommandon med “script”

0
139
fatmawati achmad zaenuri

Skriptkommandot låter dig spela in och spela upp aktivitet i din terminal. Det är till hjälp när du vill skapa en referens till de steg du har tagit eller om du skapar en självstudie för andra att följa.

script matar ut ett typskript för alla kommandon du har kört. Det fungerar genom att släppa in dig i ett underskal som loggar allt du kör. Din session sparas som vanlig text när du lämnar skalet. Detta gör skriptet mer tillförlitligt än omdirigerade indataströmmar.

Basic Usage

Skriptkommandot kan köras utan några argument:

script

En ny inspelningssession startar. Din terminalsession sparas i ./typescript i din arbetskatalog. Du kan ange en annan fil genom att ge skriptet ett argument:

script example_session

Använd ditt skal för att köra kommandosekvensen du vill spela in. När du är klar trycker du på Ctrl+D eller skriver avsluta för att släppa ut underskalet. Du kommer att återgå till din huvudsakliga shell -session.

Nu kan du granska sessionsloggen som har skapats:

cat example_session Advertisement

You &#8217 ; kommer att se utdata från din scriptsession varvat med kommentarer i hakparenteser. Dessa kommentarer används av skript för att spela in detaljer om själva terminalen och händelserna som inträffar i den.

Eftersom loggfiler är ren text kan du fritt manipulera dem i din favoritredigerare. Skär helt enkelt bort alla rader som du inte vill behålla eller som andra inte ska se.

Detta är användbart om din session av misstag skickar ut potentiellt känslig information eller om du vill trimma främmande tecken från loggen. skript registrerar allt som händer i din terminal, inklusive backspace -tryckningar, nya rader och kontrolltecken, varav några kanske inte behövs i det slutliga typskriften.

script avger namnet på filen som den skriver till i början och slutet av din session. Du kan inaktivera denna utdata genom att lägga till -q -flaggan för att aktivera tyst läge.

Miljövariabeln SHELL läses av när skalet bestäms för den inre processen. När variabeln inte är inställd kommer scriptet som standard att vara sh.

Lägg till i en befintlig fil

Det är möjligt att lägga till nya kommandon i ett befintligt typsnitt. Detta låter dig “ pausa ” och “ återuppta ” inspelning genom att avsluta ditt underskal och starta en ny session.

Annons

Lägg till -a -flaggan för att lägga till dina kommandon i den angivna filen. skript kommer att skriva över filens innehåll när flaggan inte ges.

script -a example_session

Lägga till tidsdata

Den grundläggande typskriften är idealisk när du bara vill spela in dina steg för senare läsning eller delning. skript kan också spara tidsdata vid sidan av sin textlogg. Denna information kan användas för att spela om hela terminalsessionen med lämpliga förseningar mellan kommandona.

Kör skript med -t -flaggan för att ange en sökväg att skriva tidpunkter till. Tidsfiler har ett tvåkolumnformat. Varje post innehåller den förflutna tiden sedan den senaste posten i den första kolumnen. Den andra kolumnen registrerar antalet tecken som skrivits in, vilket möjliggör exakta hastigheter för skrivhastighet.

script -q -t example_session_timings example_session

Uppspelning av sessioner

Scriptreplay -kommandot läser typskript och tidsfiler som skapats av script. Det spelar upp deras utdata i din terminal. Tidsdata kommer att användas för att matcha varaktigheten för varje typat tecken med dess längd i din ursprungliga kommandosekvens.

scriptreplay -t exempel_session_timings exempel_session

Vissa typskript kan innehålla oönskade förseningar eller köras med en obehagligt långsam hastighet. Använd flaggan -d för att påskynda utmatningen. Alla inspelade tider kommer att divideras med det nummer du passerar.

# Kör 4 gånger snabbare scriptreplay -d 4 -t timings typescript

Du kan också använda -m -flaggan för att begränsa den maximala fördröjningen mellan enskilda uppdateringar. Detta låter dig ange den längsta tillåtna pausen i sekunder innan scriptreplay går till nästa kommando, även om typskriften anger en längre fördröjning.

# Maximal fördröjning på 2 sekunder scriptreplay -m 2 -t timings typescript

Användning med interaktiva kommandon

Det rekommenderas inte att använda skript med kraftigt interaktiva kommandon. Terminaltextredigerare, förbannelsebaserade applikationer och dialogfrågor kommer troligen att infoga förorenande sopor i ditt typskrift. script fokuserar på att fånga typiska textbaserade utdata, inte kommandon som manipulerar din terminal för att skapa ett grafiskt gränssnitt.

Annonsering

script är inte lämpligt för användning med icke-interaktiva skal som dess inre skalet är alltid interaktivt av natur. Kommandot ska inte heller förväntas fungera med piped input.

Andra alternativ

Med flaggan -c till skript kan du ange ett kommando. När det här läget används kör scriptet kommandot och fångar ut det, istället för att gaffla ett nytt interaktivt skal. Detta kan vara mer effektivt för att fånga utdata från vissa processer som beter sig annorlunda när de inte är direkt anslutna till en TTY.

Flaggan -f instruerar manuset att skriva direkt till sessionsloggen efter varje händelse. Detta förbättrar säkerheten genom att se till att produktionen fångas direkt.

Skriptmanualsidan föreslår att denna flagga också kan användas för att övervaka en användares terminal i realtid, till exempel i ett lärar- och elevscenario. Eleven körde script -f, sedan använde läraren SSH för att ansluta och strömma typskriftsfilen live.

script accepterar vanligtvis inte en symbolisk länk som en typskriftsväg. Flaggan –force möjliggör detta beteende och instruerar manuset att lösa hårda och mjuka länkar till deras destination.

Sammanfattning

-skriptet låter dig spela in dina terminalsessioner till vanliga textfiler med noggrann tidsdata. Du kan inspektera, dela och skriva ut typskripten manuellt eller spela om dem i din terminal med hjälp av scriptreplay.

Annonsering

Kommandona ingår i de mest populära Linux -distributionerna. De fungerar med alla terminaltyper men enskilda typskript kanske inte spelar om ordentligt i en terminal som skiljer sig från den som används för inspelning. För bästa resultat, kör scriptreplay i samma terminaltyp som du använde med script.