Para elaborar o que Gilles diz, suponha que você esteja se conectando remotamente ao seu ubuntu a partir do Windows usando o Putty.
Nas opções de configuração da massa, em Conexão-> Dados, há uma configuração chamada string do tipo terminal. Você pode definir seu TERM lá e o putty instrui o SSH para definir essa variável de ambiente. Em algum momento depois disso, seu shell será executado, provavelmente / bin / bash e obterá seu ambiente a partir do processo pai, provavelmente o processo sshd.
O mesmo vale se você ssh de uma caixa Linux remota, é apenas que a variável de ambiente TERM local é passada através de ssh para a conexão remota.
No caso de um emulador de terminal, é tarefa do emulador de terminal definir a variável de ambiente TERM. por exemplo, getty define TERM como "linux" e bifurca um processo de shell (/ bin / bash). ou o gnome-terminal define TERM como "xterm" e bifurca um processo de shell.