“lsblk” 的伪字符仅限于终端,而不是通过 SSH?

“lsblk” 的伪字符仅限于终端,而不是通过 SSH?

参见屏幕截图。这是怎么回事?

在终端上(IPMI 控制台窗口 - 它准确反映屏幕上的内容):

lsblk 的终端输出

通过 SSH 进入同一个框:

lsblk 的 SSH 输出

供参考的区域设置输出:

root@ubuntu16:~# locale
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
root@ubuntu16:~#

由于 Serg 的评论,我尝试了一些设置,并且在 lsblk 之前使用“LC_CTYPE=C”看起来是正确的:

在此处输入图片描述

为什么 LC_CTYPE 会改变实际终端的输出,但对于 SSH 终端来说却没有必要?

答案1

要临时修复语言环境,您应该运行以下命令:

LC_ALL=C lsblk

或者,如果您在其他终端输出中也遇到此问题,您可能需要使用以下命令进行全局设置:

export LC_ALL=C

有关具体功能的详细信息LC_ALL=C,你可以查看问题

答案2

经过长时间的挖掘,我终于找到了答案!这可能是正确的方法。

通过改变永久修复:

/etc/default/console-setup

CHARMAP="iso-8859-15"
CODESET="guess"

CHARMAP="UTF-8"
CODESET="guess"

您还可以使用dpkg-reconfigure console-setup

更改后最好重新启动!

相关内容