Чтобы пояснить, что говорит Жиль, предположим, что вы дистанционно подключаетесь к Ubuntu из Windows с помощью Putty.
В опциях конфигурации putty, в Connection-> Data есть настройка, называемая строка типа терминала. Вы можете установить там свой TERM, а putty указывает SSH установить эту переменную среды. В какой-то момент после этого ваша оболочка будет выполнена, вероятно, / bin / bash, и она получит свое окружение от своего родительского процесса, возможно, процесса sshd.
То же самое верно, если вы используете ssh из удаленного Linux-бокса, просто локальная переменная среды TERM передается через ssh в удаленное соединение.
В случае эмулятора терминала задача эмулятора терминала - установить переменную среды TERM. Например, getty устанавливает TERM в значение «linux» и разветвляет процесс оболочки (/ bin / bash). или gnome-терминал устанавливает TERM в значение "xterm" и разветвляет процесс оболочки.