SCRIPT(1) Polecenia uzytkownika SCRIPT(1) NAZWA script - tworzy maszynopis sesji SKLADNIA script [options] [file] [-- command [argument...]] OPIS script tworzy maszynopis wszystkiego, co zostalo wypisane w danej sesji terminala. Dane terminala sa zachowywane w surowej postaci w pliku dziennika, a informacje zwiazane z czasem sa zapisywane do innego (opcjonalnego) ustrukturyzowanego pliku dziennika synchronizacji. Plik dziennika synchronizacji jest wymagany, aby pozniej odtworzyc sesje za pomoca programu scriptreplay(1) i do zachowania dodatkowych informacji o sesji. Od wersji 2.35, script obsluguje wiele strumieni i pozwala na zapisywanie wejscia i wyjscia do oddzielnych plikow lub do wspolnego pliku. Wersja ta obsluguje rowniez nowy plik synchronizacji, ktory zapisuje dodatkowe informacje. Polecenie scriptreplay --summary udostepni wowczas pelne informacje. Jezeli poda sie argument plik lub opcje --log-out, script zapisuje caly dialog w pliku. Jezeli nie poda sie nazwy pliku, maszynopis jest zapisywany w pliku typescript. Prosze zauwazyc, ze zapisanie wejscia za pomoca --log-in lub --log-io moze zachowac wrazliwe informacje zwiazane z zabezpieczeniami, poniewaz plik dziennika zawiera pelne wejscie sesji terminala (np. hasla), niezaleznie od ustawienia ukrywania wyswietlania znakow na terminalu. OPCJE Ponizej, po argumencie rozmiar moga wystapic przyrostki oznaczajace wielokrotnosc KiB (=1024), MiB (=1024*1024) itd. dla GiB, TiB, PiB, EiB, ZiB i YiB (czastka "iB" jest opcjonalna, np. "K" ma to samo znaczenie co "KiB") albo przyrostki KB (=1000), MB (=1000*1000) itd. dla GB, TB, PB, EB, ZB i YB. -a, --append Dolacza wyjscie do podanego pliku albo pliku typescript, zachowujac uprzednia zawartosc. -c, --command polecenie 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 kiedy Opcja steruje flaga ECHO dla koncowki podrzednej pseudoterminala sesji. Obslugiwanymi trybami sa: always, never lub auto. Domyslne jest auto -- w takim przypadku ECHO dla podrzednego pseudoterminala jest wlaczone; jesli biezacym standardowym wejsciem jest terminal, ECHO jest wylaczone, aby uniknac podwojnego odbijania; jesli biezacym standardowym wejsciem nie jest terminal (lecz np. potok: echo date | script) to utrzymanie wlaczonego ECHO dla podrzednego pseudoterminala umozliwia ogladanie danych wejsciowych na ekranie, przy jednoczesnym ich zapisywaniu do dziennika sesji. Prosze zauwazyc, ze tryb "never" wplywa na zawartosc dziennika wyjsciowego sesji, poniewaz wejscie wprowadzone przez uzytkownikow nie jest odbijane na wyjsciu. -e, --return Zwraca status zakonczenia procesu potomnego. Uzywa tego samego formatu jak kod zakonczenia basha przy przerwaniu sygnalem (tj. status zakonczenia wynosi 128 + numer sygnalu). Status zakonczenia procesu potomnego jest rowniez zawsze zachowywany w pliku maszynopisu. -f, --flush Oproznia wyjscie po kazdym zapisie. Jest to uzyteczne w przypadku wspolpracy kilku osob: pierwsza wykonuje mkfifo foo; script -f foo, a druga w czasie rzeczywistym nadzoruje jej poczynania, uzywajac cat foo. Prosze zauwazyc, ze oproznianie moze miec wplyw na wydajnosc; mozna skorzystac z sygnalu SIGUSR1, aby oprozniac dzienniki na zadanie. --force Zezwala, aby domyslny plik wyjsciowy typescript byl dowiazaniem zwyklym (twardym) lub symbolicznym. Polecenie podazy za dowiazaniem symbolicznym. -B, --log-io plik Zapisuje wejscie i wyjscie do tego samego pliku. Prosze zauwazyc, ze opcja ta ma sens tylko w polaczeniu z --log-timing, w innym przypadku nie da sie oddzielic strumienia wejsciowego i wyjsciowego w dzienniku plik. -I, --log-in plik Zapisuje wejscie do pliku. Zapisywanie wyjscia bedzie wylaczone, jesli podano tylko opcje --log-in. Nalezy korzystac z tej opcji z duza doza ostroznosci, poniewaz zapisuje pelne wejscie, wlacznie z wejsciem, ktore nie jest odbijane na terminalu (np. wprowadzane hasla). -O, --log-out plik Zapisuje wyjscie do pliku. Domyslnie, jesli nie podano opcji --log-out lub --log-in, wyjscie jest zapisywane do pliku o nazwie typescript. Zapisywanie wyjscia bedzie wylaczone, jesli podano tylko opcje --log-in. -T, --log-timing plik Zapisuje dziennik synchronizacji do pliku. Obecnie, obslugiwane sa dwa formaty pliku synchronizacji. Format klasyczny uzywany jest, gdy wlaczone jest zapisywanie tylko jednego strumienia (wejscia lub wyjscia). Format wielostrumieniowy uzywany jest, gdy podano opcje --log-io albo podano opcje --log-in i --log-out jednoczesnie. Zob. tez --logging-format. -m, --logging-format format Wymusza uzycie formatu advanced (zaawansowanego) lub classic (klasycznego) dziennika synchronizacji. Domyslny jest format klasyczny, gdy zapisywane jest tylko wyjscie i format zaawansowany, gdy zazadano zapisywania wejscia i wyjscia. Format klasyczny Dziennik synchronizacji zawiera dwa pola, rozdzielone spacja. Pierwsze pole zawiera informacje, jak duzo czasu uplynelo od poprzedniego wyjscia. Drugie pole okresla, ile znakow zostalo wypisanych tym razem. Format zaawansowany (wielostrumieniowy) Pierwsze pole zawiera identyfikator typu wpisu ('I'nput (wejscie), 'O'utput (wyjscie), 'H'eader (naglowek), 'S'ygnal). Drugie pole zawiera informacje, jak duzo czasu uplynelo od poprzedniego wpisu, a reszta wpisu zawiera dane zalezne od typu wpisu. -o, --output-limit rozmiar Ogranicza rozmiar pliku maszynopisu i synchronizacji do rozmiaru i zatrzymuje proces potomny, po przekroczeniu tej wartosci. Obliczony rozmiar pliku nie obejmuje poczatkowego i koncowego komunikatu, dolaczanego przez polecenie script przed i za wyjsciem procesu potomnego. Ze wzgledu na buforowanie, wynikowy plik wyjsciowy moze byc wiekszy niz podana wartosc. -q, --quiet Tryb cichy (bez wypisywania komunikatu poczatkowego i koncowego na standardowe wyjscie). -t[plik], --timing[=plik] Wypisuje dane synchronizacji na standardowe wyjscie bledow lub do pliku, jesli go podano. Opcja przestarzala na rzecz --log-timing, gdzie argument plik nie jest opcjonalny. -h, --help Wyswietla ten tekst i wychodzi. -V, --version Wyswietla wersje i wychodzi. SYGNALY Po otrzymaniu SIGUSR1, script natychmiast oproznia pliki wyjsciowe. SRODOWISKO Nastepujaca zmienna srodowiskowa jest wykorzystywana przez script: SHELL Jezeli zmienna SHELL istnieje, powloka rozwidlona przez script bedzie ta powloka. Jezeli SHELL nie jest ustawiona, wowczas przybierana jest powloka Bourne (wiekszosc powlok ustawia te zmienna automatycznie). UWAGI Skrypt konczy sie, gdy wyjdzie sie z rozwidlonej powloki. W powloce Bourne'a (sh(1p)) za pomoca control-D, albo w przypadku powloki C csh(1) korzystajac z exit, logout lub control-d (jezeli ignoreeof nie jest ustawiona). Pewne interakcyjne komendy, takie jak vi(1), tworza smieci w pliku maszynopisu. script dziala najlepiej z komendami, ktore nie manipuluja ekranem, rezultaty maja nasladowac wydruk terminala. Nie zaleca sie uruchamiac script w powlokach nieinteraktywnych. Wewnetrzna powloka script jest zawsze interaktywna, co moze dac niespodziewane wyniki. Jesli korzysta sie z programu script w swoim pliku inicjalizacji powloki, konieczne jest unikanie wejscia w nieskonczona petle. Mozna to zrobic np. w pliku .profile, ktory jest odczytywany tylko przez powloke zgloszeniowa (logowania): if test -t 0 ; then script exit fi Prosze unikac rowniez korzystania z script w potokach, poniewaz script moze odczytac wiecej wejscia, niz sie tego mozna bylo spodziewac. HISTORIA Polecenie script pojawilo sie w 3.0BSD. USTERKI script umieszcza w pliku dziennika wszystko, wliczajac znaki wysuwu wiersza i znaki cofania sie (backspace). Nie jest to cos, czego moglby sie spodziewac niedoswiadczony uzytkownik. script zaprojektowano glownie do interaktywnych sesji terminala. Gdy standardowe wejscie nie jest terminalem (przyklad: echo foo | script), to sesja moze sie zawiesic, poniewaz powloka interaktywna wewnatrz sesji script nie otrzyma EOF (znaku konca pliku) i script nie bedzie mial pojecia, kiedy nalezy ja zamknac. Wiecej informacji w rozdziale UWAGI. ZOBACZ TAKZE csh(1) (mechanizm history), scriptreplay(1), scriptlive(1) ZGLASZANIE BLEDOW Problemy nalezy zglaszac w systemie sledzenia bledow . DOSTEPNOSC Polecenie script jest czescia pakietu util-linux, ktory mozna pobrac ze strony Archiwum jadra Linux . util-linux 2.42.2 2026-06-16 SCRIPT(1)