/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)

在Linux环境中,尝试运行gnome-system-monitor时遇到了/bin/bash警告,提示无法改变LC_ALL为en_US.UTF-8的字符集,并且无法初始化服务器连接。这个问题导致gnome-system-monitor无法正常启动,并在登录时出现卡顿。解决方案是通过生成并配置en_US.UTF-8字符集,重新配置locale并更新环境变量。执行sudo locale-gen en_US.UTF-8,然后使用sudo dpkg-reconfigure locales更新,最后在/etc/default/locale中设置LC_ALL和LANG为en_US.UTF-8。完成这些步骤后,问题得到解决,用户可以正常登录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

执行gnome-system-monitor
出现

/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
No protocol specified
Unable to init server: Could not connect: Connection refused

(gnome-system-monitor:19721): Gtk-WARNING **: 09:59:53.872: cannot open display: :0

现象

在命令行界面输入命令会出现卡顿,
重启gnome后用户名,密码都正确,但是不能登录 .远程可以登录

解决思路

  1. 初步诊断是gnome出现问题
    重启
    … 没有效果
  2. 字符集错误
    本地化是指不同地区用户在键盘上输入不同语言的字符集。例如 en_US 表示美国英语字符集,因此只有正确设置了服务器的字符集,服务器才能理解用户的输入字符。setlocale 命令可以帮助用户来设置本地化字符集。
    出现以上问题是因为服务器无法理解 en_US.UTF-8 字符集,因此首先要在服务器上生成 en_US.UTF-8 字符集:
sudo locale-gen en_US.UTF-8

然后使用最新生成的字符集更新本地仓库:

sudo dpkg-reconfigure locales

最后更新 /etc/default/locale 文件,例如更新前的文件内容为:

LANG=C.UTF-8

更新后:

LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8

环境变量 LC_ALL 会覆写所有的本地化设置(在某些情况下 $LANGUAGE 不会被覆写),例如 LC_NAME, LC_ADDRESS 等等。设置 LC_ALL=en_US.UTF-8 表示所有的本地化设置都使用 en_US.UTF-8。
重新登录服务器,warning 警告不再出现,问题解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值