如何将Linux默认XTERM终端类型设置为VT100
CentOS 系统设置默认TERM值为vt100的操作方法
之前配置不生效的核心原因
- 配置语法错误:你写的
export $TERM=VT100是错误写法,shell变量赋值时变量名前不能加$,$仅用于引用变量值,这种写法完全不会生效。 - 配置优先级问题:SSH连接时,客户端会和服务端协商终端类型,sshd服务默认会接收客户端传递的TERM值,这个值的加载优先级高于用户家目录下
.bashrc、.bash_profile、.profile里的配置,会覆盖你在这些文件里设置的参数。
正确配置步骤
1. 修改SSH服务端配置,禁止接收客户端下发的TERM值
编辑sshd服务配置文件:
vi /etc/ssh/sshd_config
找到AcceptEnv配置行,删除行内的TERM字段,只保留允许接收的环境变量,例如修改为:
AcceptEnv LANG LC_*
注意:如果配置文件里没有这一行,直接新增上面的内容即可,不要添加TERM参数
保存退出后重启sshd服务让配置生效:
systemctl restart sshd
2. 设置全局/用户级默认TERM值
- 所有用户全局生效:编辑
/etc/profile文件,在文件末尾添加正确的环境变量配置:
保存后执行export TERM=vt100source /etc/profile让当前会话加载配置。 - 仅当前用户生效:编辑用户家目录下的
~/.bashrc和~/.bash_profile,删除之前写错的带$的TERM配置行,添加正确配置:
保存后执行export TERM=vt100source ~/.bashrc && source ~/.bash_profile加载配置。
3. 验证配置效果
断开当前SSH连接,重新发起连接后执行命令验证:
echo $TERM
返回结果为vt100即配置成功。
补充说明
如果你使用的是第三方SSH客户端(Xshell、SecureCRT、Putty等),也可以直接在客户端的连接配置-终端设置里,将默认终端类型修改为vt100,不需要修改服务端配置即可生效。
如果配置后仍不生效,检查是否有其他全局初始化文件(比如/etc/bashrc、/etc/environment)里存在其他TERM赋值逻辑覆盖了你的配置。
内容的提问来源于stack exchange,提问作者try.aaam
相关产品推荐
相关产品推荐

