我正在寻找单行终端命令来:
- 检查我当前的区域格式或
- 将区域格式设置为美国英语。
目前,要更改此设置,我必须进入“设置”->“语言支持”->“区域格式”
(发行版:Ubuntu 14.04 LTS,最好也能在 16.04 LTS 上运行)
答案1
区域格式改变以下变量:
LC_NUMERIC
LC_TIME
LC_MONETARY
您可以使用locale
来检查当前设置的格式。
ron@ron:~$ locale
LANG=en_US
LANGUAGE=en_US
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=
如果你想查看系统中所有可用的语言环境,你可以使用:
ron@ron:~$ locale -a
C
C.UTF-8
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
例如,要将日期格式更改为美国格式,您可以使用:
LC_TIME=en_US.UTF-8
要永久更改它:
sudo update-locale LC_TIME=en_US.UTF-8
如果您愿意,您也可以手动编辑文件,/etc/default/locale
而不是update-locale
。更改将在您下次登录时应用。
參閱区域设置 - 社区帮助 Wiki了解更多详细信息。man 5 locale
您是否有更多选项来查找并调整任何格式。
答案2
此命令以与语言支持相同的方式将区域格式设置为 en_US.UTF-8:
dbus-send --print-reply --system --dest=org.freedesktop.Accounts /org/freedesktop/Accounts/User$UID org.freedesktop.Accounts.User.SetFormatsLocale string:'en_US.UTF-8'
它会更新 accountsservice 和文件中的用户设置~/.pam_environment
。
/etc/default/locale
仅当您单击应用全系统按钮。
还没有弄清楚检查当前格式的相应命令。
忍不住想知道你为什么要这么做。在 Ubuntu 桌面上手动调整这些设置通常不是一个好主意。语言支持做了正确的事情。
答案3
您可以使用以下命令检查 shell 中的 LANGUAGE 变量:
echo $LANGUAGE
我的系统运行 GB English 的输出是:
en_GB:en