升级到 Maverick 之后,我将 TERM 变量设置为“dumb”,从 Lucid 运行相同的主目录时不会发生这种情况,而且我没有手动更改与 TERM 相关的任何内容。
知道应该从哪里设置 TERM 变量吗?
答案1
为了详细说明 Gilles 所说的内容,假设您使用 Putty 从 Windows 远程连接到您的 ubuntu。
在 putty 配置选项中,Connection->Data 下有一个名为终端类型字符串的设置。您可以在那里设置 TERM,然后 putty 会指示 SSH 设置该环境变量。此后的某个时间点,您的 shell 将被执行,可能是 /bin/bash,它会从其父进程(可能是 sshd 进程)获取其环境。
如果您从远程 Linux 机器使用 ssh,情况也是如此,只是本地 TERM 环境变量通过 ssh 传递到远程连接。
对于终端仿真器来说,设置 TERM 环境变量是终端仿真器的工作。例如,getty 将 TERM 设置为“linux”并派生一个 shell 进程 (/bin/bash)。或者 gnome-terminal 将 TERM 设置为“xterm”并派生一个 shell 进程。
答案2
从字面上回答你的问题,终端仿真器应该设置$TERM
.¹
要解决您的问题,至少需要知道您使用的是什么终端仿真器。这可能是终端仿真器中的错误或配置错误,也可能是 shell 启动文件的问题(可能是~/.bashrc
,但也可能,,,~/.bash_profile
... )。/etc/bashrc
/etc/profile
¹假设您没有使用硬件终端;那么它将是 的参数getty
,从inittab
(使用 SysVinit 的旧版本)或/etc/init/tty*.conf
(使用 Upstart 的 Ubuntu ≥9.10)调用。
答案3
如果您想更改终端,请务必检查更新替代方案功能。
例如:
update-alternatives --config x-terminal-emulator
Ubuntu 中的许多系统默认选项都是通过此方法设置的。另一个常见的选项是 www 浏览器
update-alternatives --config x-www-browser