SCRIPT(1)

NAMN
script - skapa ett maskinskrivet manus av terminalsessionen

SYNOPSIS

script [options] [file] [-- command [argument...]]

BESKRIVNING

script gör ett typskript av allt som händer i din terminalsession. Terminaldata lagras i rå form i loggfilen och information om timing i en annan (valfri) strukturerad loggfil. Loggfilen med tidsangivelser behövs för att senare kunna spela upp sessionen med scriptreplay(1) och för att lagra ytterligare information om sessionen.

Sedan version 2.35 har script stöd för flera strömmar och gör det möjligt att logga in- och utdata i separata filer eller i en och samma fil. Den här versionen stöder också en ny timingfil som registrerar ytterligare information. Kommandot scriptreplay --summary ger då all information.

Om argumentet fil eller flaggan --log-out fil anges, sparar script dialogen i denna fil. Om inget filnamn anges sparas dialogen i filen typescript.

Observera att loggning av inmatning med --log-in eller --log-io kan registrera säkerhetskänslig information eftersom loggfilen innehåller all inmatning från terminalsessionen (t.ex. lösenord) oberoende av inställningen för terminalens ekoflagga.

FLAGGOR

Nedan kan storlek-argumentet följas av de multiplikativa suffixen KiB (=1024), MiB (=1024*1024), och så vidare för GiB, TiB, PiB, EiB, ZiB och YiB ("iB" är valfritt, t.ex. har "K" samma betydelse som "KiB"), eller suffixen KB (=1000), MB (=1000*1000), och så vidare för GB, TB, PB, EB, ZB och YB.

-a, --append
    Lägg till utdata till fil eller till typescript, med bibehållande av tidigare innehåll.

-c, --command kommando
    Run the command rather than an interactive shell. This makes it easy for a script to capture the output of a program that behaves differently when its stdout is not a tty. Instead of using option -c, the command may also be specified after a double dash (--).

-E, --echo när
    Denna flagga styr flaggan ECHO för slavänden av sessionens pseudoterminal. De lägen som stöds är always, never eller auto.

    Standardinställningen är auto - i det här fallet är ECHO aktiverat för pseudoterminalens slav; om den aktuella standardinmatningen är en terminal inaktiveras ECHO för att förhindra dubbeleko; om den aktuella standardinmatningen inte är en terminal (t.ex. pipe: echo date | script) gör aktiveringen av ECHO för pseudoterminalens slav att standardinmatningsdata kan visas på skärmen samtidigt som de registreras i sessionsloggen.

    Observera att läget "never" påverkar innehållet i sessionens utdatalogg, eftersom användarens inmatning inte upprepas i utdata.

-e, --return
    Returnerar utgångsstatus för underordnad process. Använder samma format som bash-terminering vid signalavslutning (dvs. exitstatus är 128 + signalnumret). Avslutningsstatusen för den underordnade processen lagras alltid även i skriptfilen av typen.

-f, --flush
    Spola utdata efter varje skrivning. Detta är bra för telekooperation: en person gör mkfifo foo; script -f foo, och en annan kan övervaka i realtid vad som görs med hjälp av cat foo. Observera att flush påverkar prestandan; det är möjligt att använda SIGUSR1 för att spola loggar på begäran.

--force
    Låt standardutdatafilen typescript vara en hård eller symbolisk länk. Kommandot kommer att följa en symbolisk länk.

-B, --log-io fil
    Logga in- och utdata till samma fil. Observera att den här flaggan endast är meningsfullt om --log-timing också anges, annars är det omöjligt att separera in- och utdataströmmar från loggfilen fil.

-I, --log-in fil
    Logga inmatning till fil. Loggutmatningen är inaktiverad om endast --log-in anges.

    Använd denna loggningsfunktion med försiktighet eftersom den loggar all inmatning, även inmatning när terminalen har inaktiverat ekoflaggan (t.ex. lösenordsinmatning).

-O, --log-out fil
    Logga utdata till fil. Standardinställningen är att logga utdata till filen med namnet typescript om flaggan --log-out eller --log-in inte anges. Loggutmatningen inaktiveras om endast --log-in anges.

-T, --log-timing fil
    Logga tidsinformation till filen. Nu finns stöd för två filformat för timing. Det klassiska formatet används när endast loggning av en ström (in- eller utmatning) är aktiverad. Multistream-formatet används vid --log-io eller när --log-in och --log-out används tillsammans. Se även --loggningsformat.

-m, --logging-format format
    Tvinga fram användning av avancerat eller klassiskt loggningsformat för timing. Standard är det klassiska formatet för att logga endast utdata och det avancerade formatet när loggning av både inmatning och utdata begärs.

    Klassiskt format
        Tidsloggen innehåller två fält som åtskiljs av ett mellanslag. Det första fältet anger hur lång tid som har gått sedan föregående utmatning. Det andra fältet anger hur många tecken som matades ut den här gången.

    Avancerat format (flera strömmar)
        Det första fältet är en identifiering av posttyp ("I’nput", "O’utput", "H’eader", "S’ignal"). Det andra fältet anger hur lång tid som förflutit sedan föregående inmatning, och resten av inmatningen är typspecifika data.

-o, --output-limit storlek
    Begränsa storleken på typskript- och tidsfilerna till storlek och stoppa barnprocessen när denna storlek överskrids. Den beräknade filstorleken inkluderar inte de start- och slutmeddelanden som kommandot script preppar och lägger till i den underordnade processens utdata. På grund av buffring kan den resulterande utdatafilen vara större än det angivna värdet.

-q, --quiet
    Var tyst (skriv inte start- och slutmeddelanden till standardutdata).

-t[fil], --timing[=fil]
    Skriv ut tidsdata till standardfelet, eller till fil om det anges. Denna flagga är inte längre aktuellt till förmån för --log-timing där argumentet fil inte är valfritt.

-h, --help
    Visa hjälptext och avsluta.

-V, --version
    Visa version och avsluta.

SIGNALER

När SIGUSR1 tas emot rensar script omedelbart utdatafilerna.

MILJÖ

Följande miljövariabel används av script:

SKAL
    Om variabeln SHELL finns, kommer det skal som script förgrenar sig till att vara detta skal. Om SHELL inte är inställd, antas Bourne-skalet. (De flesta skal ställer in denna variabel automatiskt).

ANTECKNINGAR

Skriptet avslutas när det förgrenade skalet avslutas (en control-D för Bourne-skalet (sh(1p)), och exit, logout eller control-d (om ignoreeof inte är inställt) för C-skalet, csh(1)).

Vissa interaktiva kommandon, t.ex. vi(1), skapar skräp i typescript-filen. script fungerar bäst med kommandon som inte manipulerar skärmen, resultaten är avsedda att emulera en terminal för papperskopiering.

Det är inte rekommenderat att köra script i icke-interaktiva skal. Det inre skalet i script är alltid interaktivt, och det kan leda till oväntade resultat. Om du använder script i skalets initieringsfil måste du undvika att hamna i en oändlig slinga. Du kan t.ex. använda filen .profile, som endast läses av inloggade skal:

    if test -t 0 ; då
        skript
        avsluta
    fi

Du bör också undvika att använda script i kommandorör, eftersom script kan läsa mer indata än du förväntar dig.

HISTORIK

Kommandot script dök upp i 3.0BSD.

KÄNDA PROBLEM

script placerar allt i loggfilen, inklusive radmatningar och mellanslag. Detta är inte vad den naiva användaren förväntar sig.

script är främst utformat för interaktiva terminalsessioner. När stdin inte är en terminal (t.ex. echo foo | script) kan sessionen hänga sig, eftersom det interaktiva skalet i skriptsessionen missar EOF och script inte har någon aning om när sessionen ska stängas. Se avsnittet NOTER för mer information.

SE ÄVEN

csh(1) (för history-mekanismen), scriptreplay(1), scriptlive(1)

FELRAPPORTERING

För felrapporter, använd

TILLGÄNGLIGHET

Kommandot script ingår i paketet util-linux som kan hämtas från