Lo que es $TERM
para?
La $TERM
variable es para uso de las aplicaciones para aprovechar las capacidades de ese terminal.
Por ejemplo, si un programa quiere mostrar texto en color, primero debe averiguar si el terminal que está utilizando admite texto en color y, si lo hace, cómo hacerlo.
La forma en que esto funciona es que el sistema mantiene una biblioteca de terminales conocidas y sus capacidades. En la mayoría de los sistemas esto está dentro /usr/share/terminfo
(también hay un termcap, pero su legado ya no se usa mucho).
Digamos que tiene un programa que quiere mostrar texto rojo. Básicamente hace una llamada a la biblioteca terminfo que dice " dame la secuencia de bytes que tengo que enviar para texto rojo para el terminal xterm ". Luego solo toma esos bytes y los imprime.
Puedes probar esto tú mismo haciendo tput setf 4; echo hi
. Esto obtendrá la setf
capacidad de terminfo y le pasará un parámetro de 4
, que es el color que desea.
Por qué el terminal gnome miente sobre sí mismo:
Ahora supongamos que tiene un emulador de terminal nuevo y brillante que se acaba de lanzar, y la biblioteca terminfo del sistema aún no tiene una definición. Cuando su aplicación vaya a buscar cómo hacer algo, fallará porque no se conoce el terminal.
La forma en que su terminal evita esto es mintiendo sobre quién es. Entonces tu terminal de gnomos dice " I'm xterm ".
Xterm es un terminal muy básico que ha existido desde los albores de X11 y, por lo tanto, la mayoría de los emuladores de terminales admiten lo que admite. Entonces, al decir que el terminal gnome es un xterm, es más probable que tenga una definición en la biblioteca terminfo.
La desventaja de mentir sobre su tipo de terminal es que el terminal podría admitir mucho más que xterm (por ejemplo, muchos terminales nuevos admiten 256 colores, mientras que los terminales más antiguos solo admitían 16). Por lo tanto, tiene una compensación, obtiene más funciones o tiene más compatibilidad. La mayoría de los terminales optarán por una mayor compatibilidad y, por lo tanto, eligen anunciarse como xterm
.
Si desea anular esto, muchos terminales ofrecerán alguna forma de configurar el comportamiento. Pero también puedes hacerlo export TERM=gnome-terminal
.