Para dar más detalles sobre lo que dice Gilles, supongamos que se está conectando remotamente a su ubuntu desde Windows utilizando Putty.
En las opciones de configuración de masilla, en Conexión-> Datos hay una configuración llamada cadena de tipo terminal. Puede configurar su TERM allí y putty le indica a SSH que establezca esa variable de entorno. En algún momento después de eso, su shell se ejecutará, probablemente / bin / bash y obtendrá su entorno de su proceso padre, probablemente el proceso sshd.
Lo mismo es cierto si ssh desde un cuadro de Linux remoto, es solo que la variable de entorno TERM local se pasa a través de ssh a la conexión remota.
En el caso de un emulador de terminal, el trabajo del emulador de terminal es establecer la variable de entorno TERM. Por ejemplo, getty establece TERM en "linux" y bifurca un proceso de shell (/ bin / bash). o gnome-terminal establece TERM en "xterm" y bifurca un proceso de shell.