После обновления до Maverick моя переменная TERM была установлена на «немой», этого не происходит с тем же домашним каталогом, запущенным из Lucid, и я не изменил вручную ничего, связанного с TERM.
Есть идеи, откуда ожидается, что переменная TERM будет установлена?
Если вы хотите сменить терминал, обязательно проверьте функциональность альтернатив обновления.
Например:
update-alternatives --config x-terminal-emulator
Многие из различных системных параметров по умолчанию в Ubuntu устанавливаются с помощью этого метода. Другим распространенным вариантом будет www-браузер
update-alternatives --config x-www-browser
Чтобы ответить на ваш вопрос буквально, эмулятор терминала должен установить $TERM
.¹
Для решения вашей проблемы потребуется хотя бы знание того, какой эмулятор терминала вы используете. Это может быть ошибка или неправильная конфигурация в эмуляторе терминала или проблема с файлами запуска вашей оболочки (возможно, ~/.bashrc
, но, возможно, ~/.bash_profile
, /etc/bashrc
, /etc/profile
, ...).
¹ Предполагая, что вы не используете аппаратный терминал; тогда это будет аргумент getty
, вызываемый из inittab
(более ранние выпуски, использующие SysVinit) или /etc/init/tty*.conf
(Ubuntu ≥9.10, использующий Upstart).
Чтобы пояснить, что говорит Жиль, предположим, что вы дистанционно подключаетесь к своей Ubuntu из Windows с помощью Putty.
В опциях конфигурации putty, в Connection-> Data есть настройка, называемая строка типа терминала. Вы можете установить там свой TERM, а putty указывает SSH установить эту переменную среды. В какой-то момент после этого ваша оболочка будет выполнена, вероятно, / bin / bash, и она получит свое окружение от своего родительского процесса, возможно, процесса sshd.
То же самое верно, если вы используете ssh из удаленного Linux-бокса, просто локальная переменная среды TERM передается через ssh в удаленное соединение.
В случае эмулятора терминала задачей эмулятора терминала является установка переменной среды TERM. например getty устанавливает TERM в значение "linux" и разветвляет процесс оболочки (/ bin / bash). или gnome-Terminal устанавливает TERM в значение «xterm» и разветвляет процесс оболочки.