Как устанавливается значение переменной оболочки TERM по умолчанию?

После обновления до Maverick моя переменная TERM была установлена ​​на «немой», этого не происходит с тем же домашним каталогом, запущенным из Lucid, и я не изменил вручную ничего, связанного с TERM.

Есть идеи, откуда ожидается, что переменная TERM будет установлена?

13
задан 3 January 2011 в 15:58

3 ответа

Если вы хотите сменить терминал, обязательно проверьте функциональность альтернатив обновления.

Например:

update-alternatives --config x-terminal-emulator

Многие из различных системных параметров по умолчанию в Ubuntu устанавливаются с помощью этого метода. Другим распространенным вариантом будет www-браузер

update-alternatives --config x-www-browser
0
ответ дан 3 January 2011 в 15:58

Чтобы ответить на ваш вопрос буквально, эмулятор терминала должен установить $TERM

Для решения вашей проблемы потребуется хотя бы знание того, какой эмулятор терминала вы используете. Это может быть ошибка или неправильная конфигурация в эмуляторе терминала или проблема с файлами запуска вашей оболочки (возможно, ~/.bashrc, но, возможно, ~/.bash_profile, /etc/bashrc, /etc/profile, ...).

¹ Предполагая, что вы не используете аппаратный терминал; тогда это будет аргумент getty, вызываемый из inittab (более ранние выпуски, использующие SysVinit) или /etc/init/tty*.conf (Ubuntu ≥9.10, использующий Upstart).

0
ответ дан 3 January 2011 в 15:58

Чтобы пояснить, что говорит Жиль, предположим, что вы дистанционно подключаетесь к своей 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» и разветвляет процесс оболочки.

0
ответ дан 3 January 2011 в 15:58

Другие вопросы по тегам:

Похожие вопросы: