尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

第四章 命令行管理文件 2

第四章 命令行管理文件 2
📅 发布时间:2026/7/16 10:18:56

1. 创建普通文件

1.1 touch

  • 用法一:

文件不存在时创建新文件(可以使用花括号)

touch a.txt touch b{1..4..2}.txt
  • 用法二:

文件存在时,文件的三个时间会修改

时间:

访问时间(atime):文件最后被访问的时间

修改时间(mtime):文件内容修改时间

更改时间(ctime):文件元数据(属性)修改时间(文件修改时文件大小也会修改,mtime修改时ctime也会修改)

1.2 dd

  • 创建指定大小和数量的大文件
  • 格式
dd if=来源 of=文件名 count=数据块数量 bs=块大小

if=/dev/zero:空数据设备文件,填充无数个数据 0(创建指定容量的空文件)

of=文件名:新文件路径

count=:数据块数量

bs=:块大小(文件的总容量 = 数据块数量 × 块大小)

例如:

2. 查看普通文件

2.1 直接查看普通文件

2.1.1 cat

  • 查看文件内容(适合内容较少的文件)
  • 文件内容直接显示在终端屏幕上
  • 格式
cat [选项] 文件
  • 选项
-n显示行号(空行也显示)
-b空行不显示行号
不加选项直接显示内容

例如:

2.1.2 tac

  • 倒叙查看文件内容
  • 格式
tac 文件

2.1.3 more

  • 翻页查看文件内容(适合内容较多的)
  • 回车往下翻一行,空格(或者上下键)翻页,q 退出(或者看完文件自动退出)
  • 退出后文件会保留在屏幕上
  • 访问到底会自动退出
  • 不能进行搜索
  • 格式
more -选项 文件
  • 选项
选项功能
-s压缩多个空行为一个空行

2.1.4 less

  • 与more相同
  • 但退出后内容不会保留在屏幕上
  • 访问到底后不会自动退出
  • 可以进行搜索
  • 格式
less -选项 文件
  • 选项
选项功能
-s压缩多个空行为一个空行

2.1.5 head

  • 显示前n行内容(默认是显示前10行)
  • 格式
head -选项 文件
  • 选项
选项功能
-数字显示行数

2.1.6 tail

  • 显示后n行内容(默认是后10行)
  • 格式
tail -选项 文件
  • 选项
选项功能
-数字显示行数
-f动态查看文件内容

tail -f 动态查看这个日志文件,su 切换用户,开两个终端分屏查看,日志文件更新

2.2 进一步处理文件内容

2.2.1 |

  • 管道符,将左边的命令结果作为右边命令的输入
  • 格式
命令A | 命令B | 命令C

注意:使用管道会加大耗时,在极致追求效率 / 高性能的场景,要「尽量少用管道 | 」,且管道越多、耗 时越明显。

2.2.2 grep

  • 过滤文件内容(将文件中查找含有指定的字符)
  • 格式
grep -选项 查找条件 文件
  • 选项
选项功能
-c显示查找到的行数(统计行)
-i忽略大小
-n显示行号
-v取反
-r递归搜索文件内容(当前目录递归)
-w按完整单词匹配
-A 数字匹配行及下n行
-B 数字匹配行及上n行
-C 数字匹配行及上下n行

#将包含a的行标记出来

grep a anaconda-ks.cfg

#将包含a的行数量统计出来

[root@redhat ~]#grep -c a anaconda-ks.cfg

#将包含A/a的行数显示出来

[root@redhat ~]#grep -ic a anaconda-ks.cfg

#将包含a的行统计出来标号

[root@redhat ~]# grep -n a anaconda-ks.cfg

#将不含a的行显示出来

[root@redhat ~]# grep -v a anaconda-ks.cfg

#将按完整单词过滤

[root@redhat ~]# grep -w root /etc/passwd

#显示包含root行以及下两行

[root@redhat ~]# grep -A2 root /etc/passwd

#显示包含root行以及上两行

[root@redhat ~]# grep -B2 root /etc/passwd

#显示包含root行以及上下两行

[root@redhat ~]# grep -C2 root /etc/passwd

  • 加上符号过滤
命令说明
grep ^root 文件匹配以root单词开头的行
grep ^[root] 文件匹配以r o t 开头的行
grep ^[ ^ab] 文件匹配不以 a 或 b 开头的行
grep ^[0-9] 文件匹配以数字开头的行
grep ^[a-zA-Z] 文件匹配以字母开头的行
grep q$ 文件名匹配以 q 结尾的行
grep ^$匹配空白行
grep -r h .递归匹配当前目录下的子目录和子文件中包含 h 的行(包括隐藏文件)
grep -r h ./*递归匹配当前目录下的子目录和子文件中包含 h 的行(不包括隐藏文 件)
grep -d skip h ./*只查找当前目录下的普通文件,不递归查找子目录(不包括隐藏文件)

#匹配以a开头的行

[root@redhat ~]# grep ^a /etc/passwd

#匹配以h结尾的行

[root@redhat ~]# grep h$ /etc/passwd

#匹配以root开头的行并加上行号

[root@redhat ~]# grep -n ^root /etc/passwd

[root@redhat ~]# grep -n "^root" /etc/passwd

#匹配以r o t开头的行

[root@redhat ~]# grep ^[root] /etc/passwd

#匹配空行并加上行号

[root@redhat ~]# grep -n ^$ a1

2.2.3 cut

  • 按列提取文本内容
  • 格式
cut -d “分隔符” -f 列数字 文件名

#提取用户名

[root@redhat ~]# cut -d : -f 1 /etc/passwd

#提取内核版本号

[root@redhat ~]# uname -a | cut -d " " -f3

2.2.4 tr

  • 替换、删除文本,输出到屏幕上
  • 缩减多个字符
  • 源文件不会更改
  • 格式
tr -选项 内容 新内容
  • 选项
选项功能
-c取反
-d

删除

-s缩减连续重复字符为单个字符(常将空格缩减)

#替换文件字符

[root@redhat ~]# cat /etc/passwd | tr a-z A-Z

#删除文件的字符

[root@redhat ~]# cat /etc/passwd | tr -d a-z

#提取IP地址

[root@redhat ~]# ip a | grep ens160$ | tr -s " " | cut -d / -f 1 | cut -d " " -f 3

#提取MAC地址

[root@redhat ~]# ip a | grep link/ether | tr -s " " | cut -d " " -f 3

2.2.5 sort

  • 排列显示
  • 格式
sort -选项 文件
  • 选项
选项功能
-f忽略大小写(默认a>A)
-n数值排序
-r逆序
-u排序后,去除重复行
-t指定间隔符
-k按照第几列进行排序

#将用户名排序

[root@redhat ~]# cut -d ":" -f 1 /etc/passwd | sort

#排序不区分大小写

[root@redhat ~]# sort -f file

#去除重复行

[root@redhat ~]# sort -u file

#数值排序

[root@redhat ~]# cut -d ":" -f 3 /etc/passwd | sort -n

#数值从大到小

[root@redhat ~]# cut -d ":" -f 3 /etc/passwd | sort -nr

#按照用户数值排序

[root@redhat ~]# sort -t ":" -k 3 -n /etc/passwd

2.2.6 uniq

  • 去重显示
  • 去除文本中的“连续”重复行
  • 格式
uniq -选项 文件
  • 选项
选项功能
-c统计重复行出现的次数
不加去除重复行

#将重复内容去重

[root@redhat ~]# uniq file1

#将重复行的行数统计出来

[root@redhat ~]# uniq -c file1

练习:

#列出所有账号的账号名(/etc/passwd)

[root@redhat ~]# cut -d ":" -f 1 /etc/passwd

#将 /etc/passwd 中内容按照冒号隔开的第三个字符从大到小排序后输出所有内容

[root@redhat ~]# sort -t ":" -k 3 -nr /etc/passwd

#列出 /etc/passwd 中的的 15 - 20 行内容

[root@redhat ~]# head -20 /etc/passwd | tail -6

#切割出你的 IP 地址和 mac 地址

[root@redhat ~]# ip a | grep ens160$ | cut -d "/" -f 1 | tr -s " " | cut -d " " -f 3

#切割出 /etc/passwd 最后一个字段并进行重复内容的重复次数统计

[root@redhat ~]# cut -d ":" -f 7 /etc/passwd | sort | uniq -c

相关新闻

  • Edge开机自动启动怎么彻底关闭?从浏览器设置到系统启动项全排查
  • Qwen2.5-Coder:开源代码大模型的技术解析与实践
  • 劳力士宁波区售后网络核验|权威公告正规维修服务网点(2026年7月最新) - 劳力士中国服务中心

最新新闻

  • 文件目录大小计算:从树形结构遍历到多语言实现详解
  • 2024年C++零基础入门:从环境搭建到面向对象编程实战
  • AutoCAD破解版技术风险与合法替代方案全解析
  • UEFI启动项管理与BCD编辑实战指南
  • 终极游戏性能优化方案:SGuard限制器完整技术实现深度解析
  • Windows Cleaner:告别C盘爆红,你的系统优化全能助手

日新闻

  • Toon Boom Harmony 高效工作流:从节点视图到镜头标记的实战技巧
  • 真力时售后维修电话,为您提供专业腕表保养与故障修复服务权威公示(2026年7月最新) - 亨得利官方服务中心
  • 【C++】类和对象--构造函数进阶(初始化列表与explicit)

周新闻

  • IX9104 PCIe5.0 高速交换芯片@ACP#完整规格 + 应用场景总结
  • Unity游戏集成Coze智能体:实现NPC智能对话与知识库联动
  • SAP EPIC 建行回单查询:从标准类CL_EPIC_EXAMPLE_CN_CCB_GHTD到Z类的5处关键修改

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号