term(1) zasady nazywania typów terminali

OPIS

Zmienna środowiskowa TERM powinna standardowo zawierać nazwę typu terminala, konsoli lub urządzenia wyświetlającego, który jest używany. Informacja ta jest niezbędna dla wszystkich programów wyświetlających wyniki na ekranie, włączając w to edytor czy program pocztowy.

Standardowa wartość zmiennej TERM będzie ustawiona poprzez inicjalizację linii poprzez plik /etc/inittab (Linux i podobne do Systemu V Uniksy) lub plik /etc/ttys (BSD UNIX). To prawie zawsze wystarczy dla stacji roboczych czy konsoli mikrokomputerów.

Jeśli używana jest linia telefoniczna, to typ urządzenia dołączonego do niej może być różny. Starsze systemy UNIX-owe ustawiają początkowo bardzo prosty typ terminala np. "dumb" lub "dialup". Nowsze mogą używać terminala `vt100', odzwierciedlając rozpowszechnienie terminali DEC-a VT100-kompatybilnych i emulatorów z komputerów osobistych.

Nowoczesne telnety przekazują zmienną środowiskową TERM z lokalnego systemu do odległego. Mogą wystąpić problemy jeżeli terminfo lub termcap na odległym systemie nie zawiera definicji terminala kompatybilnej z bieżącą, ale ta sytuacja jest rzadka i może być prawie zawsze uniknięta przez ustawienie typu terminala na `vt100' (zakładając, że rzeczywiście używana jest podobna do VT100 konsola, terminal, lub emulatora terminala).

W każdym razie, można dowolnie zmieniać zmienną TERM ustawioną przez system na dowolną wartość w profilu powłoki. Program tset(1) może być w tym pomocny; można mu podać zbiór reguł aby wydedukował lub zażądał podania typu terminala bazując na urządzeniu tty i prędkości przesyłu danych (baud rate).

Ustawienie zmiennej TERM własną wartością może być także użyteczne jeśli stworzono własną definicję terminala włączając opcje (takie jak widzialny dzwonek (czyli błyśnięcie ekranu lub podświetlenie) które mają zamienić standardowe ustawienia systemu.

Opisy typów terminali są przechowywane jako pliki zawierające dane opisujące ich możliwości w katalogu /etc/terminfo. Aby przejrzeć listę wszystkich nazw terminali rozpoznawanych przez system, proszę wykonać


  toe | more

z poziomu powłoki. Pliki te, opisujące możliwości terminali są przechowywane w formacie binarnym aby zapewnić optymalną prędkość dostępu do nich (odwrotnie niż w przypadku starego bazującego na tekście pliku termcap, który zastępują); aby sprawdzić jedną z pozycji należy użyć polecenia infocmp(1). Wywołać można go następująco:


  infocmp nazwa

gdzie nazwa jest nazwą typu terminala, który ma być sprawdzony (i zarazem nazwą pliku w podkatalogu /etc/terminfo nazwanym od pierwszej litery typu terminala). Komenda ta wyświetla plik z opisem terminala w formacie tekstowym opisanym przez terminfo(5).

Pierwsza linia terminfo(5) opisuje nazwy, pod którymi terminfo rozpoznaje terminal, nazwy przedzielone są znakami "|", a ostatnia zakończona jest przecinkiem. Pierwsza nazwa jest podstawową nazwą terminala (primary name), i powinna być używana przy ustawianiu zmiennej TERM. Ostatnia nazwa jest w rzeczywistości opisem typu terminala (może zawierać spacje; inne muszą być pojedynczymi słowami). Nazwy pomiędzy pierwszą, a ostatnią (o ile istnieją) są aliasami nazwy terminala i zazwyczaj przechowywane są tam dawne nazwy terminala dla kompatybilności.

Istnieją pewne konwencje jak dobierać podstawowe nazwy terminala, które pozwalają aby były unikalne, a zarazem niosły w sobie pewną informację. Poniżej zamieszczony jest przewodnik, który krok po kroku wyjaśnia jak nazywać a także jak je rozumieć:

Najpierw proszę wybrać główną nazwę. Powinna się ona składać z małej litery i następujących po niej do siedmiu małych liter bądź cyfr. Powinno się unikać używania znaków przestankowych w głównych nazwach, ponieważ są one używane i interpretowane jako nazwy plików i meta-znaków powłoki (np. takie jak !, $, *, ? itp.), umieszczone w nich mogą spowodować dziwne i kłopotliwe zachowanie. Ukośnik (/), czy jakikolwiek inny znak, który może zostać zinterpretowany przez czyjś system plików (\, $, [, ]), jest szczególnie niebezpieczny (terminfo jest niezależne od platformy, więc wybór nazwy zawierającej znaki specjalne może któregoś dnia spowodować pewne problemy dla przyszłych użytkowników). Znak kropki (.) jest względnie bezpieczny o ile występuje co najwyżej jedna w nazwie głównej; niektóre starsze nazwy terminfo wykorzystują ją.

Nazwa główna terminala lub typu konsoli stacji roboczej powinna prawie zawsze zaczynać się od przedrostka sprzedawcy (np. hp dla Hewlett-Packard, wy dla Wyse, czy att dla terminali AT&T), lub popularną nazwą linii terminala (vt dla terminali typu VT od DEC-a, czy sun dla konsoli stacji roboczych Suna lub regent dla modeli ADDS Regent). Można wypisać drzewo terminfo aby zobaczyć jakie przedrostki są już w powszechnym użyciu. Po nazwie głównej powinien znajdować się, jeśli to potrzebne, numer modelu; a więc vt100, hp2621, wy50.

Nazwą główną dla konsoli typu PC-Unix powinna być nazwa systemu operacyjnego np. linux, bsdos, freebsd, netbsd. Nie powinna to być nazwa typu console czy jakakolwiek inna ogólna nazwa która może spowodować zamieszanie w środowisku o wielu platformach. Jeśli później następuje numer modelu, powinien wskazywać albo numer wersji systemu operacyjnego lub numer wersji sterownika konsoli.

Nazwą główna dla emulatora terminala (zakładając że nie pasuje do któregoś ze standardu ANSI lub typu vt100) powinna być nazwa programu lub z łatwością rozpoznawalny skrót (np. versaterm, ctrm).

Po nazwie głównej, można dodać dowolną, lecz rozsądną, ilość rozdzielonych łącznikiem przyrostków określających specjalne właściwości.

2p
Ma dwie strony pamięci. Podobnie 4p, 8p, itd.
mc
Magic-cookie. Niektóre terminale (szczególnie starsze Wyse) mogą obsługiwaćjedynie jeden atrybut bez utraty magic-cookie. Ich definicja w terminfo zazwyczaj jest sparowana z inną (która posiada ten przyrostek) aby wspierać dużą ilość atrybutów.
-am
Włącza auto-margines (prawostronne zawijanie)
-m
Tryb mono - wyłączenie obsługi kolorów
-na
Bez strzałek - termcap ignoruje strzałki które w rzeczywistości są na terminalu, więc użytkownik może używać ich lokalnie.
-nam
Bez auto-marginesu - Wyłącza opcję am
-nl
Bez etykiet - wyłącza miękkie etykiety
-nsl
Bez linii statusu - likwiduje linię statusu
-pp
Ma port drukarki który jest używany
-rv
Terminal w odwróconym trybie video (czarny na białym)
-s
Używa linii statusu.
-vb
Używa widzialnego dzwonka (błysk) a nie krótkiego dźwięku.
-w
Szeroki; terminal jest w 132 kolumnowym trybie.

Standardowo, jeśli typ używanego terminala jest jednym z wariantów, który ma za zadanie określić liczbę linii, przyrostek powinien znaleźć się tam pierwszy. Dla hipotetycznego terminala FuBarCo model 2317 w 30-liniowym trybie z odwrotnym wyświetlaniem (reverse video), lepszą nazwą byłaby fubar-30-rv (niż np. "fubar-rv-30").

Typy terminali, które nie są opisane jako samodzielne sekcje, a raczej jako składniki do dołączenia do innych sekcji poprzez use, są rozróżniane poprzez użycie znaków plus (+) a nie minus (-).

Komendy, które używają typu terminala aby kontrolować wyświetlanie często akceptują opcję -T, która pozwala podać typ terminala jako argument. Takie programy powinny skorzystać ze zmiennej środowiskowej TERM kiedy opcja -T jest nie podana.

PRZENOŚNOŚĆ

Dla maksymalnej kompatybilności ze starszymi Uniksami System V, nazwy i aliasy powinny być unikalne w pierwszych 14 znakach.

PLIKI

/etc/terminfo/?/*
skompilowane pliki zawierające opisy terminali
/etc/inittab
inicjalizacja linii tty (Uniksy podobne do AT&T).
/etc/ttys
inicjalizacja linii tty (Uniksy podobne do BSD).

TŁUMACZENIE

Autorami polskiego tłumaczenia niniejszej strony podręcznika man są: Marcin Mazurek (PTM) <[email protected]> i Michał Kułach <[email protected]>.

Polskie tłumaczenie jest częścią projektu manpages-pl; uwagi, pomoc, zgłaszanie błędów na stronie http://sourceforge.net/projects/manpages-pl/. Jest zgodne z wersją 5.9+20140913 oryginału.