SCRIPT(1) Comenzi utilizator SCRIPT(1) NUME script - face o transcriere a sesiunii de terminal REZUMAT script [op<?>iuni] [fi<?>ier] DESCRIERE script face o transcriere a tot ceea ce se afla in sesiunea de terminal. Datele terminalului sunt stocate in forma bruta in fi<?>ierul jurnal, iar informa<?>iile despre sincronizare(datele de timp) intr-un alt fi<?>ier jurnal structurat (op<?>ional). Fi<?>ierul jurnal de cronometrare este necesar pentru a reda sesiunea ulterior prin scriptreplay(1) <?>i pentru a stoca informa<?>ii suplimentare despre sesiune. Incepand cu versiunea 2.35, script suporta fluxuri multiple <?>i permite inregistrarea intrarilor <?>i ie<?>irilor in fi<?>iere separate sau intr-un singur fi<?>ier. Aceasta versiune accepta, de asemenea, un nou fi<?>ier de sincronizare care inregistreaza informa<?>ii suplimentare. Comanda scriptreplay --summary ofera apoi toate informa<?>iile. Daca este dat argumentul fi<?>ier sau op<?>iunea --log-out fi<?>ier, script salveaza dialogul in acest fi<?>ier. Daca nu se da un nume de fi<?>ier, dialogul este salvat in fi<?>ierul typescript. Re<?>ine<?>i ca inregistrarea datelor de intrare in jurnal utilizand --log-in sau --log-io poate inregistra informa<?>ii sensibile din punct de vedere al securita<?>ii, deoarece fi<?>ierul jurnal con<?>ine toate datele de intrare in 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 Adauga rezultatul la fi<?>ier sau la transcriere, pastrand con<?>inutul anterior. -c, --command comanda Ruleaza comanda mai degraba decat un shell interactiv. Acest lucru faciliteaza capturarea de catre un script a ie<?>irii unui program care se comporta diferit atunci cand ie<?>irea standard a acestuia nu este un terminal tty. -E, --echo cand Aceasta op<?>iune controleaza fanionul ECHO pentru capatul sclav al pseudo-terminalului sesiunii. Modurile acceptate sunt always (intotdeauna), never (niciodata) sau auto. Valoarea implicita este auto - in acest caz, ECHO este activat pentru pseudo-terminalul sclav; daca intrarea standard curenta este un terminal, ECHO este dezactivat pentru acesta pentru a preveni ,,ecoul" dublu; daca intrarea standard curenta nu este un terminal (de exemplu conducta: echo date | script), atunci men<?>inerea activarii ECHO pentru pseudo-terminalul sclav permite vizualizarea pe ecran a datelor de intrare standard <?>i inregistrarea simultana in jurnalul sesiunii. Re<?>ine<?>i ca modul ,,never" (niciodata) afecteaza con<?>inutul jurnalului de ie<?>ire al sesiunii, deoarece datele introduse de utilizatori nu se repeta la ie<?>ire. -e, --return Returneaza starea de ie<?>ire a procesului-copil. Folose<?>te acela<?>i format ca <?>i terminarea bash la primirea semnalului de terminare (adica, starea de ie<?>ire este 128 + numarul semnalului). Starea de ie<?>ire a procesului-copil este intotdeauna stocata <?>i in fi<?>ierul de transcriere (typescript). -f, --flush Cura<?>a ie<?>irea dupa fiecare scriere. Acest lucru este util pentru telecooperare: o persoana face mkfifo foo; script -f foo, iar alta poate supraveghea in timp real ce se face folosind cat foo. Re<?>ine<?>i ca ,,-flush" (cura<?>area/golirea) are un impact asupra performan<?>elor; este posibil sa se utilizeze SIGUSR1 pentru a cura<?>a/goli jurnalele la cerere. --force Permite ca fi<?>ierul de ie<?>ire implicit transcrierea (typescript) sa fie o legatura dura sau simbolica. Comanda va urma o legatura simbolica. -B, --log-io fi<?>ier Inregistreaza datele de intrare <?>i de ie<?>ire in acela<?>i fi<?>ier. Re<?>ine<?>i ca aceasta op<?>iune are sens numai daca este specificat <?>i --log-timing, altfel este imposibil sa se separe fluxurile de ie<?>ire <?>i de intrare din fi<?>ierul de jurnal. -I, --log-in fi<?>ier Inregistreaza datele de intrare in fi<?>ier. Ie<?>irea de jurnal este dezactivata daca se specifica doar --log-in. Folosi<?>i cu aten<?>ie aceasta func<?>ionalitate de inregistrare, deoarece inregistreaza toate intrarile, inclusiv intrarile in cazul in care terminalul a dezactivat fanionul ECHO (de exemplu, intrarile de parole). -O, --log-out fi<?>ier Inregistreaza ie<?>irea in fi<?>ier. Valoarea implicita este de a inregistra ie<?>irea in fi<?>ierul cu numele typescript daca nu se da op<?>iunea --log-out sau --log-in. Ie<?>irea jurnalului este dezactivata daca se specifica doar --log-in. -T, --log-timing fi<?>ier Inregistreaza informa<?>iile de sincronizare (de timp) in fi<?>ierul fi<?>ier. Acum sunt acceptate doua formate de fi<?>iere de cronometrare. Formatul clasic este utilizat atunci cand este activata inregistrarea unui singur flux (intrare sau ie<?>ire). Formatul multi-flux este utilizat la --log-io sau atunci cand --log-in <?>i --log-out sunt utilizate impreuna. A se vedea, de asemenea, --logging-format. -m, --logging-format format For<?>eaza utilizarea formatului de jurnal de cronometrare avansat sau clasic. In mod implicit, se folose<?>te formatul clasic pentru a inregistra numai ie<?>irile <?>i formatul avansat atunci cand se solicita inregistrarea atat a intrarilor, cat <?>i a ie<?>irilor. Formatul clasic Jurnalul de cronometrare con<?>ine doua campuri, separate prin cate un spa<?>iu. Primul camp indica cat timp a trecut de la ie<?>irea anterioara. Al doilea camp indica numarul de caractere care au fost emise de aceasta data. *Formatul avansat (multi-flux) Primul camp este un identificator al tipului de intrare (,,I'nput" (intrarea), ,,O'utput" (ie<?>irea), ,,H'eader" (antetul, titlul), ,,S'ignal" (semnal)). Al doilea camp reprezinta timpul care a trecut de la intrarea anterioara, iar restul campului este format din date specifice tipului de intrare. -o, --output-limit dimensiunea Limiteaza dimensiunea fi<?>ierelor de transcriere(typescript) <?>i de sincronizare la dimensiunea <?>i opre<?>te procesul-copil dupa ce aceasta dimensiune este depa<?>ita. Dimensiunea calculata a fi<?>ierului nu include mesajele de start <?>i de sfar<?>it pe care comanda script le preia <?>i le adauga la ie<?>irea procesului-copil. Din cauza utilizarii memoriei tampon, este posibil ca fi<?>ierul de ie<?>ire rezultat sa fie mai mare decat valoarea specificata. -q, --quiet Sta lini<?>tit (nu scrie mesajele de inceput <?>i sfar<?>it la ie<?>irea standard). -t[fi<?>ier], --timing[=fi<?>ier] Emite datele de sincronizare catre ie<?>irea de eroare standard sau catre fi<?>ier, daca este cazul. Aceasta op<?>iune este depa<?>ita in favoarea --log-timing, unde argumentul fi<?>ier nu este op<?>ional. -h, --help Afi<?>eaza acest mesaj de ajutor <?>i iese. -V, --version Afi<?>eaza versiunea <?>i iese. SEMNALE La primirea semnalului SIGUSR1, script gole<?>te imediat fi<?>ierele de ie<?>ire. MEDIU Urmatoarea variabila de mediu este utilizata de script: SHELL Daca variabila SHELL exista, shell-ul bifurcat de script va fi acel shell. Daca variabila SHELL nu este definita, se va folosi shell-ul Bourne. (Majoritatea shell-urilor definesc automat aceasta variabila). NOTE Scriptul se termina atunci cand shell-ul bifurcat iese (un control-D pentru shell-ul Bourne (sh(1p)), <?>i exit, logout sau control-d (daca ignoreeof nu este activat) pentru C-shell, csh(1)). Anumite comenzi interactive, cum ar fi vi(1), genereaza de<?>euri in fi<?>ierul de transcriere(typescript). script func<?>ioneaza cel mai bine cu comenzi care nu manipuleaza ecranul, rezultatele sunt menite sa emuleze o copie exacta a unui terminal. Nu se recomanda rularea de script in shell-uri non-interactive. Shell-ul interior al script este intotdeauna interactiv, ceea ce ar putea duce la rezultate nea<?>teptate. Daca utiliza<?>i script in fi<?>ierul de ini<?>ializare a shell-ului, trebuie sa evita<?>i intrarea intr-o bucla infinita. 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 sa evita<?>i utilizarea lui script in conductele de comanda, deoarece script poate citi mai multe date de intrare decat v-a<?>i a<?>tepta. ISTORIC Comanda script a aparut in 3.0BSD. ERORI script plaseaza totul in fi<?>ierul jurnal, inclusiv salturile de linie <?>i spa<?>iile inapoi.. Nu este ceea ce se a<?>teapta un utilizator naiv. script este conceput in primul rand pentru sesiuni interactive de terminal. Atunci cand intrarea standard nu este un terminal (de exemplu: echo foo | script), atunci sesiunea se poate bloca, deoarece shell-ului interactiv din cadrul sesiunii de script ii lipse<?>te EOF, iar script nu <?>tie cand sa inchida sesiunea. Pentru mai multe informa<?>ii, consulta<?>i sec<?>iunea NOTE. CONSULTA<?>I <?>I csh(1) (pentru mecanismul istoric), scriptreplay(1), scriptlive(1) RAPORTAREA ERORILOR Pentru rapoarte de eroare, folosi<?>i sistemul de urmarire al erorilor <https://github.com/util-linux/util-linux/issues>. DISPONIBILITATE Comanda script face parte din pachetul util-linux care poate fi descarcat de la Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>. util-linux 2.41 2025-03-29 SCRIPT(1)