目录
7. windows下修改的linux脚本,在执行时可能会出现报错,需要将文件格式内容修改为linux
1. 文件显示
显示第二行往后的内容: awk 'NR>1'
显示第n行到第m行的内容:awk 'NR==n,NR==m'
排序:sort -n按照大小排序,-r逆序,-k按照第几列排序。如:sort -nrk 3,按照第三列逆序排序
2. 文件分割和拼接
分割文件:
split test.txt -b 10k -d zmn -a 3
-b指定大小,-a 指定后缀长度,-d指定前缀名
拼接文件:
cat zmn* >>newfile
3. 通过一台节点控制当前集群下其他节点
kubectl get no -owide | awk 'NR>1' | awk '{print $6}' | xargs -I {} sshpass -p '密码' ssh -o StrictHostKeyChecking=no root@{} '要执行的命令'
ps:这里有一个失败是因为有一个节点 密码和其他节点密码不一致,我们可以把它和当前节点过滤出去
这里的hostname -I 就是当前节点的地址,153是那台密码不一致的节点,通过egrep -v 过滤出这两台节点,此时就不会报错了
这里可以将这条命令写进脚本中,将需要执行的命令通过参数传进去,如下:
4. 删除当前目录下的所有空文件
find . -maxdepth 1 -size 0 | xargs -I {} rm {}
-maxdepth 1 意思是查找深度为1,也就是只查找当前目录下的文件,不会查找子目录
-size 0 意思是查找文件大小为0的文件
-size +10000c 意思是查找出大于10000000字节的文件(c:字节,w:双字,k:KB,M:MB,G:GB)
-size -1000k 意思是查找出小于1000KB的文件
5. 查看公网IP
curl ifconfig.me
6. 统计文件中出现最多的字符
cat 文件 | sort | uniq -c | sort -rn -r排序输出,-n逆序输出
7. windows下修改的linux脚本,在执行时可能会出现报错,需要将文件格式内容修改为linux
vim打开文件,输入 :set fileformat=unix 或者 :set ff=unix
8. 输出时间
loginfo(){
echo $(date +"%Y-%m-%d %H:%M:%S") "[INFO]:" $1
}
loginfo "abc"
9. for循环的几种方式
-
常用的方式
for((i=0;i<10;i++));do touch zhaomn$i.txt;done
2. 使用遍历的方式
for i in {0..10};do touch zhaomn$i.txt;done
3. 使用seq(比较简便)
for i in $(seq 0 1 10);do touch zhaomn$i.txt;done
seq可以指定步长和范围(格式 seq 首 步长 尾),比如输出10以内的偶数
for i in $(seq 0 2 10);do echo $i;done
10. 随机数
echo $RANDOM
11. 修改密码技巧
echo "linuxprobe" | passwd --stdin root
可以在脚本里修改密码,也可以用来批量修改
12. case判断语句
#!/bin/bash
read -p "请输入一个字符,并按 Enter 键确认:" KEY
case "$KEY" in
[a-z]|[A-Z])
echo "您输入的是 字母。"
;;
[0-9])
echo "您输入的是 数字。"
;;
*)
echo "您输入的是 空格、功能键或其他控制字符。"
esac