Для чого $TERM
?
$TERM
Мінлива призначена для використання в додатках , щоб скористатися можливостями цього терміналу.
Наприклад, якщо програма хоче відобразити кольоровий текст, вона спочатку повинна з’ясувати, чи підтримує термінал, який ви використовуєте, кольоровий текст, а потім, як це зробити, як зробити кольоровий текст.
Це працює в тому, що система зберігає бібліотеку відомих терміналів та їх можливостей. У більшості систем це є /usr/share/terminfo
(також існує термінальна версія, але це вже не використовується багато).
Тож скажемо, у вас є програма, яка хоче відображати червоний текст. По суті, він робить дзвінок до бібліотеки terminfo, який говорить " дайте мені послідовність байтів, які я повинен надіслати для червоного тексту для терміналу xterm ". Тоді він просто бере ці байти і роздруковує їх.
Ви можете спробувати це самостійно, роблячи tput setf 4; echo hi
. Це отримає можливість setf
terminfo та передасть йому параметр 4
, який є потрібним кольором.
Чому термінал gnome бреше про себе:
Тепер скажемо, що у вас є якийсь новий блискучий емулятор терміналу, який щойно був випущений, і бібліотека terminfo системи ще не має визначення для нього. Коли ваша програма перегляне, як щось зробити, вона вийде з ладу, оскільки термінал не відомий.
Те, як ваш термінал обійде це, шляхом брехні про те, хто це. Тож ваш термінал gnome говорить " я xterm ".
Xterm - це дуже базовий термінал, який існує з самого світанку X11, і тому більшість емуляторів терміналів підтримують те, що він підтримує. Отже, термінал gnome, який каже, що це xterm, швидше за все має визначення у бібліотеці terminfo.
Мінусом брехні про тип вашого терміналу є те, що термінал може насправді підтримувати набагато більше, ніж xterm (наприклад, багато нових терміналів підтримують 256 кольорів, тоді як старі термінали підтримують лише 16). Таким чином, ви маєте компроміс, отримуєте більше функцій або більше сумісності. Більшість терміналів вибирають для більшої сумісності і, таким чином, вирішать рекламувати себе як xterm
.
Якщо ви хочете це змінити, багато термінали запропонують певний спосіб налаштування поведінки. Але ви також можете просто зробити export TERM=gnome-terminal
.