Debian

在 Debian Jessie 中為控制台登錄設置的“$TERM”環境變數在哪裡?

  • August 20, 2015

我已經閱讀了很多關於如何以及在何處設置預設$TERM環境變數的文章和 SE 問題。

不幸的是,在 Debian 8.1$TERM中,從tty1.

如果這確實是一個重複的問題,我很樂意指出正確的方向,但以下問題似乎沒有提供答案:

tmux、TERM 和 256 色支持

TERM 環境變數預設值在哪裡設置?

手動設置 $TERM 變數是否正確?

編輯

tty1當我通過這裡登錄時,$TERM設置為:

$> echo $TERM
linux

的清單/usr/lib/systemd/,注意這裡沒有system目錄。

$> 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

我想在這里那裡TERM被Linux核心設置linux為init程序(pid 1)。您可以在中看到它(抱歉,以下輸出來自 Ubuntu 15.04):/proc/1/environ

$ 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

在基於 Debian/Ubuntu systemd 的系統上,它通過/lib/systemd/system/getty@.service.

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

所以你也許可以TERM在核心命令行中覆蓋。嘗試編輯/etc/default/grub並執行update-grub並重新啟動。

GRUB_CMDLINE_LINUX="TERM=vt100"

引用自:https://unix.stackexchange.com/questions/224478