Quando o $ TERM é substituído de “mudo” por “xterm”?

1

Adicionei uma linha a $HOME/.profile apenas por interesse.

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

Após o próximo login, vi uma palavra dumb em $HOME/term/.profile .

$ cat term/.profile 
dumb

Em seguida, abri gnome-terminal e digitei echo $TERM . O resultado foi xterm .

$ echo $TERM
xterm

Quando o $TERM é substituído de dumb para xterm ?

Eu sei que existem algumas perguntas semelhantes e as vi, mas não consegui entendê-las o suficiente para encontrar a resposta.

Não existe .bash_profile nem .bash_login em $HOME .

E esta é a saída do comando who :

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

SO: Ubuntu 15.04.

    
por cul8er 24.11.2015 / 21:10

1 resposta

1

O valor dumb que você está vendo provavelmente está definido systemd para LightDM (que origina .profile quando você faz login, consulte /usr/sbin/lightdm-session ).

O valor xterm é definido pelo Terminal GNOME, ou melhor, a biblioteca VTE que ele usa. O próprio Terminal GNOME não oferece uma maneira de alterar a configuração, ao contrário de outros terminais baseados em VTE, como o Terminal XFCE. Consulte 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));
    
por muru 27.11.2015 / 05:31