系统语言
系统语言中文英文切换,localectl status 用于查看和配置系统的区域设置状态,而 locale 用于查看和设置系统的区域设置环境变量。
显示当前语言环境状态
代码语言:javascript复制localectl status
locale
- System Locale(系统区域设置):LANG=zh_CN.utf8,表示系统的默认语言为简体中文(Chinese, China),使用的字符编码为UTF-8。
- VC Keymap(虚拟控制台键盘映射):us,表示在虚拟控制台(即非图形界面下)使用的键盘布局为美式英语(US)。
- X11 Layout(X11键盘布局):us,表示在图形界面下(X11环境)使用的键盘布局为美式英语(US)。
查看LANG语言环境变量
代码语言:javascript复制echo $LANG
en_US.UTF-8
列出可用的语言环境
代码语言:javascript复制localectl list-locales |grep zh
设置语言环境
编辑/etc/locale.conf文件
代码语言:javascript复制vi /etc/locale.conf
#中文
#LANG=zh_CN.UTF-8
#英文
#LANG=en_US.UTF-8
或
简体中文语言环境
代码语言:javascript复制localectl set-locale LANG=zh_CN.UTF-8
简体英文语言环境
代码语言:javascript复制localectl set-locale LANG=en_US.UTF-8
加载语言环境
代码语言:javascript复制source /etc/locale.conf
时区、时钟设置
显示当前的日期和时间
代码语言:javascript复制timedatectl
timedatectl 参数介绍
- Local time:本地时间。
- Universal time:世界标准时间。
- RTC time:Real Time Clock,硬件时钟,主板上由电池供电的BIOS时间,hwclock -r可查看。
- CST:中国标准时间,GMT 8=UTC 8=CST。
- UTC:协调世界时, 世界标准时间。原子时为基础, 非常准确。约等于GMT。
- GMT:格林尼治标准时间。UTC是根据原子钟来计算时间,而GMT是根据地球的自转和公转来计算时间。UTC是现在用的时间标准,GMT是老的时间计量标准。UTC更加精确,由于现在世界上最精确的原子钟50亿年才会误差1秒,可以说非常精确。
- Time zone:时区。
- System clock synchronized:系统时钟同步状态(yes表示系统时钟已同步)。
- NTP service:NTP时钟同步服务。
- RTC in local TZ:no表示硬件时钟设置为协调世界时(UTC),yes表示硬件时钟设置为本地时间。
修改系统时区
显示系统可用时区
代码语言:javascript复制timedatectl list-timezones | grep Asia
修改当前的时区为"shanghai"
代码语言:javascript复制timedatectl set-timezone Asia/Shanghai
设置为时间标准时间时区
代码语言:javascript复制timedatectl set-timezone UTC
设置时间
设置日期时间
代码语言:javascript复制timedatectl set-time "YYYY-MM-DD HH:MM:SS"
设置时间设置日期
代码语言:javascript复制timedatectl set-time "YYYY-MM-DD"
注意: 如果ntp时间同步为true时无法修改时间设定
时钟服务器进行时间同步
启用NTP时间同步
代码语言:javascript复制timedatectl set-ntp true
禁用NTP时间同步
代码语言:javascript复制timedatectl set-ntp false
硬件时钟和系统时钟
Linux将时钟分为系统时钟(System Clock)和硬件时钟(Real Time Clock,RTC)两种。系统时间是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的主板硬件时钟,这个时钟可以在BIOS的"Standard BIOS Feture"项中进行设置。
当Linux启动时,硬件时钟会去读取系统时钟的设置,然后系统时钟就会独立于硬件运作。从Linux启动过程来看,系统时钟和硬件时钟不会发生冲突,系统中的所有命令(包括函数)都是采用的系统时钟。不仅如此,系统时钟和硬件时钟还可以采用异步方式,即系统时间和硬件时间可以不同。
显示日期和时间
显示当前硬件的日期和时间
代码语言:javascript复制hwclock
hwclock 同步硬件时钟
hwclock用来进行硬件的时钟设置(RTC,Real Time Clock)。当前系统时间写入硬件时钟
代码语言:javascript复制hwclock -w
或
系统时钟(系统时间)视为本地时间写入硬件时钟(RTC:Real-time Clock)
代码语言:javascript复制timedatectl set-local-rtc 1
系统时钟(系统时间)视为协调世界时(UTC)写入硬件时钟(RTC:Real-time Clock)
代码语言:javascript复制timedatectl set-local-rtc 0
chrony 时钟
chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软件。它能让计算机保持系统时钟与时钟服务器(NTP)同步,让计算机保持精确的时间,chrony也可以作为服务端软件为其他计算机提供时间同步服务。
chronyd 官方文档
https://chrony.tuxfamily.org/documentation.html
安装 chronyd
代码语言:javascript复制dnf install chronyd
chronyd 配置文件
vim /etc/chrony.conf
代码语言:javascript复制pool ntp.aliyun.com iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
allow 192.168.0.0/16
local stratum 10
keyfile /etc/chrony.keys
logdir /var/log/chrony
启动chronyd服务
代码语言:javascript复制systemctl start chronyd && systemctl enable chronyd
chronyd 常用命令
代码语言:javascript复制查看 ntp_servers
chronyc sources -v
查看 ntp_servers 状态
chronyc sourcestats -v
查看 ntp_servers 是否在线
chronyc activity -v
查看 ntp 详细信息
chronyc tracking -v
强制同步下系统时钟
chronyc -a makestep
作为时钟服务器的 chrony 同步的节点列表
代码语言:javascript复制chronyc clients
chronyd 配置文件介绍
- server <服务器地址> [options]: 指定要与之同步的时间服务器的地址。可以使用多个 server 参数来指定多个时间服务器。
- pool <服务器地址> [options]: 类似于 server 参数,但它指定的是时间服务器的服务器池地址。chronyd 将从该服务器池中选择一个服务器进行同步。
- driftfile <文件路径>: 指定用于记录系统时钟漂移的文件的路径。chronyd 使用该文件来调整系统时钟的频率。
- log <文件路径>: 指定 chronyd 的日志文件的路径。
- allow <网络地址>: 指定允许与 chronyd 进行通信的网络地址。可以使用 CIDR 格式表示一个网络。允许多个 allow 参数。
- deny <网络地址>: 指定禁止与 chronyd 进行通信的网络地址。可以使用 CIDR 格式表示一个网络。允许多个 deny 参数。
- maxdistance <秒数>: 指定 chronyd 与时间服务器之间的最大时间偏差。如果时间偏差超过此参数指定的值,chronyd 将不会同步时间。
- makestep <步长>: 如果时间偏差超过 maxdistance 参数指定的值,makestep 参数指定了一次性调整系统时钟的步长。"makestep 1.0 3" 是指在时间偏差超过 maxdistance 参数指定的阈值时,chronyd 以每秒调整 1.0 秒的步长来调整系统时钟,连续调整 3 次。
- rtcsync 当"rtcsync"指令启用时,chronyd会通过与内核时钟进行频繁的交互,以确保系统时钟与硬件时钟保持同步。