最近登陆一台CentOS 6机器,发现每次登陆都提示以下警告:html
-bash: warning: setlocale: LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory -bash: warning: setlocale: LC_COLLATE: cannot change locale (en_US.UTF-8): No such file or directory -bash: warning: setlocale: LC_MESSAGES: cannot change locale (en_US.UTF-8): No such file or directory -bash: warning: setlocale: LC_NUMERIC: cannot change locale (en_US.UTF-8): No such file or directory -bash: warning: setlocale: LC_TIME: cannot change locale (en_US.UTF-8): No such file or directory
这种警告固然不能容忍,因此要fix it.segmentfault
# tee /etc/environment <<- 'EOF' LANG=en_US.utf-8 LC_ALL= EOF # source /etc/environment /* 生成 en_US.UTF-8 locale文件 CentOS没有locale-gen命令*/ # localedef -v -c -i en_US -f UTF-8 en_US.UTF-8
输入如下命令,从新登陆就不会出现这个问题了。
可是究竟是什么缘由致使这样的警告?
首先咱们须要知道什么是locale ,这篇文章说的挺好。bash
首先看咱们的登陆警告提示:-bash: warning: setlocale: LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory.由于咱们已经设置了默认地区_语言.字符集为 en_US.UTF-8,可是在系统中没有定义这个问题。code
咱们能够经过运行 locale -a 查看系统当前支持的locale定义。在上面咱们看到,咱们经过运行“localedef -v -c -i en_US -f UTF-8 en_US.UTF-8” 生成相应的locale配置文件。以后系统就不会报错了。htm
本文摘自:https://segmentfault.com/a/1190000004378075blog
只为本身记录而已utf-8