X

02-系统基本设置

  • 日期和时间
  • 系统区域(语系)设置
  • 键盘布局

日期时间设置

1)显示/设置当前日期和时间

显示/设置当前日期时间使用date指令完成, 以下是date的使用说明:

date按指定格式显示或设置日期date [OPTION] [+FORMAT] #按指定格式显示日期时间date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] #按指定格式设置日期时间OPTION:-d,--date = STRING 将STRING日期时间(可以是[+FORMAT]或@unix_time或string<如"2 days ago">)转换为标准的日期时间格式或转换为[+FORMAT]格式显示 这里的STRING是一种大多数形式的人类可读日期字符串,例如“Sun, 29 Feb 2004 16:21:42 -0800”或“2004-02-29 16:21:42”,甚至是“next Thursday”。 日期字符串可能包含指示日历date,time of day,time zone,day of week,relative time,relative date和numbers等。 空字符串表示一天的开始。日期字符串格式比此处容易记录的要复杂得多,但在info文档中有完整的说明注意: [+FORMAT]和-d STRING放在一起使用, 表示将-d指定的时间字符串按照[+FORMAT]指定的格式或标准日期时间格式(不指定[+FORMAT时])显示-s,-set = STRING 设置时间,由STRING描述-r,--reference = FILE 显示FILE文件的mtime-u,--utc 显示或设置协调世界时间(UTC)FORMAT(下面是几个常用的):%F(标准日期格式)%T(标准时间格式)%s(Unix时间, 纪元时, 时间戳)%N(纳秒)date -d @1552018856 [+FORMAT] # 将纪元时转换为标准日期时间其中-d使用示例:date -d "1 day" #后一天date -d "-1 day" #前一天date --date='2 days ago'date -d "1 month" +%Fdate --date='3 months 1 day'date -d "2 hours"date -d "1 minutes"date --date='25 Dec' +%jdate --date='2000-01-01 UTC' +%sdate -d '1970-01-01 UTC 946684800 seconds' +"%Y-%m-%d %T %z"date -d @946684800 +"%F %T %z"date --date='2012-06-30 23:59:59 +0000' +%s

显示当前日期时间:

[root@node-1 ~]# date # 按照默认格式显示当前系统日期时间Wed Jul 20 05:52:51 CST 2022[root@node-1 ~]# date +"%F %T" # 按照指定格式显示日期时间2022-07-20 05:52:57[root@node-1 ~]# date +%s # 显示当前时间戳1658267591[root@node-1 ~]# date -d @1658267591 +"%F %T" # 按指定的格式将时间戳转换为日期时间2022-07-20 05:53:11

显示更多详细信息/时区设置:

[root@node-1 ~]# timedatectl status Local time: Wed 2022-07-20 22:00:19 CST Universal time: Wed 2022-07-20 14:00:19 UTC RTC time: Tue 2022-07-19 22:03:49 Time zone: Asia/Shanghai (CST, +0800)System clock synchronized: no NTP service: n/a RTC in local TZ: no [root@node-1 ~]# timedatectl list-timezones # 列出所有可用时区 [root@node-1 ~]# timedatectl list-timezones|grep Singapore Asia/Singapore[root@node-1 ~]# timedatectl set-timezone Asia/Singapore # 设置时区为新加坡[root@node-1 ~]# timedatectl status Local time: Wed 2022-07-20 22:08:42 +08 Universal time: Wed 2022-07-20 14:08:42 UTC RTC time: Tue 2022-07-19 22:12:12 Time zone: Asia/Singapore (+08, +0800) # System clock synchronized: no NTP service: n/a RTC in local TZ: no[root@node-1 ~]# timedatectl set-timezone Asia/Shanghai # 恢复中国时区[root@node-1 ~]# timedatectl status Local time: Wed 2022-07-20 22:09:33 CST Universal time: Wed 2022-07-20 14:09:33 UTC RTC time: Tue 2022-07-19 22:13:03 Time zone: Asia/Shanghai (CST, +0800)System clock synchronized: no NTP service: n/a RTC in local TZ: no

设置当前系统日期时间:

[root@node-1 ~]# date -s "2022-07-20 21:57:00"Wed Jul 20 21:57:00 CST 2022[root@node-1 ~]# dateWed Jul 20 21:57:02 CST 2022设置系统语系

系统级别的语系设置保存在/etc/locale.conf文件中,该文件在引导时由systemd守护进程读取。每个服务或用户都会继承在/etc/locale.conf中配置的locale设置,单独程序或个人用户可以单独覆盖。

[root@node-1 ~]# cat /etc/locale.conf LANG="en_US.UTF-8"[root@node-1 ~]#

列出所有可用语系:

[root@node-1 ~]# localectl list-locales | headC.utf8aa_DJaa_DJ.iso88591aa_DJ.utf8aa_ERaa_ER.utf8aa_ER.utf8@saahoaa_ER@saahoaa_ETaa_ET.utf8

查看/设置语系:

[root@node-1 ~]# echo $LANGen_US.UTF-8[root@node-1 ~]# localectl status System Locale: LANG=en_US.UTF-8 VC Keymap: us X11 Layout: us[root@node-1 ~]# locale # 显示当前系统的字符集设定情况LANG=en_US.UTF-8LC_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= [root@node-1 ~]# localectl list-locales | grep zh_CNzh_CNzh_CN.gb18030zh_CN.gb2312zh_CN.gbkzh_CN.utf8[root@node-1 ~]# localectl list-locales | grep en_USen_USen_US.iso88591en_US.iso885915en_US.utf8en_US.utf8@ampm.UTF-8en_US@ampm.UTF-8[root@node-1 ~]# localectl set-locale zh_CN.utf8 # 设置语系为中文[root@node-1 ~]# localectl status System Locale: LANG=zh_CN.utf8 # VC Keymap: us X11 Layout: us# 退出会话重新登录执行如下指令[root@node-1 ~]# echo $LANG zh_CN.utf8[root@node-1 ~]# localeLANG=zh_CN.utf8LC_CTYPE="zh_CN.utf8"LC_NUMERIC="zh_CN.utf8"LC_TIME="zh_CN.utf8"LC_COLLATE="zh_CN.utf8"LC_MONETARY="zh_CN.utf8"LC_MESSAGES="zh_CN.utf8"LC_PAPER="zh_CN.utf8"LC_NAME="zh_CN.utf8"LC_ADDRESS="zh_CN.utf8"LC_TELEPHONE="zh_CN.utf8"LC_MEASUREMENT="zh_CN.utf8"LC_IDENTIFICATION="zh_CN.utf8"LC_ALL= [root@node-1 ~]# localectl set-locale en_US.utf8 # 恢复为默认的英文语系[root@node-1 ~]# localectl status System Locale: LANG=en_US.utf8 VC Keymap: us X11 Layout: us

语系的设置也可通过设置LANG和LC_ALL这两个变量来实现, 命令行中通常使用这两个环境变量来实现临时设置

设置键盘布局

键盘布局一般使用默认us即可, 如果系统不是默认的us键盘布局, 可使用如下指令查看/设置:

[root@node-1 ~]# localectl list-keymaps| head # 列出所有的键盘布局ANSI-dvorakalal-plisiamiga-deamiga-usapplkeyatat-macat-nodeadkeysat-sundeadkeys[root@node-1 ~]# localectl status System Locale: LANG=en_US.utf8 VC Keymap: us # 当前键盘布局 X11 Layout: us[root@node-1 ~]# localectl set-keymap al # 设置[root@node-1 ~]# localectl status System Locale: LANG=en_US.utf8 VC Keymap: al # X11 Layout: us[root@node-1 ~]# localectl set-keymap us # 恢复默认[root@node-1 ~]# localectl status System Locale: LANG=en_US.utf8 VC Keymap: us X11 Layout: us X11 Model: pc105+inet X11 Options: terminate:ctrl_alt_bksp