在 CentOS(或其他 Linux 发行版)中,反引号(`)本身不会乱码,你看到的“乱码”通常是下面几种原因之一:
如果你的终端编码和 CentOS 的 LANG / LC_* 不一致,特殊字符(包括反引号、管道、括号)就可能显示成乱码。
locale
正常应类似:
LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8
临时设置:
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
永久生效(CentOS 7):
localectl set-locale LANG=en_US.UTF-8
如果你用的是:
请确认:
某些老旧或精简字体:
解决方法:
DejaVu Sans Mono、Consolas、Monaco)在 shell 中:
`command`
是命令替换(老写法),现代更推荐:
$(command)
如果你在脚本或文档里看到:
echo `date`
这不是乱码,是正常语法。
从网页 / Word / PDF 复制命令时:
建议:
$( ) 代替某些最小系统用的是 sh / dash,对特殊字符处理不同,但反引号一般不会乱码。
echo `whoami`
echo $(whoami)
如果两者显示一致、不报错,说明反引号是正常的。
如果你愿意,可以:
locale 输出 + 用的终端软件我可以直接帮你定位是哪一种原因。