最近登陸一臺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