Provided by: util-linux-locales_2.41-4ubuntu4_all 

NAZWA
script - tworzy maszynopis sesji
SKŁADNIA
script [opcje] [plik]
OPIS
script tworzy maszynopis wszystkiego, co zostało wypisane w danej sesji terminala. Dane terminala są
zachowywane w surowej postaci w pliku dziennika, a informacje związane z czasem są zapisywane do innego
(opcjonalnego) ustrukturyzowanego pliku dziennika synchronizacji. Plik dziennika synchronizacji jest
wymagany, aby później odtworzyć sesję za pomocą programu scriptreplay(1) i do zachowania dodatkowych
informacji o sesji.
Od wersji 2.35, script obsługuje wiele strumieni i pozwala na zapisywanie wejścia i wyjścia do
oddzielnych plików lub do wspólnego pliku. Wersja ta obsługuje również nowy plik synchronizacji, który
zapisuje dodatkowe informacje. Polecenie scriptreplay --summary udostępni wówczas pełne informacje.
Jeżeli poda się argument plik lub opcję --log-out, script zapisuje cały dialog w pliku. Jeżeli nie poda
się nazwy pliku, maszynopis jest zapisywany w pliku typescript.
Proszę zauważyć, że zapisanie wejścia za pomocą --log-in lub --log-io może zachować wrażliwe informacje
związane z zabezpieczeniami, ponieważ plik dziennika zawiera pełne wejście sesji terminala (np. hasła),
niezależnie od ustawienia ukrywania wyświetlania znaków na terminalu.
OPCJE
Poniżej, po argumencie rozmiar mogą wystąpić przyrostki oznaczające wielokrotność KiB (=1024), MiB
(=1024*1024) itd. dla GiB, TiB, PiB, EiB, ZiB i YiB (cząstka "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
Dołącza wyjście do podanego pliku albo pliku typescript, zachowując uprzednią zawartość.
-c, --command polecenie
Uruchamia polecenie zamiast powłoki interaktywnej. Dzięki temu można łatwiej przechwycić wyjście
programu zachowującego się inaczej, gdy jego standardowym wyjściem nie jest terminal.
-E, --echo kiedy
Opcja steruje flagą ECHO dla końcówki podrzędnej pseudoterminala sesji. Obsługiwanymi trybami są:
always, never lub auto.
Domyślne jest auto — w takim przypadku ECHO dla podrzędnego pseudoterminala jest włączone; jeśli
bieżącym standardowym wejściem jest terminal, ECHO jest wyłączone, aby uniknąć podwójnego odbijania;
jeśli bieżącym standardowym wejściem nie jest terminal (lecz np. potok: echo date | script) to
utrzymanie włączonego ECHO dla podrzędnego pseudoterminala umożliwia oglądanie danych wejściowych na
ekranie, przy jednoczesnym ich zapisywaniu do dziennika sesji.
Proszę zauważyć, że tryb "never" wpływa na zawartość dziennika wyjściowego sesji, ponieważ wejście
wprowadzone przez użytkowników nie jest odbijane na wyjściu.
-e, --return
Zwraca status zakończenia procesu potomnego. Używa tego samego formatu jak kod zakończenia basha przy
przerwaniu sygnałem (tj. status zakończenia wynosi 128 + numer sygnału). Status zakończenia procesu
potomnego jest również zawsze zachowywany w pliku maszynopisu.
-f, --flush
Opróżnia wyjście po każdym zapisie. Jest to użyteczne w przypadku współpracy kilku osób: pierwsza
wykonuje mkfifo foo; script -f foo, a druga w czasie rzeczywistym nadzoruje jej poczynania, używając
cat foo. Proszę zauważyć, że opróżnianie może mieć wpływ na wydajność; można skorzystać z sygnału
SIGUSR1, aby opróżniać dzienniki na żądanie.
--force
Zezwala, aby domyślny plik wyjściowy typescript był dowiązaniem zwykłym (twardym) lub symbolicznym.
Polecenie podąży za dowiązaniem symbolicznym.
-B, --log-io plik
Zapisuje wejście i wyjście do tego samego pliku. Proszę zauważyć, że opcja ta ma sens tylko w
połączeniu z --log-timing, w innym przypadku nie da się oddzielić strumienia wejściowego i
wyjściowego w dzienniku plik.
-I, --log-in plik
Zapisuje wejście do pliku. Zapisywanie wyjścia będzie wyłączone, jeśli podano tylko opcję --log-in.
Należy korzystać z tej opcji z dużą dozą ostrożności, ponieważ zapisuje pełne wejście, włącznie z
wejściem, które nie jest odbijane na terminalu (np. wprowadzane hasła).
-O, --log-out plik
Zapisuje wyjście do pliku. Domyślnie, jeśli nie podano opcji --log-out lub --log-in, wyjście jest
zapisywane do pliku o nazwie typescript. Zapisywanie wyjścia będzie wyłączone, jeśli podano tylko
opcję --log-in.
-T, --log-timing plik
Zapisuje dziennik synchronizacji do pliku. Obecnie, obsługiwane są dwa formaty pliku synchronizacji.
Format klasyczny używany jest, gdy włączone jest zapisywanie tylko jednego strumienia (wejścia lub
wyjścia). Format wielostrumieniowy używany jest, gdy podano opcję --log-io albo podano opcje --log-in
i --log-out jednocześnie. Zob. też --logging-format.
-m, --logging-format format
Wymusza użycie formatu advanced (zaawansowanego) lub classic (klasycznego) dziennika synchronizacji.
Domyślny jest format klasyczny, gdy zapisywane jest tylko wyjście i format zaawansowany, gdy zażądano
zapisywania wejścia i wyjścia.
Format klasyczny
Dziennik synchronizacji zawiera dwa pola, rozdzielone spacją. Pierwsze pole zawiera informację,
jak dużo czasu upłynęło od poprzedniego wyjścia. Drugie pole określa, ile znaków zostało
wypisanych tym razem.
Format zaawansowany (wielostrumieniowy)
Pierwsze pole zawiera identyfikator typu wpisu ('I’nput (wejście), 'O’utput (wyjście), 'H’eader
(nagłówek), 'S’ygnał). Drugie pole zawiera informację, jak dużo czasu upłynęło od poprzedniego
wpisu, a reszta wpisu zawiera dane zależne od typu wpisu.
-o, --output-limit rozmiar
Ogranicza rozmiar pliku maszynopisu i synchronizacji do rozmiaru i zatrzymuje proces potomny, po
przekroczeniu tej wartości. Obliczony rozmiar pliku nie obejmuje początkowego i końcowego komunikatu,
dołączanego przez polecenie script przed i za wyjściem procesu potomnego. Ze względu na buforowanie,
wynikowy plik wyjściowy może być większy niż podana wartość.
-q, --quiet
Tryb cichy (bez wypisywania komunikatu początkowego i końcowego na standardowe wyjście).
-t[plik], --timing[=plik]
Wypisuje dane synchronizacji na standardowe wyjście błędów lub do pliku, jeśli go podano. Opcja
przestarzała na rzecz --log-timing, gdzie argument plik nie jest opcjonalny.
-h, --help
Wyświetla ten tekst i wychodzi.
-V, --version
Wyświetla wersję i wychodzi.
SYGNAŁY
Po otrzymaniu SIGUSR1, script natychmiast opróżnia pliki wyjściowe.
ŚRODOWISKO
Następująca zmienna środowiskowa jest wykorzystywana przez script:
SHELL
Jeżeli zmienna SHELL istnieje, powłoka rozwidlona przez script będzie tą powłoką. Jeżeli SHELL nie
jest ustawiona, wówczas przybierana jest powłoka Bourne (większość powłok ustawia tę zmienną
automatycznie).
UWAGI
Skrypt kończy się, gdy wyjdzie się z rozwidlonej powłoki. W powłoce Bourne’a (sh(1p)) za pomocą
control-D, albo w przypadku powłoki C csh(1) korzystając z exit, logout lub control-d (jeżeli ignoreeof
nie jest ustawiona).
Pewne interakcyjne komendy, takie jak vi(1), tworzą śmieci w pliku maszynopisu. script działa najlepiej z
komendami, które nie manipulują ekranem, rezultaty mają naśladować wydruk terminala.
Nie zaleca się uruchamiać script w powłokach nieinteraktywnych. Wewnętrzna powłoka script jest zawsze
interaktywna, co może dać niespodziewane wyniki. Jeśli korzysta się z programu script w swoim pliku
inicjalizacji powłoki, konieczne jest unikanie wejścia w nieskończoną pętlę. Można to zrobić np. w pliku
.profile, który jest odczytywany tylko przez powłokę zgłoszeniową (logowania):
if test -t 0 ; then
script
exit
fi
Proszę unikać również korzystania z script w potokach, ponieważ script może odczytać więcej wejścia, niż
się tego można było spodziewać.
HISTORIA
Polecenie script pojawiło się w 3.0BSD.
USTERKI
script umieszcza w pliku dziennika wszystko, wliczając znaki wysuwu wiersza i znaki cofania się
(backspace). Nie jest to coś, czego mógłby się spodziewać niedoświadczony użytkownik.
script zaprojektowano głównie do interaktywnych sesji terminala. Gdy standardowe wejście nie jest
terminalem (przykład: echo foo | script), to sesja może się zawiesić, ponieważ powłoka interaktywna
wewnątrz sesji script nie otrzyma EOF (znaku końca pliku) i script nie będzie miał pojęcia, kiedy należy
ją zamknąć. Więcej informacji w rozdziale UWAGI.
ZOBACZ TAKŻE
csh(1) (mechanizm history), scriptreplay(1), scriptlive(1)
ZGŁASZANIE BŁĘDÓW
Problemy należy zgłaszać w systemie śledzenia błędów <https://github.com/util-linux/util-linux/issues>.
DOSTĘPNOŚĆ
Polecenie script jest częścią pakietu util-linux, który można pobrać ze strony Archiwum jądra Linux
<https://www.kernel.org/pub/linux/utils/util-linux/>.
util-linux 2.41 2025-09-06 SCRIPT(1)