Як змінити значення TERM за замовчуванням, встановлене при вході в консоль (Ubuntu)?


6

Значення оболонки $ TERM у Ubuntu за замовчуванням має значення "xterm" для входу в консоль. Як я можу це змінити, щоб він за замовчуванням став "xterm-color"? Я запитую, бо, схоже, це найпростіший спосіб увімкнути кольоровий рядок.

Я знаю, що ви можете скинути значення TERM у.


Вибачте, мені, можливо, потрібно це перевірити. Можливо, це був вхід SSH, а не консоль. Будь-які вказівники будуть добре.
cmcginty

Відповіді:


10

У TERM змінна зберігає ім'я записи в Terminfo базі даних , яка допомагає ОС визначити , як відображати інформацію до терміналу. Те, для чого він за замовчуванням, повністю залежить від способу входу.


Зазвичай "консоль" означає, що ви фізично знаходитесь за комп’ютером і входите в один із текстових віртуальних терміналів (VT1-6).

  • За замовчуванням TERM для Linux (це може відрізнятися між дистрибутивами; vt100 - безпечна альтернатива)

    • Щоб змінити це, на Ubuntu 9.10 вам потрібно буде налаштувати команду getty, визначену в /etc/init/tty1.conf . Це змінить налаштування для / dev / tty1 (VT1), і вам потрібно буде внести ті самі зміни в /etc/init/tty2.conf , ..tty3.conf тощо, щоб отримати й інші віртуальні термінали.

      # original getty command in /etc/init/tty1.conf
      exec /sbin/getty -8 38400 tty1
      
      # new command; sets default TERM on /dev/tty1 to "foobar"
      exec /sbin/getty -8 38400 tty1 foobar

Якщо ви ввійшли в X / Gnome / KDE (VT7, 8 або 9), ви не використовуєте консоль, принаймні в цьому контексті. Технічно це вхід у X та використання псевдотерміналу через додаток емулятора терміналу - ось що дає вам вікно, яке показує вашу оболонку та командний рядок.

  • TERM спочатку встановлюється емулятором терміналу. Його можна змінити у файлах запуску оболонки ( ~ / .bashrc , ~ / .profile тощо).

    • xterm , rxvt , xterm-color , xterm-256color - всі загальні значення

    • Щоб змінити це значення, ознайомтеся з документацією для емулятора терміналу. Наприклад, якщо ви використовуєте rxvt-unicode (він же urxvt ), ви використовуєте параметр -tn termnameкомандного рядка.


Якщо ви ввійшли в систему віддалено (через SSH або віддалений X), ви точно не використовуєте консоль у жодному контексті; знову ж, ви використовуєте псевдотермінал .

  • Термін успадковується програмою, яка запустила SSH:
    • SSH з Linux - результатів віртуального терміналу в віддаленому TERM в Linux ;
    • SSH з командного рядка в емуляторі терміналу X-windows призводить до віддаленого TERM будь-якого, для якого TERM був встановлений до команди SSH;
    • SSH з системи Windows, що використовує PuTTY за замовчуванням на xterm , але це можна змінити в конфігурації PuTTY;
    • і будь-яке з перерахованих вище параметрів може бути замінено файлами запуску оболонки віддаленого користувача.

2

Тут багато хорошої інформації:

man 7 term

Значення TERM за замовчуванням буде встановлено на основі рядка або / etc / inittab (Linux та System-V-подібні UNIXes) або / etc / ttys (BSD UNIXes). Цього майже завжди вистачає для консолей робочої станції та мікрокомп'ютерів.

Наступна проблема полягає в тому, що Ubuntu 9.10 не має /etc/inittabабо /etc/ttys.

man inittab

Демон Upstart init (8) не використовує цей файл, а замість цього зчитує його конфігурацію з файлів у / etc / init. Дивіться init (5) для більш детальної інформації.

Заглянувши в / etc / init, ви можете знайти файли tty * .conf. Вони управляються виконуючи getty. Так то:

man getty

термін Значення, яке буде використано для змінної середовища TERM. Це переосмислює все, що може бути встановлено у програмі init (8), і успадковується логіном та оболонкою.

Це гарна інформація. Тепер ми знаємо, що значення TERM за замовчуванням походить від init (8)

... після всього цього мені не вдалося зрозуміти, як змінити значення TERM за замовчуванням, яке використовує init.


1
ця цитата на сторінці сторінки описує встановлення TERM під час входу на "консоль"; Ubuntu використовує upstart замість старого init та визначає tty1 і т.д. у таких файлах, як /etc/init/tty1.conf
quack quixote
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.