Cambiar emuladores de terminal

10

Tengo acceso ssh a una máquina remota. En esta máquina si corro echo $TERMme sale xterm.

Si quiero cambiar mi emulador de terminal a otro emulador (suponiendo que esté instalado en la máquina remota), ¿cómo lo haría?

Amelio Vazquez-Reina
fuente

Respuestas:

15

El servidor utiliza el valor de la variable de entorno TERM (en los sistemas operativos derivados del sistema V o BSD) para controlar cómo el sistema reconoce la entrada y qué capacidades existen para la salida. Algunos tipos de terminales son lo suficientemente similares como para que puedan intercambiarse sin dejar de ser útiles, mientras que otros podrían dejar el sistema inutilizable hasta que abra una nueva conexión con un valor compatible para TERM. Por ejemplo, de un sistema Linux a otro, probablemente experimente muy poca diferencia entre las configuraciones vt100, vt220 y xterm. La mayoría de las diferencias estarían en cómo se muestra la salida y si los colores o las fuentes en negrita están disponibles para ese tipo de terminal. La base de datos termcap enumera todos los tipos de terminales, con sus diversas capacidades.

Siempre que no cambie a un tipo de terminal con el que su teclado y pantalla no sean compatibles, estará bien.

lea la página de manual para el término, y termcap, en su sistema para obtener más información.

Para cambiar el tipo de terminal:

en bash:

export TERM=vt100

en bourne shell o ksh:

TERM=vt100
export TERM

en csh o tcsh:

setenv TERM vt100

vt100es un terminal bastante seguro para comenzar a jugar. es compatible con xterm, pero no muestra colores ni fuentes en negrita, y puede que no reconozca sus teclas F *, pero es poco probable que realmente estropee algo usando vt100.

Mucha gente usa la detección de terminal en scripts de inicio personales para optimizar su experiencia de usuario dependiendo de cómo inician sesión en el servidor. Por ejemplo, establezca una PS1 simple si está usando vt100, use color y variables dinámicas cuando use bash en un xterm.

Buena suerte con tu investigación.

Tim Kennedy
fuente
3
@intrpc Tenga en cuenta que es bastante raro que necesite cambiar la TERMvariable; es principalmente necesario cuando inicia sesión en un sistema antiguo que no conoce el nombre de un terminal más nuevo (y no ha habido muchos tipos de terminales nuevos en los últimos 15 años más o menos, la mayoría de los emuladores de terminales se denominan a sí mismos xterm). TERMes lo que los programas de tipo terminal creen que están hablando, no cambia lo que realmente es el terminal.
Gilles 'SO- deja de ser malvado'
9

Estás malentendido.

Su consola o terminal o instancia de PuTTY en el lado LOCAL es el "emulador de terminal" real, a pesar de que hoy en día solo acortamos a "terminales". El uso se remonta a cuando la gente realmente usaba terminales de monitor y teclado para iniciar sesión en un servidor mainframe en lugar de usar múltiples consolas y entornos gráficos de usuario.

La variable $ TERM simplemente le dice al sistema remoto qué tipo de códigos de control comprenderá su terminal cuando los envíe (por ejemplo, para generar menús basados ​​en texto o cualquier cosa basada en libncurses).

No estoy seguro de qué es exactamente lo que quiere lograr, pero cambiar $ TERM probablemente no ayudará.

Shadur
fuente
Gracias @Shadur, esto es útil. Me gustaría habilitar el soporte para más colores. Tengo problemas con los caracteres de escape, como explico en la actualización en esta pregunta . En caso de que sea importante, ambas máquinas / sistemas son modernos ( Ubuntu 11.10en mi máquina local y Red Hat Enterprise Linux Server release 5.4 (Tikanga)en la máquina remota)
Amelio Vazquez-Reina
Lo sentimos, el enlace fue a la pregunta incorrecta. Acabo de editar mi comentario anterior.
Amelio Vazquez-Reina
Entonces su problema aún no es la variable TERM, porque mi ventana gnome-terminal, SSHed a un servidor remoto con un valor $ TERM de xterm no tiene problemas para renderizar colores ansi. Podría ser mejor si explica su problema en lugar de preguntar cómo implementar lo que cree que debería ser la solución.
Shadur 01 de
Gracias, pero no dije que "mi problema" era la $TERMvariable. Además, no estoy haciendo esta pregunta con el único propósito de encontrar una solución a un problema / pregunta diferente. En todo caso, mi otra pregunta motivó esta pregunta. Finalmente, no creo que haya nada malo en esperar aprender más sobre cómo funcionan los emuladores de terminal al hacer esta pregunta.
Amelio Vazquez-Reina
Por cierto, no me malinterpreten, agradezco su consejo y, como dije antes, su respuesta me ayudó a comprender mejor los emuladores de terminal.
Amelio Vazquez-Reina