Answers:
为了详细说明Gilles所说的内容,假设您正在使用Putty从Windows远程连接到ubuntu。
在腻子配置选项中,在“连接”->“数据”下有一个称为终端类型字符串的设置。您可以在此处设置TERM,putty指示SSH设置该环境变量。在您的外壳将要执行的某个时候,可能是/ bin / bash,它从其父进程(可能是sshd进程)获取环境。
如果从远程linux盒中使用ssh,也是如此,只是本地TERM环境变量是通过ssh传递到远程连接的。
对于终端仿真器,终端仿真器的工作是设置TERM环境变量。例如,getty将TERM设置为“ linux”并派生一个shell进程(/ bin / bash)。或gnome-terminal将TERM设置为“ xterm”并派生一个shell进程。
为了从字面上回答您的问题,应该设置终端仿真器$TERM
。¹
要解决您的问题,至少需要知道您使用的终端模拟器。这可能是终端仿真器中的错误或配置错误,也可能是Shell启动文件出现问题(可能是~/.bashrc
,但可能是~/.bash_profile
,/etc/bashrc
,/etc/profile
,...)。
¹ 假设您未使用硬件终端;那么它将是的参数getty
,从inittab
(使用SysVinit的旧版本)或/etc/init/tty*.conf
(使用Upstart的Ubuntu≥9.10)调用。