命令行更改linux时区
1. 要点
主要涉及工具 tzselect、timedatectl。
涉及文件 /etc/localtime,这是一个软连接文件。
tzselect 只是帮我们把选择的时区显示出来,并不会实际生效,他仅仅告诉我们怎么样去设置环境变量TZ,如果想要永久更改时区,按tzselect命令提示信息,在.profile或者 /etc/profile 中设置正确的 TZ 环境变量并导出。
timedatectl命令可以查询和更改系统时钟和设置,你可以使用此命令来设置或更改当前的日期,时间和时区,或实现与远程NTP服务器的自动系统时钟同步。
2. 步骤
2.1 使用 timedatectl
先来显示下当前时区状态,这个跟 /etc/localtime 的软连接有关
> timedatectl
我们可以使用如下命令查看当前所有的时区
> timedatectl list-timezones
他罗列的是 /usr/share/zoneinfo 文件夹下的文件
这里边没有Beijing,有上海,设置本地时区
> timedatectl set-timezone "Asia/Shanghai"
此时我们查看 /etc/localtime 软连接
/etc/timezone 里的内容保存的是我们输入的字符串。
此时,桌面系统显示的时间也立即的更改。
2.2 使用 tzselect
> tzselect
直接按提示操作
按照提示,我们还需要在 .profile 中添加一行,其实还可以在 /etc/profile 中添加一行。这行内容是
TZ='Asia/Shanhai'; export TZ
并需要手动更改软连接,和timezone文件
> sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
> vi timezone
> ...
更新了软连接后,桌面系统会立即更改显示的时间。
> source /etc/profile
3. 总结
看来,timedatectl 更改时区简单些。