Onde a variável ambiental '$ TERM' está definida no Debian Jessie para logins de console?

4

Eu li muitos artigos e perguntas sobre como e onde a variável de ambiente $TERM é definida.

Infelizmente, na Debian 8.1, não consigo encontrar onde a variável $TERM padrão está definida ao fazer o login no sistema a partir de tty1 .

Eu adoraria ser apontado na direção correta se essa for realmente uma pergunta duplicada, mas as perguntas a seguir não parecem ter fornecido uma resposta:

suporte a tmux, TERM e 256 cores

Onde é definido o padrão da variável de ambiente TERM?

É correto definir a variável $ TERM manualmente?

Editar

Quando eu fizer login via tty1 , aqui está o que $TERM está definido como:

$> echo $TERM
linux

Listagem de /usr/lib/systemd/ , observe que não há diretório system aqui.

$> ls -al
total 28
drwxr-xr-x  7 root root 4096 Aug 19 13:37 .
drwxr-xr-x 44 root root 4096 Aug 20 14:28 ..
drwxr-xr-x  2 root root 4096 Aug 19 13:37 catalog
drwxr-xr-x  2 root root 4096 May 26 02:07 network
drwxr-xr-x  2 root root 4096 Aug 19 13:37 ntp-units.d
drwxr-xr-x  2 root root 4096 Aug 19 13:37 user
drwxr-xr-x  2 root root 4096 May 26 02:07 user-generators
    
por datUser 20.08.2015 / 19:57

2 respostas

5

Suponho que TERM esteja definido como linux para o processo init (pid 1) pelo kernel do Linux aqui e . Você pode ver em /proc/1/environ (desculpe a seguinte saída é do Ubuntu 15.04):

$ sudo strings /proc/1/environ 
HOME=/
init=/sbin/init
recovery=
TERM=linux
BOOT_IMAGE=/boot/vmlinuz-3.19.0-25-generic.efi.signed
PATH=/sbin:/usr/sbin:/bin:/usr/bin
PWD=/
rootmnt=/root

Em sistemas baseados em Debian / Ubuntu systemd, ele é propagado para processos filho getty por definições em /lib/systemd/system/[email protected] .

[Service]
# the VT is cleared by TTYVTDisallocate
ExecStart=-/sbin/agetty --noclear %I $TERM

Assim, você poderá substituir TERM na linha de comando do kernel. Tente editar /etc/default/grub , executar update-grub e reinicializar.

GRUB_CMDLINE_LINUX="TERM=vt100"
    
por 20.08.2015 / 21:43
-1

A variável $ TERM é normalmente definida em / etc / profile ou .bashrc depende da distro usando.

Leia o link

    
por 20.08.2015 / 20:08