SCRIPT(1)

NUME
script - face o transcriere a sesiunii de terminal

REZUMAT

script [options] [file]

DESCRIERE

script makes a typescript of everything on your terminal session. The terminal data are stored in raw form to the log file and information about timing to another (optional) structured log file. The timing log file is necessary to replay the session later by scriptreplay(1) and to store additional information about the session.

Începând cu versiunea 2.35, script suportă fluxuri multiple și permite înregistrarea intrărilor și ieșirilor în fișiere separate sau într-un singur fișier. Această versiune acceptă, de asemenea, un nou fișier de sincronizare care înregistrează informații suplimentare. Comanda scriptreplay --summary oferă apoi toate informațiile.

Dacă este dat argumentul fișier sau opțiunea --log-out fișier, script salvează dialogul în acest fișier. Dacă nu se dă un nume de fișier, dialogul este salvat în fișierul typescript.

Rețineți că înregistrarea datelor de intrare în jurnal utilizând --log-in sau --log-io poate înregistra informații sensibile din punct de vedere al securității, deoarece fișierul jurnal conține toate datele de intrare în sesiunea terminalului (de exemplu, parolele), indiferent de valoarea fanionului ECHO al terminalului.

OPȚIUNI

Mai jos, argumentul dimensiune poate fi urmat de sufixele multiplicative KiB (=1024), MiB (=1024*1024), și așa mai departe pentru GiB, TiB, PiB, EiB, ZiB și YiB („iB” este opțional, de exemplu, „K” are aceeași semnificație ca și „KiB”), sau sufixele KB (=1000), MB (=1000*1000) și așa mai departe pentru GB, TB, PB, EB, ZB și YB.

-a, --append
    Adaugă rezultatul la fișier sau la transcriere, păstrând conținutul anterior.

-c, --command comanda
    Rulează comanda mai degrabă decât un shell interactiv. Acest lucru facilitează capturarea de către un script a ieșirii unui program care se comportă diferit atunci când ieșirea standard a acestuia nu este un terminal tty.

-E, --echo când
    Această opțiune controlează fanionul ECHO pentru capătul sclav al pseudo-terminalului sesiunii. Modurile acceptate sunt always (întotdeauna), never (niciodată) sau auto.

    Valoarea implicită este auto - în acest caz, ECHO este activat pentru pseudo-terminalul sclav; dacă intrarea standard curentă este un terminal, ECHO este dezactivat pentru acesta pentru a preveni „ecoul” dublu; dacă intrarea standard curentă nu este un terminal (de exemplu conductă: echo date | script), atunci menținerea activării ECHO pentru pseudo-terminalul sclav permite vizualizarea pe ecran a datelor de intrare standard și înregistrarea simultană în jurnalul sesiunii.

    Rețineți că modul „never” (niciodată) afectează conținutul jurnalului de ieșire al sesiunii, deoarece datele introduse de utilizatori nu se repetă la ieșire.

-e, --return
    Returnează starea de ieșire a procesului-copil. Folosește același format ca și terminarea bash la primirea semnalului de terminare (adică, starea de ieșire este 128 + numărul semnalului). Starea de ieșire a procesului-copil este întotdeauna stocată și în fișierul de transcriere (typescript).

-f, --flush
    Curăță ieșirea după fiecare scriere. Acest lucru este util pentru telecooperare: o persoană face mkfifo foo; script -f foo, iar alta poate supraveghea în timp real ce se face folosind cat foo. Rețineți că „-flush” (curățarea/golirea) are un impact asupra performanțelor; este posibil să se utilizeze SIGUSR1 pentru a curăța/goli jurnalele la cerere.

--force
    Permite ca fișierul de ieșire implicit transcrierea (typescript) să fie o legătură dură sau simbolică. Comanda va urma o legătură simbolică.

-B, --log-io fișier
    Înregistrează datele de intrare și de ieșire în același fișier. Rețineți că această opțiune are sens numai dacă este specificat și --log-timing, altfel este imposibil să se separe fluxurile de ieșire și de intrare din fișierul de jurnal.

-I, --log-in fișier
    Înregistrează datele de intrare în fișier. Ieșirea de jurnal este dezactivată dacă se specifică doar --log-in.

    Folosiți cu atenție această funcționalitate de înregistrare, deoarece înregistrează toate intrările, inclusiv intrările în cazul în care terminalul a dezactivat fanionul ECHO (de exemplu, intrările de parole).

-O, --log-out fișier
    Înregistrează ieșirea în fișier. Valoarea implicită este de a înregistra ieșirea în fișierul cu numele typescript dacă nu se dă opțiunea --log-out sau --log-in. Ieșirea jurnalului este dezactivată dacă se specifică doar --log-in.

-T, --log-timing fișier
    Înregistrează informațiile de sincronizare (de timp) în fișierul fișier. Acum sunt acceptate două formate de fișiere de cronometrare. Formatul clasic este utilizat atunci când este activată înregistrarea unui singur flux (intrare sau ieșire). Formatul multi-flux este utilizat la --log-io sau atunci când --log-in și --log-out sunt utilizate împreună. A se vedea, de asemenea, --logging-format.

-m, --logging-format format
    Forțează utilizarea formatului de jurnal de cronometrare avansat sau clasic. În mod implicit, se folosește formatul clasic pentru a înregistra numai ieșirile și formatul avansat atunci când se solicită înregistrarea atât a intrărilor, cât și a ieșirilor.

    Formatul clasic
        Jurnalul de cronometrare conține două câmpuri, separate prin câte un spațiu. Primul câmp indică cât timp a trecut de la ieșirea anterioară. Al doilea câmp indică numărul de caractere care au fost emise de această dată.

    *Formatul avansat (multi-flux)
        Primul câmp este un identificator al tipului de intrare („I’nput” (intrarea), „O’utput” (ieșirea), „H’eader” (antetul, titlul), „S’ignal” (semnal)). Al doilea câmp reprezintă timpul care a trecut de la intrarea anterioară, iar restul câmpului este format din date specifice tipului de intrare.

-o, --output-limit dimensiunea
    Limitează dimensiunea fișierelor de transcriere(typescript) și de sincronizare la dimensiunea și oprește procesul-copil după ce această dimensiune este depășită. Dimensiunea calculată a fișierului nu include mesajele de start și de sfârșit pe care comanda script le preia și le adaugă la ieșirea procesului-copil. Din cauza utilizării memoriei tampon, este posibil ca fișierul de ieșire rezultat să fie mai mare decât valoarea specificată.

-q, --quiet
    Stă liniștit (nu scrie mesajele de început și sfârșit la ieșirea standard).

-t[fișier], --timing[=fișier]
    Emite datele de sincronizare către ieșirea de eroare standard sau către fișier, dacă este cazul. Această opțiune este depășită în favoarea --log-timing, unde argumentul fișier nu este opțional.

-h, --help
    Afișează acest mesaj de ajutor și iese.

-V, --version
    Afișează informațiile despre versiune și iese.

SEMNALE

La primirea semnalului SIGUSR1, script golește imediat fișierele de ieșire.

MEDIU

Următoarea variabilă de mediu este utilizată de script:

SHELL
    Dacă variabila SHELL există, shell-ul bifurcat de script va fi acel shell. Dacă variabila SHELL nu este definită, se va folosi shell-ul Bourne. (Majoritatea shell-urilor definesc automat această variabilă).

NOTE

Scriptul se termină atunci când shell-ul bifurcat iese (un control-D pentru shell-ul Bourne (sh(1p)), și exit, logout sau control-d (dacă ignoreeof nu este activat) pentru C-shell, csh(1)).

Anumite comenzi interactive, cum ar fi vi(1), generează deșeuri în fișierul de transcriere(typescript). script funcționează cel mai bine cu comenzi care nu manipulează ecranul, rezultatele sunt menite să emuleze o copie exactă a unui terminal.

Nu se recomandă rularea de script în shell-uri non-interactive. Shell-ul interior al script este întotdeauna interactiv, ceea ce ar putea duce la rezultate neașteptate. Dacă utilizați script în fișierul de inițializare a shell-ului, trebuie să evitați intrarea într-o buclă infinită. Puteți utiliza, de exemplu, fișierul .profile, care este citit numai de shell-urile de autentificare:

    if test -t 0 ; then
        script
        exit
    fi

De asemenea, ar trebui să evitați utilizarea lui script în conductele de comandă, deoarece script poate citi mai multe date de intrare decât v-ați aștepta.

ISTORIC

Comanda script a apărut în 3.0BSD.

ERORI

script places everything in the log file, including linefeeds and backspaces. This is not what the naive user expects.

script is primarily designed for interactive terminal sessions. When stdin is not a terminal (for example: echo foo | script), then the session can hang, because the interactive shell within the script session misses EOF and script has no clue when to close the session. See the NOTES section for more information.

CONSULTAȚI ȘI

csh(1) (for the history mechanism), scriptreplay(1), scriptlive(1)

RAPORTAREA ERORILOR

Pentru rapoarte de eroare, folosiți sistemul de urmărire al erorilor la

DISPONIBILITATE

Comanda script face parte din pachetul util-linux care poate fi descărcat de la