我读过很多关于如何以及在何处$TERM
设置默认环境变量的文章和 SE 问题。
不幸的是,在 Debian 8.1 中,我似乎无法找到$TERM
从 登录系统时设置默认变量的位置tty1
。
如果这确实是一个重复的问题,我很乐意指出正确的方向,但以下问题似乎没有提供答案:
编辑
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
答案1
我想Linux 内核TERM
将其设置linux
为 init 进程(pid 1)这里和那里。您可以在以下位置看到它/proc/1/environ
(抱歉,以下输出来自 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
在基于 Debian/Ubuntu systemd 的系统上,它通过./lib/systemd/system/[email protected]
[Service]
# the VT is cleared by TTYVTDisallocate
ExecStart=-/sbin/agetty --noclear %I $TERM
因此您也许可以TERM
在内核命令行中进行覆盖。尝试编辑/etc/default/grub
并运行update-grub
并重新启动。
GRUB_CMDLINE_LINUX="TERM=vt100"
答案2
$TERM 变量通常在 /etc/profile 或 .bashrc 中设置,具体取决于所使用的发行版。
读http://www.tldp.org/HOWTO/Keyboard-and-Console-HOWTO-11.html