Provided by: manpages-pl_4.23.1-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 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 tryby cooked i echo,

       •   wyłącza tryby cbreak i raw,

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

       •   i przywraca wszelkim nieustawionym 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

       Autorami polskiego tłumaczenia niniejszej strony podręcznika  są:  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                                    27 kwietnia 2024 r.                                       tset(1)