Provided by: manpages-pl_4.27.0-1_all bug

NAZWA

       tset, reset - inicjuje lub resetuje stan terminala

SKŁADNIA

       tset [-IQVcqrsw] [-] [-e znak] [-i znak] [-k znak] [-m mapowanie] [typ-terminala]
       reset [-IQVcqrsw] [-] [-e znak] [-i znak] [-k znak] [-m mapowanie] [typ-terminala]

OPIS

   tset  inicjalizacja
       Program ten inicjuje terminale.

       Na  począteku  tset  pobiera  bieżące  ustawienia  trybu  terminala  dla  terminala użytkownika. Czyni to
       sprawdzając kolejno

       •   standardowe wyjście błędów,

       •   standardowe wyjście,

       •   standardowe wejście

       •   i na końcu „/dev/tty/”

       w celu pobrania ustawień terminala. Po uzyskaniu ustawień, tset zapamiętuje,  którego  deskryptora  pliku
       należy użyć przy aktualizowaniu ustawień.

       Następnie, tset określa rodzaj używanego terminala. Robi to na podstawie poniższych danych, korzystając z
       pierwszego pasującego typu terminala:

       1. Argumentu typ-terminala, podanego w wierszu poleceń.

       2. Wartości zmiennej środowiskowej TERM.

       3.  (Tylko  systemy  BSD.)  Typu  terminala,  związanego  poprzez plik /etc/ttys z urządzeniem stderr (na
       komputerach z Systemem V i w systemach używających jego konwencji, robotę tę wykonuje  getty,  ustawiając
       TERM zgodnie z typem, przekazanym mu przez /etc/inittab).

       4. Domyślny typ terminala, „unknown”, nie jest odpowiedni dla aplikacji korzystających z curses.

       Jeśli  rodzaj  terminala  nie  był  podany  w  wierszu  poleceń, to załączane są mapowania opcji -m (zob.
       podrozdział „Mapowanie typu terminala”). Potem, jeśli typ  terminala  zaczyna  się  od  pytajnika  („?”),
       użytkownik  jest  pytany  o potwierdzenie. Pusta odpowiedź potwierdza typ, a niepusta wprowadza inny. Gdy
       terminal zostanie już określony, odczytywany jest opis terminala. Jeśli nie ma dla niego opisu terminala,
       użytkownik jest proszony o podanie innego typu terminala.

       Po pobraniu opisu terminala:

       •   jeśli włączono opcję „-w”, tset może zaktualizować rozmiar okna terminala;

           jeśli rozmiaru okna nie można uzyskać od systemu operacyjnego, lecz można z opisu terminala  (lub  ze
           środowiska  np.  określają  go  zmienne  LINES  (wiersze)  i  COLUMNS  (kolumny)), korzysta z tego do
           ustawienia wyobrażenia systemu operacyjnego o rozmiarze okna;

       •   jeśli włączono opcję „-c”, ustawiane są m.in.  znaki  kasowania  (erase),  przerwania  (interrupt)  i
           usunięcia linii (line kill);

       •   o  ile  nie  włączono opcji „-I”, wysyła na standardowe wyjście błędów łańcuchy inicjalizacji tab lub
           terminala a, jeśli urządzenie terminala nie wygląda na pseudoterminal (który może być  używany  przez
           emulator terminala) tset odczekuje jedną sekundę (na wypadek, gdyby zarządzono reset sprzętowy);

       •   Na  koniec,  jeśli  znaki  kasowania  (erase),  przerwania  (interrupt) i usunięcia linii (line kill)
           zmieniły się, lub nie są ustawione na wartości domyślne,  ich  wartości  są  wyświetlane  na  wyjście
           stderr.

   reset  ponowna inicjalizacja
       Przy wywołaniu pod postacią reset, tset ustawia tryby terminala na „rozsądne” wartości:

       •   ustawia tradycyjne tryby „cooked” i echo,

       •   wyłącza tryby cbreak i raw,

       •   włącza tłumaczenie znaków nowego wiersza

       •   i przywraca wejściowym znakom specjalnym ich wartości domyślne

       przed  dokonaniem  inicjalizacji  terminala  opisanej  wyżej.  Dodatkowo,  zamiast  korzystać z łańcuchów
       inicjalizacji terminala, używa łańcuchów resetowania terminala.

       Polecenie reset jest  przydatne  w  sytuacjach,  gdy  jakiś  program  zginie,  pozostawiając  terminal  w
       niepoprawnym stanie:

       •   może być konieczne wpisanie

               <LF>reset<LF>

           (znak <LF> — line-feed to zazwyczaj control-J) aby terminal zaczął działać, gdyż znak powrotu karetki
           może w stanie niepoprawnym nie działać.

       •   Poza tym, wpisywane znaki polecenia często mogą nie być widoczne na terminalu.

   Ustawianie środowiska
       Często  do  środowiska  powłoki  przydaje  się  wstawić typ terminala i informację o jego właściwościach.
       Dokonuje się tego przy użyciu opcji -s.

       Gdy podana jest opcja -s, komendy wymagane do wstawienia informacji do środowiska powłoki  są  zapisywane
       na  stdout.  Jeśli  zmienna  środowiskowa SHELL kończy się na „csh”, komendy są preparowane dla csh(1), w
       przeciwnym wypadku tworzone są dla sh(1). Zestaw poleceń csh ustawia, a następnie usuwa  zmienną  powłoki
       noglob,  pozostawiając  ją  nieustawioną.  Następująca  linia  w  .login  czy .profile powinna prawidłowo
       zainicjować środowisko:

           eval `tset -s opcje ... `

   Mapowanie typu terminala
       Gdy terminal nie jest ściśle przywiązany do systemu  (lub  bieżąca  informacja  systemowa  może  nie  być
       prawidłowa),  typ  terminala  wyprowadzony  z pliku /etc/ttys lub ze zmiennej środowiskowej TERM może być
       często czymś podstawowym, w rodzaju network, dialup czy  unknown.   Gdy  tset  jest  używany  w  skrypcie
       startowym, często dobrze jest udostępnić informację o typie terminala używanym na takich portach.

       Opcja  -m  mapuje  z  pewnych  warunków  na  typ  terminala,  tj. mówi tset „Jestem na tym porcie, z taką
       prędkością, więc chyba jestem na tym typie terminala”.

       Argument opcji -m składa się z opcjonalnego typu portu, opcjonalnego operatora  i  opcjonalnej  szybkości
       oraz  znaku  dwukropka  „:”  i typu terminala. Typ portu jest łańcuchem (rozdzielanym przez operator albo
       znak dwukropka).  Operator może być dowolną kombinacją „>”, „<”, „@” i „!”; „>” oznacza większy  od,  „<”
       mniejszy  od, „@” równy, a „!” odwraca sens testu.  Szybkość jest podawana jako liczba i jest porównywana
       z szybkością wyjścia standardowego błędów (które powinno być  kontrolującym  terminalem).  Typ  terminala
       jest łańcuchem.

       Jeśli  w  linii  poleceń  nie podano typu terminala, do typu stosowane są mapowania -m. Jeśli typ portu i
       szybkość odpowiadają mapowaniu, terminal podany w mapowaniu podmienia typ  obecny.  Jeśli  podanych  jest
       więcej niż jedno mapowanie, użyte zostanie pierwsze pasujące.

       Na  przykład,  rozważmy  następujące  mapowanie:  dialup>9600:vt100.  Typ portu to dialup, operator to >,
       szybkość to 9600, a typ terminala to vt100. Wynikiem mapowania jest określenie, że jeśli typ terminala to
       dialup, szybkość jest większa niż 9600 bodów, to należy używać terminala vt100.

       Jeśli nie poda się szybkości, typ terminala będzie pasował do dowolnej szybkości. Jeśli nie poda się typu
       portu, terminal będzie pasował do dowolnego portu. Na przykład, -m dialup:vt100 -m :?xterm spowoduje,  że
       dowolny port dialupowy, niezależnie od szybkości będzie odpowiadał terminalowi vt100, podczas gdy dowolny
       port  niedialupowy  będzie  traktowany  jako  ?xterm. Proszę zauważyć, że z uwagi na pytajnik, użytkownik
       będzie zapytany o domyślnym porcie czy rzeczywiście używa terminala xterm.

       W argumencie opcji -m dozwolone są znaki białych spacji. Ponadto, aby zapobiec problemom  z  metaznakami,
       całą  opcję  -m  zaleca się umieszczać wewnątrz cytatów, a użytkownikom csh umieszczanie lewych ukośników
       („\”) przed znakami wykrzykników („!”).

OPCJE

       Dostępne są następujące opcje:

       -c   Ustawia tryby i znaki sterujące.

       -e znak
            Ustawia znak kasowania (erase) na znak.

       -I   Nie wysyła na terminal łańcuchów inicjalizacji tab lub terminala.

       -i znak
            Ustawia znak przerwania (interrupt) na znak.

       -k znak
            Ustawia znak usuwania linii (line kill) na znak.

       -m mapowanie
            Podaje mapowanie z typu portu na terminal; zob. podrozdział „Mapowanie typu terminala”.

       -Q   Nie wyświetla wartości dla znaków kasowania (erase), przerwania (interrupt) i usunięcia linii  (line
            kill).  Zwykle  tset  wyświetla wartości znaków kontrolnych, które różnią się od domyślnych wartości
            systemowych.

       -q   Typ terminala jest wyświetlany na standardowe wyjście i nie jest on w żaden sposób inicjowany. Opcja
            „-” jest równoważna, lecz archaiczna.

       -r   Wypisuje typ terminala na standardowe wyjście błędów.

       -s   Wypisuje na standardowe wyjście sekwencję komend powłoki, inicjujących  zmienną  środowiskową  TERM;
            zob. podrozdział „Ustawianie środowiska”.

       -V   Zgłasza wersję ncurses, z której skorzystał program i wychodzi.

       -w   Zmienia  rozmiar okna do rozmiaru wydedukowanego za pomocą setupterm(3NCURSES).  Zwykle opcja ta nic
            nie zmienia, chyba że setupterm nie był w stanie wykryć rozmiaru okna.

       Argumenty dla -e, -i i -k mogą być wprowadzane jako normalne znaki, z użyciem notacji „kapeluszowej”, tj.
       control-h może być podawany jako „^H” czy „^h”.

       Jeśli nie poda się żadnej z opcji -c i -w, stosowane są obie.

ŚRODOWISKO

       Polecenie tset używa następujących zmiennych środowiskowych:

       SHELL
            Przekazuje tset informację, czy do zainicjowania TERM użyć składni sh(1) czy csh(1).

       TERM Wskazuje typ terminala użytkownika. Każdy typ jest odmienny, choć wiele jest podobnych.

       TERMCAP
            Może wskazywać położenie bazy danych termcap. Jeśli nie jest to ścieżka absolutna  (tj.  zaczynająca
            się od „/”), tset usunie tę zmienną ze środowiska przed rozpoczęciem szukania opisów terminali.

PLIKI

       /etc/ttys
              Baza mapowań nazw portów na typy terminali (tylko wersje BSD).

       /etc/terminfo
              Katalog ze skompilowaną bazą danych o terminalach.

PRZENOŚNOŚĆ

       Ani  IEEE Std 1003.1/The Open Group Base Specifications Issue 7 (POSIX.1-2008), ani X/Open Curses Issue 7
       nie dokumentują tset i reset.

       Narzędzie tput AT&T (AIX, HP-UX, Solaris) dołączyło: możliwość modyfikacji trybu termianala oraz  funkcje
       korzystające z termcap, takie jak resetowanie tabulatorów, z tset w BSD (4.1c), prawdopodobnie z intencją
       późniejszego  zastąpienia  tset.  Jednak  każdy  z  tych  systemów  wciąż zawiera tset. Co więcej, często
       stosowane narzędzie reset jest zawsze aliasem tset.

       Narzędzie tset zapewnia wsteczną kompatybilność ze środowiskami BSD (pod większością Uniksów /etc/inittab
       i getty(1) mogą ustawiać odpowiednio TERM dla dowolnej linii dial-up,  a  to  trywializuje  to,  co  było
       najważniejszym  zastosowaniem tset). Implementacja ta zachowuje się jak tset z 4.4BSD, lecz zawiera kilka
       wyjątków, do których teraz przejdziemy.

       Kilka opcji jest odmiennych, ponieważ zmienna TERMCAP nie jest już obsługiwana w ncurses korzystającej  z
       terminfo:

       •   Opcja -S tset z BSD już nie działa; wypisuje błąd na standardowe wyjście błędów i ginie.

       •   Opcja -s ustawia jedynie TERM, lecz nie TERMCAP.

       Istniała  nieudokumentowana  właściwość  4.4BSD, według której wywołanie tset poprzez dowiązanie o nazwie
       „TSET” (lub poprzez inną nazwę, rozpoczynającą się od dużej litery) ustawiało terminal na używanie  tylko
       dużych liter.  Właściwość ta została pominięta.

       Opcje  -A,  -E,  -h,  -u i -v skasowano z narzędzia tset w 4.4BSD. Żadne z nich nie było udokumentowane w
       4.3BSD i wszystkie miały w najlepszym wypadku ograniczoną przydatność. Opcje -a,  -d  i  -p  są  podobnie
       nieopisane  lub  nieużyteczne,  lecz  zostały utrzymane, gdyż okazuje się że są powszechnie używane. Jest
       mocno zalecane zmienienie wykorzystywania tych opcji na opcję -m.  Opcje -a, -d i -p są z  tej  przyczyny
       pominięte w opisie powyżej.

       Bardzo  stare systemy, takie jak 3BSD, korzystały z innego sterownika terminala, który zastąpiono w 4BSD,
       we wczesnych latach 1980. Do obsługi tych systemów tset z 4BSD udostępniał opcję -n wskazującą, że należy
       korzystać z nowego sterownika terminala. Niniejsza implementacja nie umożliwia takiego wyboru.

       Wciąż jest dozwolone podawanie opcji -e, -i i -k bez argumentów, choć mocno jest zalecane, by zmienić  to
       na jawne podawanie znaku.

       Od 4.4BSD, wywoływanie tset jako reset nie implikuje już opcji -Q.  Poza tym, interakcja między opcją - a
       argumentem terminal, pochodząca z historycznych implementacji tset została usunięta.

       We wcześniejszych implementacjach nie było opcji -c i -w. W 4.4BSD występowała jednak inna funkcja zmiany
       wymiarów okna.

       •   W  4.4BSD,  jeśli  tset  nie  był  w  stanie  uzyskać  rozmiaru  okna od systemu operacyjnego, w celu
           ustawienia rozmiaru okna, tset używał rozmiaru okna z opisu termcap.

       •   W ncurses, tset uzyskuje rozmiar okna za pomocą setupterm(3NCURSES), które może pochodzić  z  systemu
           operacyjnego; ze zmiennych środowiskowych LINES i COLUMNS; albo z opisu terminala.

       Uzyskiwanie rozmiaru okna z opisu typu terminala jest powszechne w obu implementacjach, lecz jest uważane
       za  przestarzałe.  Ma  praktyczne zastosowanie jedynie w terminalach sprzętowych. Rozmiar okna pozostanie
       niezainicjowany zwykle jedynie, gdy wystąpił problem w uzyskiwaniu tej wartości od  systemu  operacyjnego
       (i  wciąż  zawiedzie  setupterm). Zmienne środowiskowe LINES (wiersze) i COLUMNS (kolumny) mogą być zatem
       przydatne przy obchodzeniu problemów z rozmiarem okna, jednak mają tę wadę, że jeśli zmieni  się  rozmiar
       okna,  wartości  te  muszą  być  przeliczone  ponownie  i podane na nowo. Pomaga w tym program resize(1),
       dostarczany razem z xterm(1).

HISTORIA

       Polecenie reset napisane przez Kurta Shoensa pojawiło się w 1BSD (marzec  1978  r.).  Ustawia  ono  znaki
       erase  i kill odpowiednio na ^H (backspace) i @. Mark Horton dokonał usprawnień reset w 3BSD (październik
       1979 r.), dodając znaki intr, quit, start/stop i eof oraz zmieniając program w  ten  sposób,  aby  unikać
       modyfikacji ustawień użytkownika. Ta wersja reset nie korzystała z termcap.

       Eric Allman napisał oddzielne polecenie tset dla 1BSD, korzystając z poprzednika termcap, zwanego ttycap.
       Komentarza  Allmana  w  kodzie  źródłowym  wskazują,  że  rozpoczął nad tym pracę w październiku 1977 r.,
       kontynuując ją przez kolejne kilka lat. Pod koniec roku 1979, dokonał migracji na termcap,  pojawiła  się
       też  obsługa zmiennej TERMCAP. Kolejne komentarze wskazują, że tset został zmodyfikowany we wrześniu 1980
       r. w celu używania logiki skopiowanej z programu „reset” z 3BSD, gdy był on  wywoływany  jako  reset.  Ta
       wersja  pojawiła  się  w  4.1cBSD, pod koniec 1982 r. Inni deweloperzy, tacy jak Keith Bostic i Jim Bloom
       kontynuowali modyfikowanie tset do momentu wydania 4.4BSD w 1993 r.

       Implementacja ncurses została częściowo zaadaptowana ze źródeł  4.4BSD  do  interfejsu  programistycznego
       terminfo przez Erica S. Raymonda <esr@snark.thyrsus.com>.

ZOBACZ TAKŻE

       csh(1), sh(1), stty(1), terminfo(3NCURSES), tty(4), terminfo(5), ttys(4), environ(7)

TŁUMACZENIE

       Tłumaczenie   niniejszej   strony   podręcznika:  Przemek  Borys  <pborys@dione.ids.pl>,  Wojtek  Kotwica
       <wkotwica@post.pl> i Michał Kułach <michal.kulach@gmail.com>

       Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje  o  warunkach  licencji  można  uzyskać
       zapoznając   się   z   GNU General Public License w wersji 3   lub  nowszej.  Nie  przyjmuje  się  ŻADNEJ
       ODPOWIEDZIALNOŚCI.

       Błędy w  tłumaczeniu  strony  podręcznika  prosimy  zgłaszać  na  adres  listy  dyskusyjnej  manpages-pl-
       list@lists.sourceforge.net.

ncurses 6.5                                    18 stycznia 2025 r.                                       tset(1)