if
简单格式
if 判断条件;then
为真代码
else
为假代码
fi
多分支
if 判断条件;then
真
elif 判断条件2;then
真
elif 判断条件3;then
真
else
以上都为真
fi
条件判断case
case 变量引用 in
PAT1)
分支
;;
PAT2
分支
;;
'''
*)
默认分支
;;
esac
文件查找
locate
查找索引数据库内数据(快速查找)
主动建立索引数据库 updatedb
默认模糊搜索
-i 忽略大小写
-n数字 行数
-r 正则表达式 ""
find(常用)
硬盘实时搜索(精确匹配)
默认在当前目录找
find 显示当前文件目录所有文件
-name 文件名
-maxdepth 跟数字定义文件查找深度
-mindepth 跟数字
-depth 先处理文件夹
支持通配符 find -name "*.txt"
-iunm 根据节点编号搜索
-regex "" 正则表达式(全路径匹配从根开始.*) find -regex ".*\.php"
-user 搜索所属用户的文件
-nouser 无所属用户
-type 根据文件类型进行搜索
-empty 空文件
-a 文件须同时满足2个查找条件 (默认) find -type d -empty
-o 满足查找条件之一即可 find -type d -o -empty
!取反
not 取反
-ls 显示查到文件的详细信息 find \(-user lang -o -user nginx\) -ls
排除目录(-path 指定排除目录 -prune 配合使用)
find /etc/ -path '/etc/yum.repos.d' -a -prune -o -name "*.conf"
按照文件大小搜索
-size m,k,g (搜索结果为填写大小-1到填写大小本身的中间值)
+5M 5m以上大小文件
-5K 5m以下大小文件
-perm 根据权限进行匹配 find -perm 300
-delete 删除查找到的文件
-fls 重定向结果输出位置
-ok 可在其后嵌入linux命令 find -name "*.txt" -ok mv {} /root \;
({}代表查找到的内容 \;为ok必须添加的结束符)
-exec 同ok命令 不询问直接执行操作
find补充根据时间进行查找:
xargs(实用)
将标准输入作为其他命令的参数
读取输入数据传给命令作为他的参数
以下演示无任何意义,仅帮助理解
xargs ls (ctrl+d结束输入)
echo -a | xargs ls
find + xargs 常配合使用
案例:
echo user{1..100} |xargs -n1 useradd 创建100个用户
删除类似"a b.log"的文件
find -name "*.log" -print0 | xargs -0
有规律地址批量生成
seq 100 | xargs -i echo "http://www.a.b.{}" (将seq值传给i 再用{}调用i的值)
小知识:you-get linux上视频下载工具(python3)
只需要网页html链接即可
yum install python3
pip3 install you-get
you-get https://www.bilibili.com/video/BV14K411W7UF?p=37&spm_id_from=pageDriver
下载速度慢可开多线程进行下载 -p
xargs -P 10 you-get
多开案例
seq 100 | xargs -i -P 10 wget -P /data 网站名
批量删除用户
echo -e "test1\ntest2\ntest3\n" | xargs -i userdel -r {}
附加知识:压缩解压
compress
不太用(比较早期)
uncompress
不太用(比较早期)
gzip
压缩
-# 数字1-9 值越大压缩比越大
-c 结果输出至标准输出
-f 支持标准输入
示例:
ls -R /etc | gzip > etc.gz
常用于数据库备份等需要日志压缩场景
zcat 查看压缩的文本文件内容
gunzip
解压
bzip2
和gzip基本一致(升级版)
多 -k 选项保留原文件
bunzip2
和gunzip基本一致(升级版)
xz和unxz
用法向上一致
注意:以上只能对文件进行压缩
zip和unzip
打包目录
zip -r /testzip/1.zip /etc/ (-r 递归压缩)
解压
unzip
unzip 1.zip
unzip 1.zip -d /test (指定目录)
管道使用
cat /var/log/nginx/access.log | zip nginx -
unip -p nginx.gz > nginx.gz
tar(常用)
单纯的打包工具(不压缩)
tar -c 创建打包文件
tar -p 保留文件原有权限
tar -v 过程显示
tar -f 后跟文件名
组合
tar -cpvf 路径 文件夹或文件多个支持....
tar -rf 往包里追加文件
tar -tf 查看包内容
--exclude 排除不想打包的文件夹
解包(所有格式通用)
tar xvf 包名 目标目录
配合其他压缩工具对文件进行压缩打包
tar zcvf etc.tar.gz 目录
tar jcvf etc.tar.bz2 目录
tar Jcvf etc.xz.bz2 目录
split
将大文件分割为多个文件
split -b 1m 文件.tgz 文件前缀名字
-d 以数字后缀命名分割的文件
split -b 2M -d test.zip test_split
组合包
cat test_split[0-9]* > test.zip