Mac系统终端 -bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory Fix

在OS X Bash终端使用SSH登录服务器的时候,有错误出现:

ssh user@server
Last login: Wed Mar 26 08:45:36 2014 from 1.2.3.4
-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory

这个警告或者错误的出现,是因为OpenSSH的客户端试图将本地的”LC_*”环境变量上传到服务器,并在服务器端设置这些变量。

有以下三种方法修复这个问题,任选其中一种。

一、使用OS X的Terminal.app

如果你使用的是OS X上得Terminal.app的话,那么:

1.打开Terminal.app。

2.将鼠标移动到屏幕左上角,苹果Logo旁边,依次点击

Terminal > Preferences

在”General”选项卡下,找到第一项:”On startup, open:”,从下拉框中选择一个样式,假如选定的是Basic。

3.切换到”Profiles”选项卡,从左侧列表中选择刚刚选中的样式,在右侧选择”Advanced”标签,取消倒数第二栏的”set locale environment variables on startup”勾选状态(即不勾选这个选项)。然后退出,关闭并退出Terminal.app,重新打开Terminal.app就可以了。

二、修改客户端的SSH配置文件

1.打开客户端SSH配置文件:

(Linux系统) sudo vi /etc/ssh/ssh_config
或(OS X) sudo vi /etc/ssh_config

2.找到这一行,并在这一行前用”#”号注释它。

#SendEnv LANG LC_*

3.保存并退出编辑器。再次用SSH连接服务器的时候就不会出现问题了。

三、在服务器端安装需要的locale文件

除了上述两种方法外,还可以在服务器上安装缺少的locale文件。使用命令:

sudo localedef -i en_US -f UTF-8 en_US.UTF-8

即可。

三种方式任选其一。

参考文献

1.解决LC_*问题