Когда $TERM заменяется от “немого” до “xterm”?

Я добавил строку к $HOME/.profile только для интереса.

echo ${TERM:-"\$TERM isn't set."} > $HOME/term/.profile

После следующего входа в систему я видел слово dumb в $HOME/term/.profile.

$ cat term/.profile 
dumb

Затем я открылся gnome-terminal и введенный echo $TERM. Результат был xterm.

$ echo $TERM
xterm

Когда $TERM замененный от dumb кому: xterm?

Я знаю, что существуют некоторые подобные вопросы и видели их, но я не мог понять их достаточно для нахождения ответа.

Нет ни одного .bash_profile ни .bash_login в $HOME.

И это who вывод команды:

$ who am i
cul8er   pts/1        2015-11-25 05:31 (:0)

ОС: Ubuntu 15.04.

1
задан 25 November 2015 в 00:29

1 ответ

Значение dumb, что Вы видите, вероятно, установлено systemd для LightDM (который источники .profile, когда Вы входите в систему, см. /usr/sbin/lightdm-session).

значение xterm установлено Терминалом GNOME, или, скорее библиотека VTE , что это использует. Сам Терминал GNOME не позволяет изменять настройки, в отличие от других основанных на VTE терминалов как Терминал XFCE. См. src/pty.c :

/**
 * VtePty:term:
 *
 * The value to set for the TERM environment variable just after
 * forking.
 *
 * Since: 0.26
 */
g_object_class_install_property
        (object_class,
         PROP_TERM,
         g_param_spec_string ("term", NULL, NULL,
                              "xterm",
                              G_PARAM_READWRITE |
                              G_PARAM_STATIC_STRINGS));
2
ответ дан 7 December 2019 в 13:51

Другие вопросы по тегам:

Похожие вопросы: