
本系列文章一共三篇,分别为《脚本编程与Linux命令》、《接入层与网络基础》和《MySQL与SQL优化》,由腾讯高级工程师luaruan(阮永顺)原创。
希望对需要学习、面试Linux运维的同学有所帮助。
$1入参,空值时默认赋值技巧
variable=${1:-"defaultvalue"}入参个数
$PID
$0文件名
$?上个命令执行结果
Shell四则运算方法
letC=A+B
letA++使用bc可以做比较复杂的运算
函数定义与调用
function可省略
echo$1echo"-----"
echo$2echo"-----"
echo$3
}
-a表示与,-o表示或
字符串与序列、随机数
name=Johnecho'Mynameis$name'输出'Mynameis$name,因为单引号里面的$只会当作字面值
字符串截取a=123456789;echo${a:0:3}输出123
echo替换字符
var=tom_tom_lucy_jack_tomomttom
echo${var/tom/mary}mary_tom_lucy_jack_tomomttom
echo${var//tom/mary}mary_mary_lucy_jack_maryomtmary
序列
foriin{1..100}1,8,15.99
foriin`seq100`3,4,5
随机数
echo$RANDOM
head/dev/urandom|md5sum|cksum|cut-c1-9
使用cksum从管道灌进去一些随机文本可生成一些随机数字,需要使用cut切割
字符串截取
a=123A123B456456C
echo${a*3}从最左边找到3删除,贪婪B456456C
echo${a%%6*}从最右边找到6删除,贪婪123A123B45
echo${a%?}删除最右边一个字符123A123B456456
提取最后一位
str="12345678"
i=$((${字符串长度减去1,故i=7
echo${b:$i:1}2018-10-1400:09
删除空行
|tr-s"\n"
sed-i'/^$/d'1.txt
grep-v"^$"1.txt
考察ls按时间、体积大小排序
ls-lt最新在前
ls-ltr最旧在前
ls-lS最大在前
ls-lSr最小在前
考察comm的使用:
前提是,文件要排序过。结果的第一列是仅仅在文件1出现的,第二列是仅仅在文件2出现
的,第三列是共同出现的。-1表示不显示第一列,-2表示不显示第二列,-3表示不显示第三列。
考察grep与正则、子模式
答案:
grep-P"(\d{3}-|\(\d{3}\)\s{1})\d{3}-\d{4}"input
另外,grep-c表示匹配次数,-P表示使用正则-E其实是扩展模式不是正则
考察容错处理、if、大于小于、正则、排序、去重统计、awk
为什么单引号里加{}不行呢
考察tr替换、删除的使用、去除空格
catinput|tr-d-c"a-zA-Z0-9[:space:]"!/bin/bash
functioncheck_ip(){使用((表达式))来做for循环ping3次
ifping-W1-c1"$ip"/dev/null21;then如果ping成功了,则直接结束探测,节省时间
fi
((fail_count=fail_count+1))给出IP列表,当然也可以自行改造成文本方案
foripin$iplist;do
check_ip$ip
done
批量并发检测存活主机:
批量IP的技巧;仅仅在bash生效,sh不行
do
(
ping-c3-W1$ip/dev/null;
if[$?-eq0];then
echo"$ipalive"
fi
)等待所有子进程结束
检测站点URL是否存活:考察curl的使用、文件入参、待优化多次检测:
,thencheckwhetherthesiteisavailable
INPUT_FILE=""
whilereadu;do
curl-s--connect-timeout3-o/dev/null$u用快捷键CTRL-ad来暂时断开当前会话
command#注意,这样标准输出可能会在屏幕里翻滚
版权声明:本站所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请举报,一经查实,本站将立刻删除。