Mam dostęp ssh do zdalnego komputera. W tej maszynie, jeśli uruchomię echo $TERM
, dostaję xterm
.
Jeśli chcę zmienić emulator terminala na inny emulator (zakładając, że jest on zainstalowany na zdalnym komputerze), jak mam to zrobić?
Mam dostęp ssh do zdalnego komputera. W tej maszynie, jeśli uruchomię echo $TERM
, dostaję xterm
.
Jeśli chcę zmienić emulator terminala na inny emulator (zakładając, że jest on zainstalowany na zdalnym komputerze), jak mam to zrobić?
Odpowiedzi:
Wartość zmiennej środowiskowej TERM jest wykorzystywana przez serwer (w systemie V lub BSD, systemy pochodne) do kontrolowania sposobu rozpoznawania danych wejściowych przez system i możliwości dostępnych danych wyjściowych. Niektóre typy terminali są na tyle podobne, że można je zamieniać, pozostając nadal użyteczne, podczas gdy inne mogą sprawić, że system będzie bezużyteczny, dopóki nie otworzysz nowego połączenia z obsługiwaną wartością dla TERM. Na przykład, z jednego systemu Linux na inny, prawdopodobnie nie zauważysz bardzo różnicy między ustawieniami vt100, vt220 i xterm. Większość różnic dotyczy sposobu wyświetlania danych wyjściowych oraz dostępności kolorów lub pogrubionych czcionek dla tego typu terminala. Baza danych termcap zawiera listę wszystkich typów terminali wraz z ich różnymi możliwościami.
Dopóki nie przełączysz się na typ terminala, z którym klawiatura i ekran nie są kompatybilne, nic ci nie będzie.
przeczytaj stronę podręcznika dla terminu i termcap w swoim systemie, aby uzyskać więcej informacji.
Aby zmienić typ terminala:
w bash:
export TERM=vt100
w powłoce Bourne'a lub ksh:
TERM=vt100
export TERM
w csh lub tcsh:
setenv TERM vt100
vt100
to całkiem bezpieczny terminal, z którym można zacząć grać. jest kompatybilny z Xterm, ale nie wyświetla kolorów ani pogrubionych czcionek i może nie rozpoznawać klawiszy F *, ale jest mało prawdopodobne, aby naprawdę coś zepsuło za pomocą vt100.
Wiele osób korzysta z wykrywania terminali w osobistych skryptach inicjujących, aby zoptymalizować wrażenia użytkownika w zależności od sposobu logowania się na serwerze. Na przykład ustaw zwykły PS1, jeśli używasz vt100, użyj kolorów i zmiennych dynamicznych, gdy używasz bash w xterm.
Powodzenia w twoich badaniach.
Nie rozumiesz.
Twoja konsola, terminal lub instancja PuTTY po stronie LOKALNEJ jest rzeczywistym „emulatorem terminala”, mimo że w dzisiejszych czasach po prostu skracamy do „terminali”. Wykorzystanie wynika z przeszłości, gdy ludzie faktycznie używali terminali monitorujących i klawiaturowych do logowania się na serwerze mainframe, zamiast korzystać z wielu konsol i graficznych środowisk użytkownika.
Zmienna $ TERM po prostu informuje zdalny system, jakie kody sterujące zrozumie twój terminal, gdy je wyśle (na przykład, aby wygenerować menu tekstowe lub cokolwiek opartego na libncurses).
Nie jestem pewien, co dokładnie chcesz osiągnąć, ale zmiana $ TERM prawdopodobnie nie pomoże.
Ubuntu 11.10
na moim komputerze lokalnym i Red Hat Enterprise Linux Server release 5.4 (Tikanga)
na komputerze zdalnym)
$TERM
zmienna. Ponadto nie zadaję tego pytania wyłącznie w celu znalezienia rozwiązania innego problemu / pytania. Jeśli już, moje inne pytanie uzasadniało to pytanie. Wreszcie, nie sądzę, że jest coś złego w nadziei, że dowiesz się więcej o tym, jak działają emulatory terminali, zadając to pytanie.
TERM
zmienną; jest to przede wszystkim konieczne, gdy logujesz się do starszego systemu, który nie zna nazwy nowszego terminala (i nie było wielu nowych typów terminali w ciągu ostatnich 15 lat, większość emulatorów terminali stylizuje się jakoxterm
).TERM
jest tym, z czym programy typu terminal uważają, że rozmawiają, nie zmienia to, czym tak naprawdę jest terminal.