Як встановлюється значення змінної оболонки TERM за замовчуванням?


13

Після оновлення до Maverick у мене змінна TERM встановлена ​​на "німий", цього не відбувається з тим самим домашнім dir, який працює від Lucid, і я вручну нічого не змінив, пов'язаний з TERM.

Будь-яка ідея, звідки очікується встановлення змінної TERM?

Відповіді:


13

Щоб детальніше розповісти про те, що говорить Гілл, припустимо, ви віддалено підключаєтесь до свого 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" і розщеплює процес оболонки.


Я перевірив, і gnome-terminal працює нормально, це справді помилка "емулятор". Я використовую термінатор. Спасибі
Жоао Пінто

9

Щоб відповісти буквально на ваше запитання, слід встановити емулятор терміналу $TERM

Щоб вирішити свою проблему, знадобиться хоча б знати, який термінальний емулятор ви використовуєте. Це може бути помилка або расконфігурація в емуляторі терміналу або проблеми з вашої Стартові файли оболонки (ймовірно ~/.bashrc, але , можливо ~/.bash_profile, /etc/bashrc, /etc/profile, ...).

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


2
getty не викликається з inittab, Ubuntu вже не має inittab! Консолі визначені /etc/init/tty*.conf
LassePoulsen,

4
Я думаю, ви отримуєте значок для першого використання, який я бачив виноски у відповіді :-)
poolie

тепер, коли це 15.04+ на початку, більше не є за замовчуванням (знову), і systemd обробляє це в службі getty @, я все ще звикаю до цієї зміни (це цифри, коли я дізнався все про швидке запуску в і поза, тепер у мене є зробити те ж саме з systemd ... meh !!)
osirisgothra

1

Якщо ви хочете змінити термінал, переконайтеся, що ви перевірили функціональні можливості оновлення.

Наприклад:

update-alternatives --config x-terminal-emulator

Багато методів, встановлених за замовчуванням у Ubuntu, встановлюються за допомогою цього методу. Ще один поширений - це веб-браузер

update-alternatives --config x-www-browser
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.