1、关机和重启命令
安全关机方式:把当前文件系统上所有数据保存到磁盘上并关机或重启 shutdown
shutdown [OPTION]... TIME [MESSAGE]
-r 重启
-h 关机
-t 秒数 : 设定在切换至不同的runlevel之前, 警告和删除二讯号之间的延迟时间(秒)
-k 仅送出警告讯息文字, 但不是真的要 shutdown
-c 将已经正在 shutdown 的动作取消.
TIME:
now
+m m分钟后关机,+0表立即
hh:mm 下个hh:mm关机或重启
[root@Node3 src]# shutdown -r +10
Broadcast message from root@Node3
(/dev/pts/0) at 10:05 ...
The system is going down for reboot in 10 minutes!
^Cshutdown: Shutdown cancelled
[root@Node3 src]# shutdown -c
shutdown: Cannot find pid of running shutdown
[root@Node3 src]# shutdown -r +10 hello
Broadcast message from root@Node3
(/dev/pts/0) at 10:05 ...
The system is going down for reboot in 10 minutes!
hello
^Cshutdown: Shutdown cancelled poweroff 相当于shutdown -h now
halt 相当于shutdown -h now
init 0 相当于shutdown -h now
reboot 相当于shutdown -r now
init 6 相当于shutdown -r now
2、日期时间命令
先介绍几个概念
Atomic Clock: 原子钟
现在计算时间最准确的是使用原子震荡周期所计算的物理时钟(Atomic Clock),因此也被定义为标准时间(International Atomic Time) UTC(coordinated Universal Time):协和标准时间
就是利用 Atomic Clock 为基准定义出来的正确时间;
也叫世界统一时间、世界标准时间,国际协调时间。
硬件时钟:
硬件时钟是指嵌在主板上的特殊的电路, 它的存在就是平时我们关机之后还可以计算时间的原因
系统时钟:
就是操作系统的kernel所用来计算时间的时钟. 它从1970年1月1日00:00:00 UTC时间到目前为止秒数总和的值;时间戳
时区:
为什么会将地球分为不同时区呢?因为地球总是自西向东自转,东边总比西边先看到太阳,东边的时间也总比西边的早。东边时刻与西边时刻的差值不仅要以时计,而且还要以分和秒来计算。
整个地球分为二十四时区,每个时区都有自己的本地时间。在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC, Universal Time Coordinated)。
UTC与格林尼治平均时(GMT, Greenwich Mean Time)一样,都与英国伦敦的本地时相同。
关于时间的几个标准,如下所示,具体可以Google、Baidu搜索一下。
CST:中国标准时间(China Standard Time),这个解释可能是针对RedHat Linux。
UTC:协调世界时,又称世界标准时间,简称UTC,从英文国际时间/法文协调时间”Universal Time/Temps Cordonné”而来。中国大陆、香港、澳门、台湾、蒙古国、新加坡、马来西亚、菲律宾、澳洲西部的时间与UTC的时差均为+8,也就是UTC+8。
GMT:格林尼治标准时间(旧译格林威治平均时间或格林威治标准时间;英语:Greenwich Mean Time,GMT)是指位于英国伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线。
在中国,正确的时区应为 CST(Chinese Standard Time),也就是我们通常所说的北京时间.
那么中国当地的时间晚上8点的话,我们可以有下面两种表示方式
20:00 CST
12:00 UTC
因为中国处在UTC+8时区,依次类推,在UTC标准时间,就是12:00了.
不管通过任何渠道我们想要同步系统的时间,通常提供方只会给出UTC+0的时间值而不会提供时区(因为它不知道你在哪里).所以当我们设置系统时间的时候,设置好时区是首先要做的工作
查看当前时区:
[root@Node3 ~]# date
2016年 11月 28日 星期一 10:54:47 CST
[root@Node3 ~]# date -R
Mon, 28 Nov 2016 10:54:50 +0800
[root@Node3 ~]# cat /etc/sysconfig/clock
ZONE="Asia/Shanghai" 设置当前时区:
1)通过修改/etc/localtime文件
查看当前相应时区的时间:
[root@Node3 ~]# date -u
2016年 11月 28日 星期一 03:32:04 UTC
[root@Node3 ~]# zdump utc
utc Mon Nov 28 03:17:00 2016 utc
[root@Node3 ~]# zdump cst
cst Mon Nov 28 03:17:03 2016 cst
[root@Node3 ~]# zdump CST
CST Mon Nov 28 03:17:14 2016 CST
[root@Node3 ~]# zdump gmt
gmt Mon Nov 28 03:17:55 2016 gmt
[root@Node3 ~]# zdump utc-8
utc-8 Mon Nov 28 11:19:16 2016 utc
[root@Node3 ~]# zdump Asia
Asia Mon Nov 28 03:20:42 2016 Asia
[root@Node3 ~]# zdump Asia/Shanghai
Asia/Shanghai Mon Nov 28 11:20:49 2016 CST
[root@Node3 ~]# zdump America
America Mon Nov 28 03:21:38 2016 America
zdump: warning: zone "America" abbreviation "America" has more than 6 alphabetics
[root@Node3 ~]# zdump America/New_York
America/New_York Sun Nov 27 22:21:46 2016 EST 上面为什么CST时区表示的时间也和本地时间不同呢?
CST:CST同时可以代表如下 4 个不同的时区:
Central Standard Time (USA) UT-6:00
Central Standard Time (Australia) UT+9:30
China Standard Time UT+8:00
Cuba Standard Time UT-4:00
可见,CST可以同时表示美国,澳大利亚,中国,古巴四个国家的标准时间。
EDT - Eastern Daylight Time 东部夏令时间
CDT - Central Daylight Time 中部夏令时间
date
显示或设置时间、日期
date [OPTION]... [+FORMAT] #格式化显示时间日期
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] #设置时间日期
utc 一般不设置 月 日 时 分 2位数年或4位数年 .秒
显示当前系统时间、日期:
[root@Node3 ~]# date
2016年 11月 28日 星期一 10:26:54 CST
[root@Node3 ~]# date -d "20101010" #显示给定的时间
2010年 10月 10日 星期日 00:00:00 CST
date 命令的 -d 选项,该选项非常有用。使用这个功能强大的选项,通过将日期作为引号括起来的参数提供,您可以快速地查明一个特定的日期。-d 选项可以告诉您,相对于当前日期若干天的究竟是哪一天,从现在开始的若干天或若干星期以后,或者以前(过去)。通过将这个相对偏移使用引号括起来,作为 -d 选项的参数,就可以完成这项任务。
具体说明如下:
date -d "nov 22" 今年的 11 月 22 日是星期三
date -d '2 weeks' 2周后的日期
date -d 'next monday' (下周一的日期)
date -d next-day +%Y%m%d(明天的日期)或者:date -d tomorrow +%Y%m%d
date -d last-day +%Y%m%d(昨天的日期) 或者:date -d yesterday +%Y%m%d
date -d last-month +%Y%m(上个月是几月)
date -d next-month +%Y%m(下个月是几月)
使用 ago 指令,您可以得到过去的日期:
date -d '30 days ago' (30天前的日期)
使用负数以得到相反的日期:
date -d 'dec 14 -2 weeks' (相对:dec 14这个日期的两周前的日期)
date -d '-100 days' (100天以前的日期)
date -d '50 days'(50天后的日期)
设置当前系统的时间、日期:
[root@Node3 ~]# date
2016年 11月 28日 星期一 11:28:41 CST
[root@Node3 ~]# date 01010101
2016年 01月 01日 星期五 01:01:00 CST
[root@Node3 ~]# date
2016年 01月 01日 星期五 01:01:06 CST
[root@Node3 ~]# date 020210102011.55
2011年 02月 02日 星期三 10:10:55 CST
[root@Node3 ~]# date
2011年 02月 02日 星期三 10:10:55 CST #设置的太离谱会报错
[root@Node3 ~]# date 020210103011.55
date: 无法设置日期: 无效的参数
3011年 02月 02日 星期六 10:10:55 CST
[root@Node3 ~]# date 020210101911.55
date: 无法设置日期: 无效的参数 date 无法只修改时间,至少要加上月,日才行
hash -r:情况缓存
hash -d NAME:清除指定名称对应的缓存
[root@Node3 ~]# hash -r
[root@Node3 ~]# hash
hash: hash table empty
[root@Node3 ~]# date
2016年 11月 28日 星期一 13:58:06 CST
[root@Node3 ~]# hash
hitscommand #缓存命中的次数 路径路径
1/bin/date
[root@Node3 ~]# date
2016年 11月 28日 星期一 13:58:14 CST
[root@Node3 ~]# hash
hitscommand
2/bin/date
[root@Node3 ~]# hash -d date
[root@Node3 ~]# hash
hash: hash table empty 4、which 和 whereis
[root@Node3 ~]# type ls
ls is aliased to `ls --color=auto'
[root@Node3 ~]# type cd
cd is a shell builtin
[root@Node3 ~]# which cd
/usr/bin/which: no cd in (/usr/lib64/qt-3.3/bin:/root/.pyenv/plugins/pyenv-virtualenv/shims:/root/.pyenv/shims:~/.pyenv/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
[root@Node3 ~]# type date
date is hashed (/bin/date)
[root@Node3 ~]# type ifconfig
ifconfig is /sbin/ifconfig which 显示应用程序文件的位置
[root@Node3 ~]# which date
/bin/date
[root@Node3 ~]# which cd
/usr/bin/which: no cd in (/usr/lib64/qt-3.3/bin:/root/.pyenv/plugins/pyenv-virtualenv/shims:/root/.pyenv/shims:~/.pyenv/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
[root@Node3 ~]# which passwd
/usr/bin/passwd
[root@Node3 ~]# which inittab
/usr/bin/which: no inittab in (/usr/lib64/qt-3.3/bin:/root/.pyenv/plugins/pyenv-virtualenv/shims:/root/.pyenv/shims:~/.pyenv/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
[root@Node3 ~]# which /etc/inittab #只能查找命令的文件位置
/usr/bin/which: no inittab in (/etc) whereis
显示指定命令或文件的帮助信息
[root@Node3 ~]# whereis cd
cd: /usr/share/man/man1/cd.1.gz /usr/share/man/man1p/cd.1p.gz
[root@Node3 ~]# whereis ifconfig
ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz
[root@Node3 ~]# whereis passwd
passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man5/passwd.5.gz /usr/share/man/man1/passwd.1.gz
[root@Node3 ~]# whereis inittab
inittab: /etc/inittab /usr/share/man/man5/inittab.5.gz
[root@Node3 ~]# whereis tab
tab: 5、file 查看文件的内容格式
[root@Node3 ~]# file /etc/inittab
/etc/inittab: ASCII English text
[root@Node3 ~]# file /tmp/src/test.sh
/tmp/src/test.sh: ASCII text
[root@Node3 ~]# file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
[root@Node3 ~]# file inittab
inittab: cannot open `inittab' (No such file or directory)
[root@Node3 ~]# file ls
ls: cannot open `ls' (No such file or directory) 6、echo命令