tset

Autres langues

Langue: pl

Autres versions - même langue

Version: 55464 (openSuse - 09/10/07)

Section: 1 (Commandes utilisateur)

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, ustawiaj±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 terminfo, u¿ytkownik jest proszony o podanie innego typu terminala.

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 terminala, 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æ


    <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, inicjalizuj±cych zmienn± ¶rodowiskow± TERM. Zobacz te¿ sekcjê ni¿ej o ustawianiu ¶rodowiska.

Argumenty dla -e, -i, -k mog± byæ wprowadzane jako normalne znaki, z u¿yciem notacji `kapeluszowej', tj. control-h mo¿e byæ podawany jako ``^H'' czy ``^h''.

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, w przeciwnym wypadku tworzone s± dla sh. Nastêpuj±ca linia w .login czy .profile powinna prawid³owo zainicjalizowaæ ¶rodowisko:


    eval `tset -s options ... `

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 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¿ 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. 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 (``!'').

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 kompatybilno¶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 komunikat 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± 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. 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 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.

¦RODOWISKO

Komenda tset u¿ywa zmiennych ¶rodowiskowych SHELL i TERM.

PLIKI

/etc/ttys
baza mapowañ nazw portów na typy terminali (tylko wersje BSD).
/usr/share/terminfo
baza w³a¶ciwo¶æi terminala

ZOBACZ TAK¯E

csh(1), sh(1), stty(1), tty(4), termcap(5), ttys(5), environ(7)