shell简介:
- 脚本是一种解释型语言
- 用shell脚本保存执行动作
- 用脚本判定命令的执行条件
&& 和 || 符号 :
&&用来执行条件成立后的文件、||用来执行条件不成立后的文件
例如:
ping -c1 -w1 192.168.118.1 &> /dev/null && echo this is up || echo this is down
//如果前面的执行正常,则输出this is up ;否则输出this is down
其中: -c代表次数,-w代表等待时间
接下来是一些基础命令等:
cut 剪切
cut -c 指定截取的位置
-d 指定分隔符
-f 指定截取的列
sh -x test.sh 检测脚本
sort 命令多用于字符排序:
sort -n 纯数字排序;跟的是文件名
sort -r 倒序
sort -u 去掉重复数字
sort -o 输出到指定文件中
sort -t 指定分隔符
sort -k 指定要排序的列
uniq 命令对重复字符做相应的处理
uniq -u 显示唯一的行
uniq -d 显示重复的行
uniq -c 每行显示一次并统计重复次数
sort和uniq命令经常一起使用:
test “A” ==“A” == “B” 等同 [ “A”==“A”==“B” ]
[ “A” =“A” = “B” ]等于
[ “A” !=“A”!=“B” ]不等于
[ “A” -eq “A”-eq“B” ] 等于
[ “A” -ne “A”-ne“B” ] 不等于
[ “A” -le “A”-le“B” ] 小于等于
[ “A” -lt “A”-lt“B” ] 小于
[ “A” -ge “A”-ge“B” ] 大于等于
[ “A” -gt “A” -gt “B” ] 大于
[ “A” -ne “A” -ne “B” -a “A”-gt “A”-gt “B” ] ne表示不等于,a表示and都满足
[ “A” -ne “A”-ne “B” -o “A” -gt “A” -gt “B” ] o表示or至少满足一个
[ -z “A”]表示值为空[−n “A” ] 表示值不为空
[ “file1” -ef “file2” ] ef 表示节点是否相同
[ “file1” -nt “file2” ] 表示new,file1是否比file2文件新
[ “file1” -ot “file2” ] 表示old,file1是否比file2文件老
[-e “file”] 文件是否存在
[-f “file”] 文件是否为普通文件
[-L “file”] 文件是否为符号链接
[-S “file”] 文件是否为套接字
[-b “file”] 文件是否为块设备
[-d “file”] 文件是否为目录
[-c “file”] 文件是否为特殊文件
例题:
vim ip_check.sh ## 判断脚本后跟的ip对应主机是否存活
#!/bin/bash
[ -z "$1" ] &&{ ##不存在则执行下面的命令
echo please give me a ipaddress!!
exit 1
}
ping -c1 -w1 $1 &> /dev/null &&{
echo "$1 is up"
}||{
echo "$1 is down"
}
例题:
vim number.sh //输入数字判断是否在1~10的范围内
#!/bin/bash
[ -z "$1" ]&&{ ##$1表示输入的数字
echo please input a number after scripts!!
exit 1
}
[ "$1" -gt "0" -a "$1" -le "10" ]&& { ##表示$1大于0并且小于等于10
echo "$1" is between 1~10
}||{
echo "$1" is not between 1~10
}
例题:判断文件是否存在及文件的类型,
vim file.sh
#!/bin/bash
[ -z "$1" ]&& {
echo "please input a filename after scripts!!"
exit 1
}
[ -e "$1" ]||{
echo "$1 is not exist!!"
exit 0
}
[ -L "$1" ]&&{
echo "$1 is a link"
exit 0
}
[ -f "$1" ]&&{
echo "$1 is a common file"
exit 0
}
[ -b "$1" ]&&{
echo "$1 is a block file"
}
硬件:运算器、控制器、存储器、输入设备、输出设备、
安全协议:是以密码学为基础信息交换协议,其目的是在网络环境中提供各种安全服务。