内容一:只显示最近一次开机时间
1.1 使用 top 命令
# top -bn1 | head -1
1.2 使用 who 命令
# who -b
1.3 使用 uptime 命令
# uptime
内容二:显示最近多次开机时间
# last reboot
# top -bn1 | head -1
# who -b
# uptime
# last reboot
# vim /root/12456.sh
创建以下内容:
#!/bin/bash
for i in {1..5}
do
echo $i
done
(补充:这里以创建 /etc/root/for.sh 脚本为例)
# vim /etc/systemd/system/12456.service
创建以下内容:
[Unit]
Description=12345
After=default.target
[Service]
Type=oneshot
ExecStart=/root/12456.sh
[Install]
WantedBy=default.target
(补充:这里以创建 /etc/systemd/system/12456.service 来管理 ExecStart=/root/12456.sh 为例)
# systemctl daemon-reload
# chmod u+x /etc/systemd/system/12456.service
# systemctl start 12456.service
# systemctl stop 12456.service
# systemctl restart 12456.service
# systemctl enable 12456.service
1) -eq 或者 ==,若两个数值存在且相等,则结果为真
2) -ne 或者 !=,若两个数值存在且不相等,则结果为真
3) -gt 或者 >,若两个数值存在且前一个数值大于后一个数值,则结果为真
4) -lt 或者 <,若两个数值存在且前一个数值小于后一个数值,则结果为真
5) -ge 或者 >=,若两个数值存在且前一个数值大于或等于后一个数值,则结果为真
6) -le 或者 <=,若两个数值存在且前一个数值小于或等于后一个数值,则结果为真
1) -z,如果字符串为空值,则结果为真
2) -n,如果字符串不为空值,则结果为真
3) == 或者 =,若两个字符串存在且一样,则结果为真
4) !=,若两个字符串存在且不一样,则结果为真
5) >,若两个字符串存在且前一个字符串大于后一个字符串(按数字顺序或字母数顺序进行比较,越靠后的值越大),则结果为真
6) <,若两个字符串存在且前一个字符串小于后一个字符串(按数字顺序或字母数顺序进行比较,越靠后的值越大),则结果为真
7) >,若两个字符串存在且前一个字符串的 ASCII 码大于后一个字符串的 ASCII 码(按数字顺序或字母数顺序进行比较,越靠后的值越大),则结果为真
8) \<,若两个字符串存在且前一个字符串的 ASCII 码大于后一个字符串的 ASCII 码(按数字顺序或字母数顺序进行比较,越靠后的值越大),则结果为真
1) -e,若文件或目录或链接存在,则结果为真
2) -d,若目录存在,则结果为真
3) -f,若文件存在,则结果为真
4) -L,若链接存在,则结果为真
5) -b,若块文件存在,则结果为真
6) -c,若字符型特殊文件存在,则结果为真
7) -s,若文件存在且里面有内容,则结果为真
8) -r,若文件且可读,则结果为真
9) -w,若文件且可写,则结果为真
10) -x,若文件且可执行,则结果为真
11) -nt,若两个文件存在且前一个文件比后一个文件新,则结果为真
12) -ot,若两个文件存在且前一个文件比后一个文件新,则结果为真
1) -a,和
2) -o,或
3) !,非
# [ 0 -ne 1 ]
# echo $?
0
(补充:这里以测试数字 0 是否不等于数字 1 为例)
# [ a == a ]
# echo $?
0
(补充:这里以测试字符串 a 是否等于字符串 a 为例)
# [ -f test.txt ]
# echo $?
0
(补充:这里以测试文件 test.txt 是否存在为例)
# a=1
# [ $a == 1 ]
# echo $?
0
(补充:这里以测试变量 a 是否等于数字 1 为例)
# a=1
# b=2
# c=1
# [ $a == $c -a $b == 2 ]
# echo $?
0
(补充:这里以测试变量 a 是否等于变量 c 并且变量 b 是否等于数字 2 为例)
# [ "`ls /tmp`" != "" ]
# echo $?
# 0
(补充:这里以测试 ls /tmp 命令的运行结果是否存在为例)
Variable=EternalCenter
# [ `echo $Variable | tr 'a-z' 'A-Z'` = "ETERNALCENTER" ]
# echo $?
# 0
(补充:这里以把 EternalCenter 转换成全部大写后再和 ETERNALCENTER 进行比较的案例)
1) -eq 或者 ==,若两个数值存在且相等,则结果为真
2) -ne 或者 !=,若两个数值存在且不相等,则结果为真
3) -gt 或者 >,若两个数值存在且前一个数值大于后一个数值,则结果为真
4) -lt 或者 <,若两个数值存在且前一个数值小于后一个数值,则结果为真
5) -ge 或者 >=,若两个数值存在且前一个数值大于或等于后一个数值,则结果为真
6) -le 或者 <=,若两个数值存在且前一个数值小于或等于后一个数值,则结果为真
1) -z,如果字符串为空值,则结果为真
2) -n,如果字符串不为空值,则结果为真
3) == 或者 =,若两个字符串存在且一样,则结果为真
4) !=,若两个字符串存在且不一样,则结果为真
5) >,若两个字符串存在且前一个字符串大于后一个字符串(按数字顺序或字母数顺序进行比较,越靠后的值越大),则结果为真
6) <,若两个字符串存在且前一个字符串小于后一个字符串(按数字顺序或字母数顺序进行比较,越靠后的值越大),则结果为真
1) -e,若文件或目录或链接存在,则结果为真
2) -d,若目录存在,则结果为真
3) -f,若文件存在,则结果为真
4) -L,若链接存在,则结果为真
5) -b,若块文件存在,则结果为真
6) -c,若字符型特殊文件存在,则结果为真
7) -s,若文件存在且里面有内容,则结果为真
8) -r,若文件且可读,则结果为真
9) -w,若文件且可写,则结果为真
10) -x,若文件且可执行,则结果为真
11) -nt,若两个文件存在且前一个文件比后一个文件新,则结果为真
12) -ot,若两个文件存在且前一个文件比后一个文件新,则结果为真
# test 0 -ne 1
# echo $?
0
(补充:这里以测试数字 0 是否不等于数字 1 为例)
# test a == a
# echo $?
0
(补充:这里以测试字符串 a 是否等于字符串 a 为例)
# test -f test.txt
# echo $?
0
(补充:这里以测试文件 test.txt 是否存在为例)
# a=1
# test $a == 1
# echo $?
0
(补充:这里以测试变量 a 是否等于数字 1 为例)
1) h 或者 headers 显示处于激活状态的邮件开头
2) f 或者 from 显示编号为 的邮件的标题
2) t 或者 type 显示编号为 的邮件
3) top 显示当前指针所指向的邮件头
4) n 或者 next 显示下一条邮件信息
5) e 编辑编号为 的邮件
6) d 或者 delete 删除编号为 的邮件
7) u 或者 undelete 取消删除编号为 的邮件
8) s 或者 save 追加信息到编号为 的邮件信息到 目录中并标记和保存
9) c 或者 copy 追加信息到编号为 的邮件信息到 目录中但不保存
10) w 或者 write 追加信息到编号为 的邮件信息到 文件中并保存附件
11) R 或者 Reply 回复编号为 的邮件的发件人
12) r 或者 reply 回复编号为 的邮件的发件人和所有收件人
13) m 或者 mail 回复编号为 的邮件,并回复多个联系人,多个收件人用空格分开 (需要 sendmail 软件支持此功能)
14) q 或者 quit 退出并保存新编辑的内容,q 会把邮件放在 ~/mbox 中,执行 pre 后就不取回
15) pre 将编号为 的邮件保留在 /usr/spool/mail,q 会把邮件放在 ~/mbox 中,执行 pre 后就不取回
16) x 或者 xit 只退出不保存新编辑的内容
17) file 显示邮件总数和在系统中所在的目录等信息
18) ! 执行 shell 的命令,例如 !ls
19) list 列出所有可用的命令
1) -s 设置邮件的标题
2) -a 添加附件
3) -c …… 给多个邮件地址抄送邮件,不同邮件的邮件地址用空格隔开
4) -b …… 给多个邮件地址悄悄抄送邮件,不同邮件的邮件地址用空格隔开
5) -e 检查系统邮件中是否有邮件
6) -f 显示邮箱里的邮件
7) -f + 显示 folder 目录邮箱中的邮件
8) -i 忽略 tty 信号中断
9) -v 显示发送邮件过程的详细信息
10) -h 显示帮助信息
11) uuencode 发送文件,第一个附件是要发送的附件,第二个是设置的名称 (此选项需要安装 sharutils 软件)
# mail -s test mingyu.zhu@eternalcenter.com
(补充:这里以向邮箱 mingyu.zhu@eternalcenter.com 发送标题为 test 的邮件为例)
(注意:键入此命令后进入交互式编辑内容的模式,内容编辑完了以后可以按下 “ctrl” 键之后再按下 “D” 键退出)
# echo 'test content' | mail -s 'test header' mingyu.zhu@eternalcenter.com
(补充:这里以向 mingyu.zhu@eternalcenter.com 邮箱发送标题为 test header 内容为 test content 的邮件为例)
# mail -s “test.txt” mingyu.zhu@eternalcenter.com < test.txt
(补充:这里以向 mingyu.zhu@eternalcenter.com 邮箱发送标题为 test header 将 test.txt 文件里的内容作为邮件内容的邮件为例)
# uuencode /tmp/test.txt test.txt | mail -s 'test' mingyu.zhu@eternalcenter.com
(补充:这里以向 mingyu.zhu@eternalcenter.com 邮箱发送标题为 test 将 test.txt 文件作为名为 test.txt 的附件的邮件为例)
# tar -czf test.txt.tar /tmp/test.txt | uuencode test.txt.tar | mail -s 'test' mingyu.zhu@eternalcenter.com
(补充:这里以向 mingyu.zhu@eternalcenter.com 邮箱发送标题为 test 将 test.txt.tar 文件作为名为 test.txt.tar 的附件的邮件为例)
# mail -s “test.txt” -c "mingyu.zhu2@eternalcenter.com mingyu.zhu1@eternalcenter.com" mingyu.zhu@eternalcenter.com < test.txt
(补充:这里以向 mingyu.zhu@eternalcenter.com 邮箱发送标题为 test header 将 test.txt 文件里的内容作为邮件内容的邮件,并抄送给 mingyu.zhu2@eternalcenter.com 邮箱和 mingyu.zhu1@eternalcenter.com 邮箱为例)