tset(1)                                                   tset(1)


NAZWA
       tset - inicjalizacja terminala

SKŁADNIA
       tset  [-IQqrs]  [-] [-e ch] [-i ch] [-k ch] [-m mapowanie]
       [terminal]
       reset [-IQqrs] [-] [-e ch] [-i ch] [-k ch] [-m  mapowanie]
       [terminal]

OPIS
       Tset  inicjalizuje  terminale.   Program  najpierw określa
       rodzaj  terminala,  z  którego  korzystasz.  Robi   to   w
       następujący  sposób,  szukając  pierwszego pasującego typu
       terminala:

       1. Poprzez argument terminal, podany w linii poleceń.

       2. Poprzez wartość zmiennej środowiskowej TERM.

       3. (Tylko systemy BSD.) Typ  terminala,  związany  poprzez
       plik /etc/ttys z urządzeniem stderr. (Pod Linuksem i UNIX-
       ami w rodzaju System V, robotę tą wykonuje  getty,  ustaw­
       iając   TERM   zgodnie   z  typem,  przekazanym  mu  przez
       /etc/inittab.)

       4.   Poprzez   wybranie   domyślnego    typu    terminala,
       ``unknown''.

       Jeśli  rodzaj terminala nie był podany w linii poleceń, to
       załączane są  mapowania  opcji  -m  (zobacz  niżej  opis).
       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  z terminfo. Jeśli nie ma dla niego opisu w ter­
       minfo, użytkownik jest proszony o podanie innego typu ter­
       minala.

       Gdy  opis  terminfo  zostanie  już  pobrany,  ustawiane są
       rozmiar okna, znaki backspace,  przerwania  (interrupt)  i
       zabicia  liniii  i  wysyłane są na wyjście stderr łańcuchy
       inicjalizacji tab i  terminala.  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.

       Po wywołaniu jako reset, tset ustawia tryby cooked i echo,
       wyłącza tryby cbreak i raw, włącza tłumaczenie nowej linii
       i  resetuje  wszystkie  nieustawione  znaki  specjalne  na
       wartości domyślne. Następnie zachodzi inicjalizacja termi­
       nala, opisana  wyżej.  Jest  to  przydatne  jeśli  program
       umrze,   pozostawiając  terminal  w  nienormalnym  stanie.
       Zauważ, że możliwe, że będzie trzeba wpisać



                                                                1





tset(1)                                                   tset(1)


           <LF>reset<LF>

       (znak  line-feed  to  zazwyczaj  control-J)  aby  terminal
       zaczął  działać,  gdyż  CR  może w stanie nienormalnym nie
       działać. Poza tym, terminal często nie będzie odbijał echa
       komendy.

       Opcje są następujące:

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

       -e   Ustaw znak kasowania (erase) na ch.

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

       -i   Ustaw znak przerwania (interrupt) na ch.

       -k   Ustaw znak usuwania linii (line kill) na ch.

       -m   Podaj mapowanie  z  typu  portu  na  terminal.  Patrz
            niżej.

       -Q   Nie  wyświetlaj  żadnych  wartości  dla znaków erase,
            interrupt i line kill.

       -r   Drukuj na stderr typ terminala.

       -s   Drukuj na stdout sekwencję komend powłokowych,  inic­
            jalizujących  zmienną  środowiskową TERM.  Zobacz też
            sekcję niżej o ustawianiu środowiska.

       Argumenty dla -e, -i, -k mogą być  wprowadzane  jako  nor­
       malne  znaki,  z  użyciem notacji `kapeluszowej', tj. con­
       trol-h może być podawany jako ``^H'' czy ``^h''.

USTAWIANIE ŚRODOWISKA
       Często do środowiska powłoki przydaje się wstawić typ ter­
       minala  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, w przeciwnym wypadku twor­
       zone są dla sh. Następująca linia w  .login  czy  .profile
       powinna prawidłowo zainicjalizować środowisko:

           eval `tset -s options ... `






                                                                2





tset(1)                                                   tset(1)


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.

       Celem opcji -m jest mapowanie z pewnych  warunków  na  typ
       terminala,  tj.   mówienie  tset ``Jestem na tym porcie, z
       taką prędkością, więc chyba jestem  na  tym  typie  termi­
       nala''.

       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).  Opera­
       tor  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  stan­
       dardowego  błędów  (które powinno być kontrolującym termi­
       nalem). 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  pod­
       mienia  typ  obecny.  Jeśli podanych jest więcej niż jedno
       mapowanie, użyte zostanie pierwsze pasujące.

       Na     przykład,     rozważ     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, ter­
       minal  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ł ter­
       minalowi vt100,  podczas  gdy  dowolny  port  niedialupowy
       będzie  traktowany  jako  ?xterm.   Zauważ,  ż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 (``!'').



                                                                3





tset(1)                                                   tset(1)


HISTORIA
       Komenda tset pojawiła się w BSD 3.0. Implementacja ncurses
       została  częściowo  zaadaptowana  ze  źródeł   4.4BSD   do
       środowiska    terminfo    przez    Erica    S.    Raymonda
       <esr@snark.thyrsus.com>.

KOMPATYBILNOŚĆ
       Narzędzie tset zostało udostępnione do wstecznej  kompaty­
       bilności  ze  środowiskami  BSD  (pod  większością UNIX-ów
       /etc/inittab i getty(1) mogą ustawiać odpowiednio TERM dla
       dowolnej  linii  dial-up,  a  to  trywializuje to, co było
       najważniejszym  zastosowanem   tset).   Implementacja   ta
       zachowuje  się  jak  tset  z  4.4BSD,  lecz  zawiera kilka
       wyjątków.

       Opcja -S z BSD tset nie działa; drukuje  na  stderr  komu­
       nikat o błędzie i umiera. Opcja -s ustawia tylko TERM, nie
       TERMCAP. Obydwie te zmiany są spowodowane tym, że  zmienna
       TERMCAP  nie  jest  już  obsługiwana w opartych o terminfo
       ncurses, co powoduje że tset -S jest bezużyteczny.

       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ą  przy­
       datność.  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.    Opcja   -n
       pozostaje,  lecz  nie  ma żadnego efektu. Opcje -adnp są z
       tej przyczyny pominięte w opisie powyżej.

       Wciąż jest dozwolone podawanie opcji -e, -i i -k bez argu­
       mentó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 argu­
       mentem terminal, pochodząca z historycznych  implementacji
       tset została usunięta.

ŚRODOWISKO
       Komenda  tset używa zmiennych środowiskowych SHELL i TERM.

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




                                                                4





tset(1)                                                   tset(1)


       /usr/share/terminfo
            baza właściwośći terminala

ZOBACZ TAKŻE
       csh(1), sh(1), stty(1), tty(4), termcap(5), ttys(5), envi­
       ron(7)



















































                                                                5