目录
Linux文件系统
inode block superblock
superblock:记录文件系统整体信息,包括inode/block的总量,使用量,剩余量 文件系统类型以及文件系统相关信息
inode:记录文件的属性信息,一个文件占用一个inode,同时记录文件的内容存放的block号码
block:实际记录文件内容的磁盘空间,不同文件大小,占用不同数量的block 一般一个block是4k大小
磁盘的容量由inode和block同时决定
文件删除原理
两个link计数器
i_count:调用的次数
i_nlink:文件的链接次数(硬链接)
linux文件处理工具
cut:文件切割
-b:以字节单位进行切割
-c:以字符单位进行切割
-d:自定义分隔符
-f:与-d一起使用,指定显示那个区域sort:用于字段排序
-n:使用纯数字进行排序
-r:反向排序
-u:去重
-t:指定分隔符
-k:与-t一起使用指定以那个域来排序
-o filename :output,结果输出到文件
uniq:去重 指排序过之后的去重,必须是相邻重复行才可以去重
-c:显示出现的次数
-d:只显示重复的行
-D:显示所有重复行
-i:忽略大小写
-u:只输出唯一的行
-s:跳过前几个字符
-w:忽略第几个字符以后的内容
wc:文件中的字符、行数等等的统计
-l:统计行数
-L:统计最长行的长度
-c:统计字节数
-w:统计字数
-m:统计字符数
grep 文件内容搜索工具
文本处理工具三剑客 grep sed awk
正则表达式:由一类特殊的字符及文本编写成的一种模式,其中的字符和文本不代表
字面意思,二是表示控制或者通配的功能。
--color=auto: 对匹配到的字符做高亮显示,
-i:忽略大小写
-o:仅显示匹配到的字符串
-E:使用扩展正则表达式
-n:显示行号
-v:显示不能被模式匹配到的行
-A num:后num行
-B num:前num行
-C num:前后num行基本正则表达式
元字符:
字符匹配
.:匹配任意单个字符
[]:匹配指定范围内的任意单个字符
[^]:匹配指定范围外的任意单个字符
[0-9] 所有数字
[a-z] aAbB......z
[A-Z] AbB......zZ
[[:lower:]] 小写字母
[[:upper:]] 大写字母
[[:digit:]] 数字
[[:alpha:]] 所有字母
[[:punct:]] 标点符号
[[:alnum:]] 数字+字母
[[:space:]] 空白字符
[^[:lower:]] 除小写字母
匹配次数
*:匹配其前面的字符任意次 0次1次或者多次
.*:匹配任意长度的任意字符
\?:匹配其前面的字符0次或者1次
\+:匹配其前面的字符1次或者多次
\{m\}:匹配其前面的字符m次
\{m,n\}:匹配其前面的字符至少m次 至多n次
\{0,n\}:至多n次
\{m,\}:至少m次
位置锚定
^:行首锚定,用于模式的最左侧
$:行尾锚定,用于模式的最右侧
^$:空行
^[[:space:]]$:空行,包含空白字符的行
^pattern$:用pattern来匹配整行
\< 或者\b:词首锚定,用于单词的左侧
\> 或者\b:词尾锚定,用于单词的右侧
\<word\>:匹配一个完整单词
分组及引用
\(\):将一个或者多个字符捆绑在一起,当作一个整体来处理
\(\(\(\)\)\)
\1
\2
\3
.....
He loves his lover.
He likes his lover.
She likes her liker.
She loves her liker.
文件搜索命令
which:查找可执行文件 依赖PATH
whereis:查看文件位置
-b:只显示文件位置
-m:只显示man手册位置locate:查找系统中的文件,基于数据库查找
yum install mlocate -y
新装之后,需要构建数据库 手工构建数据库 updatedb /var/lib/mlocate/mlocate.db
模糊查找,非实时查找,查找速度快
-b:只匹配基名
-c:统计有多少个符合条件的文件find:实时查找工具,遍历指定的路径
实时查找,精确查找,查找速度慢
find [options] 查找的起始路径 查找条件 处理动作
查找起始路径:指定一个具体的起始路径,默认是当前目录
查找条件
选项 测试
文件名查找
-name "pattern" 支持通配符
从属关系
-user
-group
-nouser
-nogroup
-gid
-uid
文件类型
-type
f
d
l
b
c
s
p
文件大小 k M G
-size
-|+ #
-# [0,#-1]
# (#-1,#]
+# (#,∞)
时间戳
以天 time
-atime
-ctime
-mtime
+#:(∞,#-1]
#:[#,#-1)
-#:(#,0]
min
-amin
-cmin
-mmin
权限:
-perm
/mode 9位权限位或关系
-mode 9位权限位与关系
逻辑运算
与 -a
或 -o
非 ! not
!A -a !B = !(A -o B )
!A -o !B = !(A -a B )
目录层级
-depth
-maxdepth 在某一个层级目录中采用递减的方法查找
-mindepth 在某一个层面目录中采用递增的方法查找
处理动作
默认 print
-ls:执行ls -l
-delete:删除文件
-fls file:将查找到的文件输入到一个文件中
-ok commond {} \;
-exec commond {} \;
| xargs commond