Na maioria das vezes, você não deve definir TERMmanualmente. A variável é sempre definida automaticamente e há apenas um conjunto restrito de circunstâncias em que o valor padrão está incorreto.
O valor de TERMprecisa ser referenciado no banco de dados terminfo do sistema (ou para alguns sistemas antiquados, no banco de dados termcap ). Terminfo e Termcap mapeiam os tipos de terminal para a descrição dos recursos de terminal que os aplicativos usam. O valor de TERMé o tipo de terminal.
O principal motivo pelo qual você pode precisar mudar algumas vezes TERMé se você efetuar logon remotamente, quando a máquina local e a máquina remota tiverem bancos de dados de terminal diferentes.
Outro motivo, relacionado ao anterior, é que, às vezes, existem várias entradas semelhantes para um terminal, com recursos ligeiramente diferentes. Isso costuma acontecer principalmente quando um novo terminal é compatível com um terminal existente, mas possui mais recursos. Você pode escolher entre usar o nome tradicional, que todas as máquinas entendem, mas que anuncia apenas os recursos tradicionais, ou o nome mais recente, que anuncia todos os novos recursos, mas que algumas máquinas não entendem.
Um exemplo disso é o xterm com 16 cores vs xterm com 256 cores. Um xterm tradicional suporta apenas 16 cores, e é isso que o xtermbanco de dados do terminal especifica. Alterar a xtermentrada deixaria os usuários das versões mais recentes do xterm felizes, mas interromperia a configuração dos usuários das versões mais antigas do xterm que efetuam login remotamente. Mudar para um novo nome - xterm-256color- fornece os recursos mais recentes sempre que disponíveis, mas não é reconhecido se você fizer logon remotamente em máquinas com um banco de dados de terminal mais antigo. Como não existe uma solução que possa satisfazer a todos, você tem uma escolha: fique com xterme não obtenha as 256 cores ou use as xterm-256colorque não funcionarem se você fizer login em máquinas remotas que não são compatíveis.
Deixar o valor padrão xterme definir o termNamerecurso como xterm-256color(o que faz com que a variável de ambiente TERMseja configurada com o mesmo valor) são, portanto, ambas as escolhas sensatas. Definir TERMvalores arbitrários não funcionaria, mas ambos xterme xterm-256colorfaz sentido.