文件查看与文本处理-cat 📄 — 查看文件内容

作用

cat(concatenate)用于查看小文件内容、合并多个文件、创建文件,是文件查看最基础的工具。

语法

1
cat [选项] 文件...

用法

cat 将文件内容输出到标准输出。-n 显示行号,-b 只给非空行编号,-s 压缩连续空行为一行,-E 在行尾显示 $。查看大文件建议用 less。合并文件:cat FILE1 FILE2 > MERGED

常用参数

参数 说明
-n 显示行号
-b 非空行编号
-s 压缩连续空行
-E 行尾显示 $
-T TAB 显示为 ^I
-v 显示非打印字符

示例

1
2
3
4
5
cat FILE.TXT                      # 查看文件内容
cat -n FILE.TXT # 显示行号
cat FILE1.TXT FILE2.TXT > MERGED.TXT # 合并多个文件
cat > NEWFILE.TXT # 创建新文件(Ctrl+D 结束输入)
cat -bs FILE.TXT # 非空行编号并压缩空行

来源:菜鸟教程

压缩与归档-tar 📦 — 归档与压缩

作用

tar(tape archive)是 Linux 中最常用的归档工具,将多个文件或目录打包成一个归档文件,常结合 gzip/bzip2/xz 实现打包并压缩。是备份、软件分发、迁移数据的标准工具。

语法

1
tar [选项] [归档文件] [源文件...]

用法

tar 的选项分为操作模式和修饰符。核心操作:-c 创建归档;-x 解压归档;-t 查看归档内容。-z 通过 gzip 压缩/解压(.tar.gz);-j 通过 bzip2(.tar.bz2);-J 通过 xz(.tar.xz);--lzma 通过 lzma(.tar.lzma)。-v 显示处理过程;-f 文件 指定归档文件名;-C 目录 指定解压目标目录;--exclude=模式 排除文件;-u 更新归档。

常用参数

参数 说明
-c 创建归档
-x 解压归档
-t 查看归档内容
-z gzip 压缩
-j bzip2 压缩
-J xz 压缩
--lzma lzma 压缩(.tar.lzma
-v 显示处理过程
-f 文件 指定文件名
-C 目录 解压到目录
--exclude=模式 排除文件

示例

1
2
3
4
5
6
tar -cvf ARCHIVE.TAR DIR/         # 打包目录为 .tar
tar -czvf ARCHIVE.TAR.GZ DIR/ # 打包并用 gzip 压缩
tar -xjf ARCHIVE.TAR.BZ2 # 解压 bzip2 归档到当前目录
tar -tvf ARCHIVE.TAR # 查看归档内容列表
tar -czvf BACKUP.TAR.GZ --exclude="*.LOG" /VAR/LOG # 打包排除 .LOG 文件
tar -xzf ARCHIVE.TAR.GZ -C /TARGET # 解压 gzip 归档到指定目录

来源:菜鸟教程

压缩与归档-zgrep-zcat-zless / zgrep / zless 📦 — 查看压缩文件

作用

zcat、zgrep、zless 是 gzip 压缩文件的查看工具族,在不解压的情况下直接读取 .gz 文件内容,节省磁盘空间且方便快速搜索。相当于 gzip -dcgrepless 的压缩文件封装。

zcat

1
zcat [选项] 文件.gz

将压缩文件内容解压后输出到标准输出(相当于 gunzip -c)。用于查看日志归档、配置文件备份等。支持 less 配合分页查看:zcat FILE.GZ | less

zgrep

1
zgrep [选项] 模式 文件.gz

在压缩文件中直接搜索文本模式。支持所有 grep 选项(-i-n-v 等)。zgrep -i ERROR /VAR/LOG/SYSLOG*.GZ 搜索压缩日志中的错误。

zless

1
zless 文件.gz

分页查看压缩文件内容(相当于 zcat FILE.GZ | less)。支持 less 的所有操作(上下翻页、搜索、跳转等)。比先解压再查看更高效。

示例

1
2
3
4
5
zcat FILE.TXT.GZ                   # 查看压缩文件内容(不解压)
zcat FILE.GZ | less # 分页查看压缩文件
zgrep -i ERROR LOG.GZ # 在压缩文件中搜索(忽略大小写)
zgrep -n "FAILED" AUTH.LOG.GZ # 搜索并显示匹配行号
zless FILE.GZ # 分页浏览压缩文件

来源:菜鸟教程

压缩与归档-zip-unzip / unzip 📦 — ZIP 格式压缩与解压

作用

zip 和 unzip 用于创建和解压 zip 格式的压缩文件。ZIP 是跨平台最通用的压缩格式,广泛用于 Windows/Linux/macOS 间的文件交换,支持包含多个文件的目录结构。

语法

1
2
zip [选项] 压缩包.zip [源文件...]
unzip [选项] 压缩包.zip

用法

zip 将文件或目录打包为 .zip 文件。-r 递归压缩目录;-q 静默模式;-d 删除压缩包中的文件;-u 更新或添加文件到压缩包;-9 最大压缩级别。unzip 解压 zip 文件。-l 列出压缩包内容;-d 解压到指定目录;-o 覆盖前不提示。zip 格式支持密码保护(-P 密码)。

常用参数

参数 说明
-r(zip) 递归压缩
-q(zip) 静默模式
-d(zip) 删除包内文件
-u(zip) 更新添加文件
-9 最大压缩
-l(unzip) 列出内容
-d 目录(unzip) 解压到目录

示例

1
2
3
4
5
6
zip -r ARCHIVE.ZIP DIR/            # 递归压缩目录
unzip ARCHIVE.ZIP # 解压到当前目录
unzip -l ARCHIVE.ZIP # 列出压缩包内容
unzip ARCHIVE.ZIP -d /TARGET # 解压到指定目录
zip -9 ARCHIVE.ZIP FILE1 FILE2 # 最大压缩级别打包
zip -u ARCHIVE.ZIP NEWFILE.TXT # 向压缩包添加新文件

来源:菜鸟教程

文件与目录管理-cd 📁 — 切换工作目录

作用

cd(change directory)是 Shell 内置命令,用于切换当前工作目录。支持绝对路径、相对路径、快捷符号,是终端操作中最基础的导航命令。

语法

1
cd [目录路径]

用法

cd 无参数时回到当前用户主目录 $HOMEcd - 返回上一个目录,cd ~ 回家目录,cd .. 返回上级,cd ../.. 上两级。路径支持 Tab 键自动补全。注意:cd 是 Shell 内置命令,没有独立可执行文件,仅影响当前 Shell 环境。

常用参数

参数 说明
(无) 切换到当前用户主目录
- 切换到上一个目录
~ 切换到当前用户主目录
~用户名 切换到指定用户的主目录
-P 切换到物理路径(绕过符号链接)
-L 跟随符号链接(默认)

示例

1
2
3
4
5
6
7
8
cd                     # 回到当前用户主目录
cd /var/log # 切换到绝对路径
cd .. # 返回上级目录
cd - # 返回上一个目录
cd ~ # 回到主目录(等价于无参数)
cd ~JOHN # 切换到用户 JOHN 的主目录
cd $PROJECT_DIR # 使用变量中的路径
cd ../.. # 返回上两级目录

来源:菜鸟教程

文件与目录管理-cp 📁 — 复制文件或目录

作用

cp(copy)用于将源文件或目录复制到目标位置,可保留文件属性(权限、时间戳),支持递归复制目录和创建链接。

语法

1
2
cp [选项] 源文件 目标文件
cp [选项] 源文件... 目标目录

用法

cp 的两个操作数形式分别为”源到目标”和”多个源到目录”。复制目录必须加 -R-i 在覆盖前提示确认,-p 保留源文件属性,-a 归档模式等价于 -dR --preserve=all-u 仅在源文件更新时复制。默认若目标存在则直接覆盖(部分发行版通过别名设置了 -i)。

常用参数

参数 说明
-R 递归复制目录
-i 覆盖前提示确认
-f 强制覆盖不提示
-p 保留文件属性
-a 归档模式(保留属性 + 递归)
-u 源文件更新时才复制
-v 显示复制过程
-b 覆盖前备份
-s 创建符号链接而非复制

示例

1
2
3
4
5
6
cp FILE1.TXT FILE2.TXT      # 复制并重命名
cp -r DIR/ /TARGET/ # 递归复制整个目录
cp -i FILE.TXT /TARGET/ # 覆盖前提示确认
cp -p FILE.TXT /TARGET/ # 保留权限和时间戳
cp -a DIR1 DIR2 # 归档模式复制目录
cp -v *.LOG /BACKUP/ # 显示复制过程

来源:菜鸟教程

文件与目录管理-df 📁 — 查看磁盘空间使用情况

作用

df(disk free)报告文件系统的总容量、已用空间、可用空间和使用率,是排查磁盘空间不足的首选命令。

语法

1
df [选项] [挂载点]

用法

df 显示各挂载点的磁盘使用统计。-h 以 K/M/G 人类可读格式显示,-T 显示文件系统类型,-i 显示 inode 使用情况而非块使用。--total 汇总所有。排查磁盘满时运行 df -h 即可快速定位哪个分区满了。

常用参数

参数 说明
-h 人类可读格式(K/M/G)
-T 显示文件系统类型
-a 显示所有文件系统
-i 显示 inode 信息
-x 类型 排除指定文件系统
--total 汇总显示总计
--sync 同步后再读取

示例

1
2
3
4
5
6
df -h                    # 人类可读格式显示磁盘使用
df -hT # 显示磁盘使用及文件系统类型
df -hi # 查看 inode 使用情况
df -h --total # 显示总计行
df -h /home # 只看 /home 分区的使用
df -hTx TMPFS # 排除 tmpfs 类型

来源:菜鸟教程

文件与目录管理-du 📁 — 统计文件/目录的磁盘使用量

作用

du(disk usage)递归统计文件或目录占用的磁盘空间,用于查找大文件和大目录。

语法

1
du [选项] [路径]

用法

du 递归计算每个子目录的大小。-h 人类可读格式,-s 汇总总计,-d N 限制递归深度。查找大文件时配合 sort -h 使用:du -sh | sort -h--exclude 排除指定模式。-t 阈值 只显示超过指定大小的目录。

常用参数

参数 说明
-h 人类可读格式
-s 汇总总计
-d N 限制递归深度
-c 汇总总计
--exclude=模式 排除匹配的文件
-t 大小 只显示超过指定大小
-a 显示所有文件
--time 显示最后修改时间

示例

1
2
3
4
5
6
du -sh                         # 统计当前目录各子目录大小
du -sh --exclude="*.LOG" # 排除 .log 文件后统计
du -d 1 # 只统计第一层目录
du -sh /home # 统计 /home 目录
du -sh | sort -h # 排序找出最大目录
du -sh --time # 显示最后修改时间

来源:菜鸟教程

文件与目录管理-file 📁 — 探测文件类型

作用

file 通过检查文件头部魔数(magic number)来判断文件真实类型,不依赖扩展名,适合确认未知文件的格式。

语法

1
file [选项] 文件...

用法

file 读取文件头部的特征字节与 magic 数据库对比,输出格式如 “ASCII text”、”ELF 64-bit LSB executable”、”gzip compressed data”。-b 简洁输出(不显示文件名),-i 显示 MIME 类型,-s 查看设备文件或特殊文件,-z 查看压缩文件内部类型。

常用参数

参数 说明
-b 简洁输出(不显示文件名)
-i 显示 MIME 类型
-s 查看特殊文件
-z 查看压缩文件内部
-m 文件 指定 magic 文件
-k 持续检测(不遇错即停)

示例

1
2
3
4
5
file FILE.TXT                    # 判断文件真实类型
file -b /bin/ls # 简洁输出,不显示文件名
file -i FILE.JPG # 显示 MIME 类型
file -z ARCHIVE.TAR.GZ # 查看压缩文件内部类型
file * /usr/bin/* # 批量探测多个文件

来源:菜鸟教程

文件与目录管理-find 📁 — 查找文件和目录

作用

find 在指定路径下递归搜索文件和目录,支持按名称、类型、大小、时间、权限等多维条件组合过滤,并可对结果执行自定义操作(删除、复制、执行命令等)。

语法

1
find [路径] [条件] [动作]

用法

find 从指定路径向下递归遍历。-name 按文件名匹配(支持通配符),-iname 忽略大小写;-type f/d/l 过滤文件/目录/链接;-size +100M 按大小筛选;-mtime -7 查找 7 天内修改的文件。-exec 命令 {} \; 对结果执行操作。逻辑运算:-a(与)、-o(或)、!(非)。

常用参数

参数 说明
-name 按文件名匹配
-iname 忽略大小写匹配
-type f/d/l 文件/目录/链接
-size +100M 按大小过滤
-mtime +7 按修改时间(天)
-mmin -60 按修改时间(分钟)
-perm 644 按权限匹配
-user 按所有者
-empty 空文件/目录
-maxdepth N 最大搜索深度
-exec CMD {} \; 对结果执行命令
-ok 交互式确认执行

示例

1
2
3
4
5
6
find /etc -name "*.conf"          # 查找 /etc 下所有 .conf 文件
find . -type f -size +100M # 查找当前目录下超过 100MB 的文件
find /tmp -mtime +7 -exec rm {} \; # 查找 7 天前的文件并删除
find . -name "*.LOG" | xargs rm -f # 配合 xargs 删除所有 .log 文件
find . -type d -empty -delete # 删除所有空目录
find . -name "*.TXT" -a -size -10K # 查找 .txt 且小于 10KB 的文件

来源:菜鸟教程

0%