当前位置:首页 > 技术 > 正文内容

Linux 文件操作与文本处理核心命令详解

访客 技术 2026年6月17日 1

文件查看命令及其参数应用

在 Linux 系统中,有多个命令可用于查看文件内容,每个命令适用于不同的使用场景。

命令 常用显示控制选项 特殊功能选项 使用示例
cat -n:为所有行编号(包括空行)
-b:仅对非空行编号
-s:将连续多个空行合并为一个
-v:显示不可打印字符
-T:将 Tab 显示为 ^I
-A:等同于 -vET,显示所有隐藏符号
cat -b file.log:输出文件内容并为非空行添加编号
cat /etc/passwd:快速浏览系统账户信息
more Enter:逐行向下滚动
Space:翻页显示
b:向上翻页(部分实现支持)
q:退出查看
无特殊参数 more +5 -10 data.txt:从第 5 行开始,每页显示 10 行内容
less Page Down / Up:上下翻页
/pattern:向前搜索
?pattern:向后搜索
n/N:跳转到下一个/上一个匹配项
-i:搜索时不区分大小写
-S:长行不换行,水平截断显示
-m:显示当前阅读进度百分比
less -Si /var/log/auth.log:以忽略大小写方式查看认证日志,并禁用自动换行
head -n N:显示前 N 行(可简写为 -N)
-c N:显示前 N 字节数据
head -n 15 log.txt:查看文件开头 15 行
head -c 50 file.bin:提取二进制文件的头部 50 字节
tail -n N:显示末尾 N 行
-c N:显示末尾 N 字节
-f:持续监控文件新增内容
-F:增强型跟踪,支持文件轮转(如日志切割)
-s N:设置刷新间隔(秒)
tail -f -n 20 app.log:实时观察应用程序日志最后 20 行的变化

文本统计与排序操作

对文本内容进行分析时,常需统计行数、单词数量或字节数。wc 命令是完成此类任务的核心工具。

wc document.txt        # 输出:行数 单词数 字节数 文件名
wc -l document.txt     # 仅输出行数
wc -w data.csv         # 统计单词(字段)个数

sort 命令用于对文本行进行排序,默认按字典序升序排列。

sort names.txt           # 按字母顺序排序
sort -r scores.txt       # 降序排列
sort -n values.txt       # 按数值大小排序(避免字符串比较错误)
sort -u input.txt        # 排序后去重

文本过滤与模式匹配:grep 工具详解

grep 是强大的文本搜索工具,支持字符串和正则表达式匹配。

grep [OPTIONS] "PATTERN" [FILE...]
选项 功能说明 示例
-i 忽略大小写匹配 grep -i "error" system.log
-v 反选:显示未匹配的行 grep -v "^#" config.conf:排除注释行
-n 输出匹配行的行号 grep -n "timeout" script.sh
-c 只输出匹配行的数量 grep -c "success" result.log
-l 仅列出包含匹配内容的文件名 grep -l "main()" *.c
-L 列出不包含匹配内容的文件名 grep -L "TODO" *.py

基础正则表达式(BRE)常用元字符

符号 含义 示例说明
. 匹配任意单个字符 g.p 可匹配 gap, gop, g?p 等
* 前一项出现零次或多次 a*b 匹配 b, ab, aab, aaab 等
^ 匹配行首 ^root 匹配以 root 开头的行
$ 匹配行尾 end$ 匹配以 end 结尾的行
[ ] 字符集合匹配 [aeiou] 匹配任一元音字母
[^ ] 否定字符集 [^0-9] 匹配非数字字符
\ 转义特殊字符 \.txt 匹配 ".txt" 字符串本身

文件压缩工具:gzip 与 bzip2

这两个工具主要用于单个文件的压缩与解压,不能直接处理目录。

  • gzip:速度快,压缩率适中,生成 .gz 扩展名文件
  • bzip2:压缩率更高,但耗时较长,生成 .bz2 文件

常见选项:

  • -k:保留原始文件(默认会被删除)
  • -v:显示压缩过程与比率
  • -c:输出结果至标准输出(可用于重定向)
  • -[1-9]:设定压缩等级(1 最快,9 最高压缩率)
工具 输出格式 压缩效率 执行速度 解压命令 典型用途
gzip .gz 中等 gunzip 或 gzip -d 日常快速压缩
bzip2 .bz2 较慢 bunzip2 或 bzip2 -d 需要更小体积的归档
gzip -k report.txt      # 压缩并保留原文件
bzip2 -9 data.sql         # 使用最高压缩级别
gzip -dv archive.gz       # 解压并显示详细信息

归档管理:tar 命令综合使用

tar(tape archive)用于打包和解包文件集合,通常结合压缩工具使用。

选项 作用
-c 创建新的归档包
-x 解压现有归档
-t 列出归档内文件(不解压)
-f 指定归档文件名(必须紧随其后)
-v 详细输出处理过程
-z 通过 gzip 压缩/解压(.tar.gz)
-j 通过 bzip2 处理(.tar.bz2)
-J 使用 xz 压缩(.tar.xz,高压缩率)
-C 指定解压目标路径
--exclude 打包时排除特定文件或目录
tar -czvf backup.tar.gz /home/user/docs   # 打包并使用 gzip 压缩
tar -tzvf backup.tar.gz                   # 查看压缩包内容
tar -xzvf backup.tar.gz -C /restore       # 解压到指定目录
tar -cjvf large_data.tar.bz2 /data --exclude='*.tmp'  # 排除临时文件打包

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。