1.find
1.1.概念
find 是根据文件的名称或者属性查找文件
1.2.语法格式
关键字:find
参数1:-name(按照文件的名字查找文件)
*:通配符
eg:
[root@localhost ~]# find /tmp/ -name 'test01'
/tmp/test01
[root@localhost ~]# find /etc/ -name '*hosts*'
/etc/hosts
/etc/hosts.allow
/etc/hosts.deny
参数2:-iname(按文件的名字查找文件忽略大小写)
eg:
[root@localhost ~]# find /etc/ -iname 'Hosts'
/etc/hosts
参数3:-size(按照文件的大小查找文件)
+:(大于)
-:(小于)
没符号:等于
eg:
[root@localhost ~]# find ./ -size 100M
./100.txt
参数4:-mtime(按照修改的时间查询)
+:(可以省略不写 表示n天以前)
-:(n天以内)
-atime
+
-
-ctime
+
-
eg:
[root@localhost ~]# find ./ -mtime 3
./anaconda-ks.cfg
参数5:-user
eg:
[root@localhost ~]# find ./ -user test02
参数6:-group
eg:
[root@localhost ~]# find ./ -group root
参数7:-type(按照文件类型查找文件)
eg:
[root@localhost ~]# find /root/ -type f
参数8:-perm(按照文件的权限查找文件)
eg:
[root@localhost ~]# find /root/ -perm 600
参数9:-inum(根据index node号码查询)
eg:
[root@localhost ~]# find /root/ -inum 135211159
搭配使用参数:
-a:并且(可以省略,默认是并且)
-o:或者()
-maxdeth:查询的目录深度(必须放置于第一个参数位)
eg:
[root@localhost ~]# find /etc/ -maxdepth 2 -name '1.sh'
[root@localhost ~]# find /etc/ -maxdepth 2 -a -name '1.sh'
[root@localhost ~]# find /etc/ -maxdepth 2 -0 -name '1.sh'
PS:
dd :生成文件
if:从什么地方读
of:写入到什么文件
bs:每次写入多少内容
count:写入多少次
eg:
dd if=/dev/zero of=100.txt bs=10M count=10
eg:要求把/etc目录下,所有的普通文件打包压缩到/tmp目录
[root@localhost /tmp]# tar -czPf /tmp/etcv2.tar.gz `find /etc/ -type f | xargs`
| : 前面一个命令的结果交给后面一个命令处理
xargs : 把处理的文本变成以空格分割的一行
`` : 提前执行命令,然后将结果交给其他命令来处理
2.正则表达式
2.1.正则表达式的分类
1.1普通正在表达式
1.2拓展正则表达式
2.2.普通的正则表达式
^ :以某字符开头
[root@localhost ~]# grep '^ftp' /etc/passwd
$:以某字符结尾
[root@localhost ~]# grep 'bash$' /etc/passwd
.:匹配以换行符以外的任意字符
[root@localhost ~]# grep 'test..' /etc/passwd
*:匹配前导字符的任意个数
[root@localhost ~]# grep 'a*' 1.txt
[]:某组字符串的任意一个字符
[root@localhost ~]# grep '^[ca]' 1.txt
[^]:取反
[root@localhost ~]# grep -o '^[^ca]' 1.txt
[a-z]:匹配小写字母
[A-Z]:匹配大写字母
[a-zA-Z]:匹配字母
[0-9]:匹配数字
\:取消转义
():分组
\n:第几个分组
2.3.拓展正则
{}:匹配的次数
{n}:匹配n次
{n,}:匹配至少n次
{n,m}:匹配n到m次
{,m}:匹配最多m次
+:匹配至少有一个前导字符
?:匹配一个或者零个前导字符
|:或(整体的或者)
PS:
|:前面一个命令的结果交给后面一个命令处理
xargs:把处理的文本变成以空格分割的一行
``:提前执行命令,然后将结果交给其他命令来处理
3.grep
3.1概念
linux三剑客之一,文本过滤器(根据文本内容过滤文件)
3.2.语法结构
grep [参数] [匹配规则] [操作对象]
参数:-n(过滤文本时,将过滤出来的内容在文件内的行号显示出来)
eg:
[root@localhost ~]# grep -n 'root' /etc/passwd
参数:A(匹配成功后,将匹配行的后n行也显示出来)
eg:
[root@localhost ~]# grep -n -A 2 'root' /etc/passwd
参数:-B(匹配成功之后,将匹配行的前n行也显示出来)
eg:
[root@localhost ~]# grep -n -B 2 'root' /etc/passwd
参数:-C(匹配成功之后,将匹配行的前后n行显示出来)
eg:
[root@localhost ~]# grep -n -C 2 'root' /etc/passwd
参数:-c(只显示匹配成功后的行数)
eg:
[root@localhost ~]# grep -c 'root' /etc/passwd
参数:-o(只显示匹配成功后的内容)
eg:
[root@localhost ~]# grep -o 'root' /etc/passwd
参数:-v(反向过滤)
eg:
[root@localhost ~]# grep -n -v 'root' /etc/passwd
参数:-q(静默输出)
eg:
[root@localhost ~]# grep -n -v -q 'root' /etc/passwd
参数:-i(忽略大小写)
eg:
[root@localhost ~]# grep -n -v -i 'Root' /etc/passwd
参数:-l(匹配成功之后,将文本的名称打印出来)
eg:
[root@localhost ~]# grep -rl 'root' /etc/
参数:-R|-r(递归匹配)
eg:
[root@localhost ~]# grep -rl 'root' /etc/
参数:-E(使用拓展正则,等价于egrep)
PS:
$?:上一行命令执行的结果,0代表执行成功,,其他数字代表执行失败
eg:echo $?
0
wc:匹配行数
-l:打印匹配行数
-c:打印匹配的字节数