# 基础配置

设置语言环境

您可以通过localectl修改系统的语言环境,对应的参数设置保存在/etc/locale.conf文件中。这些参数会在系统启动过程中被systemd的守护进程读取。

显示当前语言环境状态

显示当前语言环境,命令如下:

  1. $ localectl status

例如显示系统当前的设置,命令和输出如下:

  1. $ localectl status
  2. System Locale: LANG=zh_CN.UTF-8
  3. VC Keymap: cn
  4. X11 Layout: cn

列出可用的语言环境

显示当前可用的语言环境,命令如下:

  1. $ localectl list-locales

例如显示当前系统中所有可用的中文环境,命令和输出如下:

  1. $ localectl list-locales | grep zh
  2. zh_CN.UTF-8

设置语言环境

要设置语言环境,在root权限下执行如下命令,其中 locale 是您要设置的语言类型,取值范围可通过localectl list-locales获取,请根据实际情况修改。

  1. # localectl set-locale LANG=locale

例如设置为简体中文语言环境,在root权限下执行如下命令:

  1. # localectl set-locale LANG=zh_CN.UTF-8

基础配置 - 图1 说明:
修改后需要重新登录或者在root权限下执行source /etc/locale.conf命令刷新配置文件,使修改生效。

设置键盘

您可以通过localectl修改系统的键盘设置,对应的参数设置保存在/etc/locale.conf文件中。这些参数,会在系统启动的早期被systemd的守护进程读取。

显示当前设置

显示当前键盘设置,命令如下:

  1. $ localectl status

例如显示系统当前的设置,命令和输出如下:

  1. $ localectl status
  2. System Locale: LANG=zh_CN.UTF-8
  3. VC Keymap: cn
  4. X11 Layout: cn

列出可用的键盘布局

显示当前可用的键盘布局,命令如下:

  1. $ localectl list-keymaps

例如显示系统当前的中文键盘布局,命令和输出如下:

  1. $ localectl list-keymaps | grep cn
  2. cn

设置键盘布局

设置键盘布局,在root权限下执行如下命令,其中 map 是您想要设置的键盘类型,取值范围可通过localectl list-keymaps获取,请根据实际情况修改:

  1. # localectl set-keymap map

此时设置的键盘布局同样也会应用到图形界面中。

设置完成后,查看当前状态:

  1. $ localectl status
  2. System Locale: LANG=zh_CN.UTF-8
  3. VC Keymap: cn
  4. X11 Layout: us

设置日期和时间

本节介绍如何通过timedatectl、date、hwclock命令来设置系统的日期、时间和时区等。

使用timedatectl命令设置

显示日期和时间

显示当前的日期和时间,命令如下:

  1. $ timedatectl

例如显示系统当前的日期和时间,命令和输出如下:

  1. $ timedatectl
  2. Local time: Mon 2019-09-30 04:05:00 EDT
  3. Universal time: Mon 2019-09-30 08:05:00 UTC
  4. RTC time: Mon 2019-09-30 08:05:00
  5. Time zone: America/New_York (EDT, -0400)
  6. System clock synchronized: no
  7. NTP service: inactive
  8. RTC in local TZ: no

通过远程服务器进行时间同步

您可以启用NTP远程服务器进行系统时钟的自动同步。是否启用NTP,可在root权限下执行如下命令进行设置。其中 boolean 可取值yes和no,分别表示启用和不启用NTP进行系统时钟自动同步,请根据实际情况修改。

基础配置 - 图2 说明:
若启用了NTP远程服务器进行系统时钟自动同步,则不能手动修改日期和时间。若需要手动修改日期或时间,则需确保已经关闭NTP系统时钟自动同步。可执行timedatectl set-ntp no命令进行关闭。

  1. # timedatectl set-ntp boolean

例如开启自动远程时间同步,命令如下:

  1. # timedatectl set-ntp yes

修改日期

基础配置 - 图3 说明:
修改日期前,请确保已经关闭NTP系统时钟自动同步。

修改当前的日期,在root权限下执行如下命令,其中 YYYY 代表年份,MM 代表月份,DD 代表某天,请根据实际情况修改:

  1. # timedatectl set-time YYYY-MM-DD

例如修改当前的日期为2019年8月14号,命令如下:

  1. # timedatectl set-time '2019-08-14'

修改时间

基础配置 - 图4 说明:
修改时间前,请确保已经关闭NTP系统时钟自动同步。

修改当前的时间,在root权限下执行如下命令,其中 HH 代表小时,MM 代表分钟,SS 代表秒,请根据实际情况修改:

  1. # timedatectl set-time HH:MM:SS

例如修改当前的时间为15点57分24秒,命令如下:

  1. # timedatectl set-time 15:57:24

修改时区

显示当前可用时区,命令如下:

  1. $ timedatectl list-timezones

要修改当前的时区,在root权限下执行如下命令,其中 time_zone 是您想要设置的时区,请根据实际情况修改:

  1. # timedatectl set-timezone time_zone

例如修改当前的时区,首先查询所在地域的可用时区,此处以Asia为例:

  1. # timedatectl list-timezones | grep Asia
  2. Asia/Aden
  3. Asia/Almaty
  4. Asia/Amman
  5. Asia/Anadyr
  6. Asia/Aqtau
  7. Asia/Aqtobe
  8. Asia/Ashgabat
  9. Asia/Baghdad
  10. Asia/Bahrain
  11. ……
  12. Asia/Seoul
  13. Asia/Shanghai
  14. Asia/Singapore
  15. Asia/Srednekolymsk
  16. Asia/Taipei
  17. Asia/Tashkent
  18. Asia/Tbilisi
  19. Asia/Tehran
  20. Asia/Thimphu
  21. Asia/Tokyo

然后修改当前的时区为“Asia/Shanghai”,命令如下:

  1. # timedatectl set-timezone Asia/Shanghai

使用date命令设置

显示当前的日期和时间

显示当前的日期和时间,命令如下:

  1. $ date

默认情况下,date命令显示本地时间。要显示UTC时间,添加--utc或-u参数:

  1. $ date --utc

要自定义对应的输出信息格式,添加 +”format” 参数:

  1. $ date +"format"

表 1 参数说明

格式参数

说明

%H

小时以HH格式(例如 17)。

%M

分钟以MM格式(例如 37)。

%S

秒以SS格式(例如 25)。

%d

日期以DD格式(例如 15)。

%m

月份以MM格式(例如 07)。

%Y

年份以YYYY格式(例如 2019)。

%Z

时区缩写(例如CEST)。

%F

日期整体格式为YYYY-MM-DD(例如 2019-7-15),等同%Y-%m-%d。

%T

时间整体格式为HH:MM:SS(例如 18:30:25),等同%H:%M:%S。

实际使用示例如下:

  • 显示当前的日期和本地时间。

    1. $ date
    2. 2019 08 17 星期六 17:26:34 CST
  • 显示当前的日期和UTC时间。

    1. $ date --utc
    2. 2019 08 17 星期六 09:26:18 UTC
  • 自定义date命令的输出。

    1. $ date +"%Y-%m-%d %H:%M"
    2. 2019-08-17 17:24

修改时间

要修改当前的时间,添加--set或者-s参数。在root权限下执行如下命令,其中 HH 代表小时,MM 代表分钟,SS 代表秒,请根据实际情况修改:

  1. # date --set HH:MM:SS

默认情况下, date命令设置本地时间。要设置UTC时间,添加--utc或-u参数:

  1. # date --set HH:MM:SS --utc

例如修改当前的时间为23点26分00秒,在root权限下执行如下命令:

  1. # date --set 23:26:00

修改日期

修改当前的日期,添加--set或者-s参数。在root权限下执行如下命令,其中 YYYY 代表年份,MM 代表月份,DD 代表某天,请根据实际情况修改:

  1. # date --set YYYY-MM-DD

例如修改当前的日期为2019年11月2日,命令如下:

  1. # date --set 2019-11-02

使用hwclock命令设置

可以使用 hwclock 命令设置硬件时钟RTC (Real Time Clock) 。

硬件时钟和系统时钟

Linux 将时钟分为:

  • 系统时钟 (System Clock) :当前Linux Kernel中的时钟。
  • 硬件时钟 RTC:主板上由电池供电的主板硬件时钟,该时钟可以在BIOS的 “Standard BIOS Feature” 项中进行设置。

当Linux启动时,会读取硬件时钟,并根据硬件时间来设置系统时间。

显示日期和时间

显示当前硬件的日期和时间,在root权限下执行如下命令:

  1. # hwclock

例如显示当前硬件的日期和时间,命令和输出如下:

  1. # hwclock
  2. 2019-08-26 10:18:42.528948+08:00

设置日期和时间

修改当前硬件的日期和时间,在root权限下执行如下命令,其中 dd 表示日,mm 表示月份,yyyy 表示年份,HH 表示小时,MM 表示分钟,请根据实际情况修改:

  1. # hwclock --set --date "dd mm yyyy HH:MM"

例如修改当前的时间为2019年10月21日21点17分,命令如下:

  1. # hwclock --set --date "21 Oct 2019 21:17" --utc