Ubuntu中文支持,及中文乱码问题
状况:所用的Linux系统不支持中文,遇见中文就zz了。ORZ…
目标:使系统/服务器支持中文,能够正常显示。
首先,安装中文支持包language-pack-zh-hans:
sudo apt-get install language-pack-zh-hans
然后,修改/etc/environment(在文件的末尾追加),可用命令 vi /etc/environment
LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh:en_US:en"
再修改/var/lib/locales/supported.d/local(没有这个文件就新建,同样在末尾追加),可用命令 vi /var/lib/locales/supported.d/local
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
zh_CN.GBK GBK
zh_CN GB2312
最后,执行命令:
sudo locale-gen
对于中文乱码是空格的情况,安装中文字体解决。
sudo apt-get install fonts-droid-fallback ttf-wqy-zenhei ttf-wqy-microhei fonts-arphic-ukai fonts-arphic-uming
以上,问题解决,中文显示正常。:)
如何设置或更改时区在Ubuntu 20.04
timedatectl
是一个命令行程序,可让您查看和更改系统的时间和日期。它在所有基于现代systemd的Linux系统上都可用,包括Ubuntu 20.04。
在调用timedatectl
命令不使用任何参数时,timedatectl
将打印系统的时区。如果安装系统时没有设置时区。系统将使用默认UTC时区。
以下timedatectl命令将会打印系统的时区和所在时区的当前时间。并显示系统时钟服务同步以及NTP服务的状态:
timedatectl
上面的timedatectl
命令输出,可以注意到系统使用的UTC时区。如果这与你所在的时区不一致。可以继续使用timedatectl
修改系统时区。
更改时区
更改时区之前,您需要找出与你当前时区匹配的时区的长名称。长时区的名称使用地区/城市
格式作为命名。
如你不知道你所处位置的时区长名称,可以通过使用timedatectl
命令的list-timezones
选项列出全世界所有可用的时区。
通常timedatectl
命令会打印所有时区。我们将timedatectl
列出的时区名称通过管道传递给grep命令过滤时区名称。
在本教程中,我们将使用亚洲/上海
的时区作为系统的时区。我将大概知道长时区的名称中将包含shanghai
的字符。此时我么使用shanghai
作为grep
的关键词过滤即可找到上海的时区。
以下timedatectl
命令打印所有时区,然后通过管道传递grep命令不区分大小写搜索包含括shang
关键词的时区:
timedatectl list-timezones | grep -i shang
该命令将打印以下输出:
Asia/Shanghai
现在,已经找到所在位置的时区长名称。
我们就可以使用timedatectl
的set-timezone
选项设置系统的时区,并在set-timezone
选项之后传递长时区名称。
请以root或具有sudo权限的用户运行以下timedatectl
命令设置系统的时区为Asia/Shanghai
:
sudo timedatectl set-timezone Asia/Shanghai
上面的timedatectl
命令将不会产生任何输出。至此,我们已将系统时区设置为Asia/Shanghai
。如你需要验证系统时区是否设置成功。
再次不带任何选项参数调用timedatectl
命令,打印系统当前设置的时区即可:
timedatectl
软链接修改系统时区
Linux系统使用/etc/localtime
文件存储着系统的时区,它是一个软链接/符号链接文件。它指向/usr/share/zoneinfo/
目录以及子目录下的时区文件。
这些时区文件以二进制的存储着时区的信息。当应用程序需要用户展示时区时。应用程序将读取/etc/localtime
最终指向的二进制时区文件。
因此,我们还可以通过修改/etc/localtime
符号链接最终指向的二进制时区文件来配置系统的时区。也可以使用ls
命令查看当前时区。
以ls命令将打印/etc/localtime
所有信息,你会看到/etc/localtime
文件的类型是符号链接,并指向/usr/share/zoneinfo/Hongkong
。
ls -al /etc/localtime
lrwxrwxrwx 1 root root 33 Feb 22 11:26 /etc/localtime -> /usr/share/zoneinfo/Asia/Shanghai
现在已经确定了系统所有使用的时区。假如我们将时区更改为上海。可使用ln命令直接改变/etc/localtime
指向的二进制时区文件修改系统时区。
如你不确定所在位置的时区名称,可使用find . -iname "你时区关键字*"
命令搜索时区名称的关键字,i
表示不区分大小写。
find
命令将列出所有可能包含时区名称的关键字的二进制时区。这些文件都可用于使用ln
命令设置系统的时区。
以下ln
命令修改/创建文件/usr/share/zoneinfo/Asia/Shanghai
到/etc/localtime
的软链接:
sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
如果如果你需要验证系统时区是否成功修改或者设置。可使用date
命令打印当前系统的时间。当时区发生变化,date
命令时间也将会更改。
以下date命令将会打印系统的当前时间:
date