Для чего $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.