Linux基础之shell入门分支判断以及文件查找----进阶sre第一阶段(重温linux基础10)

if

简单格式
if 判断条件;then
		为真代码
else
  		为假代码
fi

多分支
if 判断条件;thenelif 判断条件2;thenelif 判断条件3;thenelse
	以上都为真
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

回到主目录

首页
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

霖宇长清

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值