运维中 shell 是最基础也是最实用的工具了,使用的好可以帮助我们解决很多问题。以下是一些总结的shell编程题目。
1. 打印1到50之间的随机数,中心周围的正态分布。中间的数字最有可能发生,你越远,它们越少越不常见。
您可以使用以下命令对此进行测试并观察数字分布:
for i in `seq 100000`;
do echo $[(${RANDOM}%40+${RANDOM}%40)/2+1];
done | sort -n | uniq -c
echo $ [($ {RANDOM}%100 + $ {RANDOM}%100)/ 2 + 1]
2. 替换文本中的字符串
说明: -e是脚本函数,它执行搜索和替换,如vi,-i是编辑文件到位
sed -e 's / dapper / edgy / g'-i /etc/apt/sources.list
elinks -dump https://pastebin.com/archive|grep https | cut -c 7- | sed 's / com / com \ / raw / g' | awk'length ($ 0)> 32 && length($ 0)< 35' | grep -v'messages \ | settings \ | languages \ | archive \ | facebook \ | scraping' | xargs wget
注意:elinks 是一款linux 下的文本浏览器,所有都以文字显示。具体可以查看百度解释,此处不做详细介绍。
4. 从当前目录下的* .html和* .htm文件中删除脚本标记
find ./ - type f \(-iname '* .html'- or -iname '* .htm' \) - exec sed -i '/ <script /,/ <\ / script> / d' '{}' \;
5. 推送到git目录中的所有(不同)遥控器,而不必将它们组合在一起
git remote | 而 读线; 做 git push $ line ; DONE
6. 获取超过50%使用率的分区 ------- 在监控中非常使用,可以用来监控磁盘使用率。
df -h | awk '{a=$5; gsub(/%/,"",a); if(a> 50){print $ 0}}'
注意标点符号必须是英文状态下的哦。否则linux shell 无法识别。