TERM shell变量的默认值如何设置?


13

升级到Maverick之后,我将TERM变量设置为'dumb',在从Lucid运行的相同主目录下不会发生这种情况,并且我没有手动更改与TERM相关的任何内容。

知道从哪里可以设置TERM变量吗?

Answers:


13

为了详细说明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进程。


我检查了一下,gnome-terminal正常运行,这确实是一个“仿真器”错误。我正在使用终结器。谢谢
若奥·平托

9

为了从字面上回答您的问题,应该设置终端仿真器$TERM。¹

要解决您的问题,至少需要知道您使用的终端模拟器。这可能是终端仿真器中的错误或配置错误,也可能是Shell启动文件出现问题(可能是~/.bashrc,但可能是~/.bash_profile/etc/bashrc/etc/profile,...)。

¹ 假设您未使用硬件终端;那么它将是的参数getty,从inittab(使用SysVinit的旧版本)或/etc/init/tty*.conf(使用Upstart的Ubuntu≥9.10)调用。


2
不会从inittab中调用getty,Ubuntu再也没有inittab了!该控制台由/etc/init/tty*.conf定义
LassePoulsen

4
我认为您会得到一个徽章的首次使用,我在回答中的脚注中看到它是::)
poolie 2010年

现在它已经是15.04+新贵了(再次),它不再是默认值,并且systemd在getty @服务中处理它,我仍然习惯于这种变化(一旦我了解到有关新贵的一切,它就可以算了,现在我有了用systemd ... meh做同样的事情!)
osirisgothra

1

如果要更改终端,请确保您签出了更新替代功能。

例如:

update-alternatives --config x-terminal-emulator

Ubuntu中的许多系统默认选项都是通过此方法设置的。另一个常见的是www浏览器

update-alternatives --config x-www-browser
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.