Для чего $TERM
?
$TERM
Переменная предназначена для использования в приложениях , чтобы воспользоваться возможностями этого терминала.
Например, если программа хочет отображать цветной текст, она должна сначала выяснить, поддерживает ли используемый вами терминал цветной текст, а затем, если это так, как сделать цветной текст.
Это работает так, что система хранит библиотеку известных терминалов и их возможностей. На большинстве систем он есть /usr/share/terminfo
(есть также termcap, но он больше не используется).
Допустим, у вас есть программа, которая хочет отображать красный текст. По сути, он вызывает библиотеку terminfo, которая говорит: « дайте мне последовательность байтов, которую я должен отправить для красного текста для терминала xterm ». Затем он просто берет эти байты и печатает их.
Вы можете попробовать это самостоятельно tput setf 4; echo hi
. Это получит setf
возможность terminfo и передаст ему параметр 4
, какого цвета вы хотите.
Почему гном терминал лжет о себе
Теперь предположим, что у вас есть новый блестящий эмулятор терминала, который был только что выпущен, а системная библиотека terminfo пока не имеет его определения. Когда ваше приложение отправляется посмотреть, как что-то сделать, оно не будет работать, потому что терминал не известен.
Ваш терминал обходит это, лгая о том, кто он. Итак, ваш терминал гномов говорит " Я xterm ".
Xterm - это очень простой терминал, который существует с начала X11, и поэтому большинство эмуляторов терминала поддерживают то, что он поддерживает. Таким образом, благодаря терминалу gnome, который говорит, что это xterm, более вероятно, что у него есть определение в библиотеке terminfo.
Недостатком лжи о вашем типе терминала является то, что терминал может фактически поддерживать гораздо больше, чем xterm (например, многие новые терминалы поддерживают 256 цветов, в то время как старые терминалы поддерживают только 16). Таким образом, у вас есть компромисс, получите больше возможностей или больше совместимости. Большинство терминалов выберут для большей совместимости, и, следовательно, решили рекламировать себя как xterm
.
Если вы хотите переопределить это, многие терминалы предложат какой-либо способ настройки поведения. Но вы также можете просто сделать export TERM=gnome-terminal
.