内容一:手动向系统日志写入信息
# logger [This is test message]
(补充:这里以往系统日志里写入一条包含 This is test message 内容的信息为例)
内容二:显示手动向系统日志写入信息
# grep "This is test message" /var/log/messages
(补充:这里在系统里查找一条包含 This is test message 内容的信息为例)
# logger [This is test message]
(补充:这里以往系统日志里写入一条包含 This is test message 内容的信息为例)
# grep "This is test message" /var/log/messages
(补充:这里在系统里查找一条包含 This is test message 内容的信息为例)
# iftop
(补充:此时会不停地显示系统联通状态,按下 “q” 键后退出)
# iftop
interface: eth0
IP address is: 10.10.10.129
IPv6 address is: fdb2:2c26:f4e4:0:5940:b748:da58:4f3
MAC address is: 00:1c:42:c9:3c:81
# value=
# newvalue=${value:-eternalcenter}
# echo $newvalue
eternalcenter
# value=mingyuzhu
# newvalue=${value:-eternalcenter}
# echo $newvalue
mingyuzhu
或者:
# value=
# newvalue=${value:=eternalcenter}
# echo $newvalue
eternalcenter
# value=mingyuzhu
# newvalue=${value:=eternalcenter}
# echo $newvalue
mingyuzhu
(补充:这里以当变量 value 存在且为空时则变量 newvalue 的值为 eternalcenter 为例)
# value=
# newvalue=${value:+eternalcenter}
# echo $newvalue
# value=mingyuzhu
# newvalue=${value:+eternalcenter}
# echo $newvalue
eternalcenter
(补充:这里以当变量 value 存在且不为空时则变量 newvalue 的值为 eternalcenter 为例)
# str=eternalcenter.com
# echo ${str::2}
et
或者:
# str=eternalcenter.com
# echo ${str:0:2}
et
或者:
# str=eternalcenter.com
# echo ${str:offset:2}
et
(补充:这里以截取字符串中从左数第 2 个字符和左边的所有内容为例)
# str=eternalcenter.com
echo ${str::0-2}
eternalcenter.c
(补充:这里以截取字符串中从右数第 2 个字符开始左边的所有内容为例)
# str=eternalcenter.com
# echo ${str:0-2}
om
(补充: 截取字符串中从除右数第 2 个字符开始到右边的所有内容)
# str=eternalcenter.com
# echo ${str:5:4}
alce
(补充:这里以截取字符串中从左数第 5 个字符开始 4 个字符的内容为例)
(注意:在此情况下是从第 0 字符开始数第 1 个字符的,而不是从第 1 个字符开始数第 1 个字符)
# str=eternalcenter.com
# echo ${str:0-5:4}
r.co
(补充:这里以截取字符串中从右数第 5 个字符开始右边 4 个字符的内容为例)
(注意:在此情况下是从第 0 字符开始数第 1 个字符的,而不是从第 1 个字符开始数第 1 个字符)
# str=eternalcenter.com
# echo ${str:1:-4}
ternalcenter
(补充:这里以截取字符串中从左数第 1 个字符到右数第 4 个字符中的所有内容为例)
(注意:在此情况下是从第 0 字符开始数第 1 个字符的,而不是从第 1 个字符开始数第 1 个字符)
# str=eternalcenter.com
# echo ${str:0-5:0-1}
r.co
或者:
# str=eternalcenter.com
# echo ${str:0-5:-1}
r.co
(补充:这里以截取字符串中从右数第 1 个字符到从右数第 4 个字符中的所有内容为例)
(注意:在此情况下是从第 0 字符开始数第 1 个字符的,而不是从第 1 个字符开始数第 1 个字符)
# str=eternalcenter.com
# echo ${str:2}
ernalcenter.com
(补充:截取字符串中从除左数第 2 个字符开始到右边的所有内容)
# value=ming:yu:zhu
# newvalue=${value%:*}
# echo $newvalue
ming:yu
(补充:这里以截取变量 value 右数第 1 个冒号 “:” 左边的所有值并赋予给变量 newvalue 为例)
# value=ming:yu:zhu
# newvalue=${value%%:*}
# echo $newvalue
ming
(补充:这里以截取变量 value 右数最后 1 个冒号 “:” 左边的所有并赋予给变量 newvalue 内容为例)
# value=mingyuzhu
# novalue=zhu
# newvalue=${value%%$novalue}
# echo $newvalue
mingyu
(补充:这里以截取变量 value 右数最后 1 个 zhu 左边的所有内容并赋予给变量 newvalue 为例)
# value=ming:yu:zhu
# newvalue=${value#*:}
# echo $newvalue
yu:zhu
(补充:这里以截取变量 value 左数第 1 个冒号 “:” 右边的所有内容并赋予给变量 newvalue 为例)
# value=ming:yu:zhu
# newvalue=${value##*:}
# echo $newvalue
zhu
(补充:这里以截取变量 value 左数最后 1 个冒号 “:” 右边的所有内容并赋予给变量 newvalue 为例)
# value=mingyuzhu
# novalue=ming
# newvalue=${value##$novalue}
# echo $newvalue
yuzhu
(补充:这里以截取变量 value 左数最后 1 个 ming 右边的所有内容并赋予给变量 newvalue 为例)
# value=mingyuzhu
# noneedvalue=yu
# needvalue=zhu
# newvalue=${value/$noneedvalue/$needvalue}
# echo $newvalue
mingzhuzhu
(补充:这里以将变量 value 中的 yu 替换成 zhu 并赋予给变量 newvalue 为例)
1) ==,若两个数值存在且相等,则结果为真
2) !=,若两个数值存在且不相等,则结果为真
3) >,若两个数值存在且前一个数值大于后一个数值,则结果为真
4) <,若两个数值存在且前一个数值小于后一个数值,则结果为真
5) >=,若两个数值存在且前一个数值大于或等于后一个数值,则结果为真
6) <=,若两个数值存在且前一个数值小于或等于后一个数值,则结果为真
7) + ,加法
8) – ,减法
9) * ,乘法
10) / ,除法
11) % ,求余
==,若两个字符串存在且一样,则结果为真
# (( 0 -ne 1 ))
# echo $?
0
(补充:这里以测试数字 0 是否不等于数字 1 为例)
# (( a == a ))
# echo $?
0
(补充:这里以测试字符串 a 是否等于字符串 a 为例)
# a=1
# b=2
# c=$(($a + $b))
# echo $c
3
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,若两个文件存在且前一个文件比后一个文件新,则结果为真
1) &&,和
2) ||,或
3) !,非
1) +,若两个数值存在,则相加
2) -,若两个数值存在,则相减
3) *,若两个数值存在,则相乘
4) /,若两个数值存在,则相除
5) %,若两个数值存在,则取余
1) =~,两个字符串或数值存在且后一个字符串或数值匹配正则表达式后一样,则结果为真
2) [0-9] 等所有 Linux 正则表达式
3) * 等所有 Linux 通配符
# [[ 0 -ne 1 ]]
# echo $?
0
(补充:这里以测试数字 0 是否不等于数字 1 为例)
# [[ a == a ]]
# echo $?
0
或者:
# [[ a = a ]]
# echo $?
0
(补充:这里以测试字符串 a 是否等于字符串 a 为例)
# [[ -f test.txt ]]
# echo $?
0
(补充:这里以测试文件 test.txt 是否存在为例)
# a=1
# [[ $a == 1 ]]
# echo $?
0
或者:
# a=1
# [[ $a = 1 ]]
# echo $?
0
(补充:这里以测试变量 a 是否等于数字 1 为例)
# a=2
# b=3
# c=5
# [[ $a+$b -eq $c ]]
# echo $?
0
(补充:这里以测试变量 a 加变量 b 是否等于变量 c 为例)
(注意: [[]] 数值运算后需要使用 -eq、-ne、-gt、-lt、-ge、-le 进行比较而不是使用 ==、!=、>、<、>=、<=)
# a=eternalcenter
# b=eternalcenter
# c=eternalcentre
# [[ $a == $b && $b != $c ]]
# echo $?
# 0
(补充:这里以测试变量 a 是否等于变量 b 且变量 b 是否不等于变量 c 为例)
# [[ eternalcenter = eternalcen??? ]]
# echo $?
# 0
或者:
# [[ eternalcenter = e*r ]]
# echo $?
# 0
(补充:这里以测试字符串 eternalcenter 是否等于字符串加通配符 eternalcen??? 或字符串加通配符 e*r 为例)
# [[ 10 =~ [0-9]{2} ]]
# echo $?
# 0
(补充:这里以测试数字 10 是否是每位数是 0 到 9 的两位数为例)