一·故事背景

紧接上一天,这次继续学习有关文件与目录内容检索相关命令,相比昨天的知识还是稍微简单一些的,昨天有种负重跑的疲倦感,今天卸下了一些负重,相信自己可以走的更远。

二·Linux系统文件与目录内容检索

一、文件和目录内容检索处理命令

1·tr转换

tr 命令是 Unix 和类 Unix 系统中的一个用于字符转换或删除的实用程序。tr 命令通常用于处理文本数据,例如删除特定字符、替换字符、转换大小写等操作。

语法:

tr [options] set1 set2

选项:

选项 作用
-c 保留字符集1的字符,其他的字符用(包括换行符\n)字符集2替换
-d 删除所有属于字符集1(-d 后面的参数)的字符
-s 将重复出现的字符串压缩为一个字符串;用字符集2 替换 字符集1
-t 字符集2 替换 字符集1,不加选项同结果
a.将文本中的小写字母转换为大写字母:

b.删除文本中的空格:

c.将文本中的特定字符替换为另一个字符:

d.压缩重复字符:

e.去掉空白符:

2·cut切割

cut 是 Unix 和类 Unix 系统中的命令,用于根据指定的字符分隔符从输入中提取字段。cut 命令用于处理文本文件,通常与管道 (|) 和其他命令一起使用,以进一步处理和分析文本数据。

语法:

cut [options] [field-spec]

选项:

选项 作用
-f 通过指定哪一个字段进行提取。cut命令使用“TAB”作为默认的字段分割符
-d “TAB”是默认的分隔符,使用此选项可更改为其他的分隔符
-c 以字符为单位进行分割
- -complement 用于排除所指定的字段
- -output-delimiter 更改输出内容的分隔符
-s 跳过空白字段
-b, -B 仅打印非空白的字段。

a.提取指定范围内的字段:
b.使用制表符作为分隔符提取字段:

c.提取指定文件中的所有字段:

d.仅提取非空白字段:

e.使用通配符提取多个字段:(可以不连续)

f.统计messages(系统)日志每个时间点产生日志的条目数量

3·which命令

which 命令在 Unix 和类 Unix 系统中用于查找一个命令的完整路径。当您输入一个命令名称时,which 命令会告诉您该命令位于哪个文件系统中。which 命令通常用于确认命令是否存在于系统 PATH 中,或者用于在脚本中获取命令的确切路径。如果您想要查找的命令不存在于 PATH 中,which 命令将不会返回任何输出。

语法:

which [command]

选项:

选项 作用
-a 或 --all 打印所有匹配的命令路径,而不仅仅是第一个匹配的。
-p 或 --print-path 除了命令名称外,还打印出完整的路径。
-v 或 --version 打印 which 命令的版本信息。

4·whereis命令

whereis 命令在 Unix 和类 Unix 系统中用于查找二进制文件、源代码文件和手册页的位置。它搜索默认的文件系统路径来确定指定命令的相关文件。

语法:

whereis [-bms] [-u] [-f] [-h] [-L] [-M] [-S] [-version] [command]

选项:

选项 作用
-b 或 --binary 只查找二进制文件。
-m 或 --manual 只查找手册页。
-s 或 --source 只查找源代码文件。
-u 或 --usage 打印使用说明。
-f 或 --follow 跟随符号链接。
-h 或 --help 打印帮助信息。
L 或 --logical 搜索逻辑路径,不包含物理符号链接。
-M 或 --physical 搜索物理路径,不包含逻辑符号链接。
-S 或 --size 只查找指定大小的文件。

5·diff命令

语法:

diff [选项] 文件1 文件2

选项:

选项 作用
-q 或 --quiet 只输出文件差异的文件名,不显示详细差异。
-c 或 --context 以语境方式显示差异,默认显示3个字符的上下文。
-u 或 --unified 以统一的方式显示差异,这是默认模式,显示共同的祖先与当前文件之间的差异。
-a 或 --text 比较文本文件,忽略文件的格式差异。
-b 或 --ignore-space-change 忽略空白的差异(空格、制表符等)。
-B 或 --ignore-space-at-eol 忽略每行末尾的空白差异。
-i 或 --ignore-case 忽略大小写差异。
-D 或 --horizontal-split 以水平分割的方式显示差异。
-E 或 --sideby-side 以并排的方式显示差异。
-l 或 --from-file 只显示文件2相对于文件1的差异。
-r 或 --recursive 递归地比较目录。
-N 或 --new-file 当文件2是文件1不存在的文件时,只显示文件2的内容。
-x 或 --exclude 跳过指定模式的文件。
-X 或 --exclude-from 从指定的文件中读取排除模式。
--from-file=FILE 同 -l,指定比较的基准文件。
--horizontalsplit 同 -D,以水平分割的方式显示差异。
--left-column 只显示左侧列的差异。
--no-dereference 不解析符号链接。
--old-file 当文件1是文件2不存在的文件时,只显示文件1的内容。
--recursive 同 -r,递归地比较目录。
--right-column 只显示右侧列的差异。
--speed-large-files 用于大文件,减少内存使用。

二、文件与目录归档压缩命令

1·tar

归档命令

语法:

tar [选项] [归档文件名] [-C] [解压路径]

选项:

选项 作用
-z,--gzip 用 gzip 对存档压缩
-c, --create 建立新的存档
-v, --verbose 详细显示处理的文件
-f, --file 指定存档文件路径及名称
-j, --bzip2 通过 bzip2 过滤归档
-x, --extract, --get 从归档中解出文件
-C 指定解压后的存储路径
tvf 仅查看归档包中的文件内容
--same-owner 保留文件所有者(需root权限)
-J 使用xz压缩

tar -czvf /目标路径/压缩后文件名 源路径

解压使用 tar xvf

2·zip/unzip

语法:

zip 压缩后的文件名 需要压缩的文件

解压缩命令:

unzip 压缩文件名

3·gzip / gunzip

默认压缩后源文件消失

语法:

gzip 需要压缩的文件
gzip -k filename       # 保留原文件

解压缩命令:

默认解压后源文件消失

4·bzip2 / bunzip2

压缩后源文件消失,压缩率最高

语法:

bzip2 需要压缩的文件

解压缩命令:

解压后源文件消失

bunzip2 压缩文件

5·xz / unxz

  • 压缩文件

    xz filename            # 生成filename.xz
  • 解压文件

    unxz filename.xz

工具对比

工具/格式 压缩率 速度 典型扩展名 特点
gzip .gz 通用,适合文本文件
bzip2 .bz2 高压缩率,适合大文件
xz 极高 最慢 .xz 最高压缩率,资源消耗大
zip .zip 跨平台(Windows兼容)
tar .tar 仅归档,需配合压缩工具使用

三、统计命令

1·wc

统计文件内容的行数、字符数、单词数

-l        # 统计文件行数(常用日志分析)
-c       # 统计字节数


-m       # 统计字符数(与字节数区别在UTF-8环境)


-w             # 统计单词数(以空格分隔)


-L            # 统计最长行的长度

2·du

统计文件占用磁盘空间的容量

-sh      # 统计目录总大小(-s汇总,-h人性化显示)


-h --max-depth=1 /var  # 显示/var下一级子目录大小


-ah /path              # 显示所有文件及子目录大小(含隐藏文件)

四·总结

今天的命令总体来说比较好理解,使用起来也很便捷,个别常用命令熟悉即可。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐