背景信息
-
LC_ALL
与LANG
的区别LANG
是默认的全局语言环境变量。- 它的作用是为所有未明确设置的
LC_*
变量提供默认值。 - 如果
LC_ALL
被设置,LANG
的值会被忽略。 LC_ALL
是一个特殊的变量,用于一次性覆盖所有区域设置(包括LANG
和其他LC_*
变量)。- 如果设置了
LC_ALL
,它的值会优先于其他所有 locale 相关变量。
- 在终端直接执行eg:
export LANG=en_US.UTF-8
这种修改是临时的仅对当前 shell 会话有效,想要永久修改需要到~/.bashrc中修改或者添加
具体流程
检查 .bashrc
或 .bash_profile
文件中是否有异常设置,如有先解决异常
cat ~/.bashrc | grep PROMPT_COMMAND
cat ~/.bashrc | grep PS1
1、检查设置~/.bashrc中的PS1,ANSI 转义序列是否被正确包裹在 $
和 $
中
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
2、检查~/.bashrc中的编码,根据需求设置LC_ALL
或LANG为en_US.UTF-8
export LANG=en_US.UTF-8
或者
export LC_ALL=en_US.UTF-8
【可选】检查你正在使用的终端是否确实支持 xterm-256color,可以在
~/.bashrc中添加
export TERM=xterm-256color
参考链接