4.3.1.1.touch
  • 用法一:

    • 文件不存在时,创建文件

[root@rhcsa ~]# touch p1.txt
[root@rhcsa ~]# touch p2.txt p3.txt p4.txt
[root@rhcsa ~]# touch p{5..10}.txt
[root@rhcsa ~]# touch {1,2}{3,4}

#### 4.3.1.2.dd

- 制作指定个数及容量的大文件

```sh
dd    if=来源    of=新文件名        count=数据块个数        bs=块容量
```

- if=/dev/zero:空数据设备文件,填充无数个数据 0
- of=新文件名:创建的大文件路径
- count=:数据块个数
- bs=:一个数据块容量

# 制作 100M 的大文件
[root@rhcsa test]# dd if=/dev/zero of=/root/test/z1 count=2 bs=50M

# 制作 1G 的大文件
[root@rhcsa test]# dd if=/dev/zero of=z3 count=1 bs=1G

# 制作光盘镜像
[root@rhcsa test]# dd if=/dev/sr0 of=RHEL9.iso


4.3.2.查看普通文件

4.3.2.1.直接查看文件内容
4.3.2.1.1.cat
  • 查看文件内容(适合内容较少的文件)

  • 文件内容直接显示在屏幕上

格式

cat     -选项     文件名

选项

参数 功能
-n 显示行号(空行也显示行号)
-b 空行不显示行号

[root@rhcsa ~]# cat anaconda-ks.cfg
[root@rhcsa ~]# cat -n anaconda-ks.cfg
[root@rhcsa ~]# cat -b anaconda-ks.cfg


.3.2.1.2.tac
  • 倒序访问文件内容

[root@rhcsa ~]# tac anaconda-ks.cfg

4.3.2.1.3.more
  • 翻页查看文件内容

    • 适合内容多的文件

  • 回车往下翻一行,空格(或者上下键)翻页,q 退出(或者看完文件自动退出)

  • 注意:

    • 退出后文件内容会保留在屏幕上

    • 访问到文件底,自动退出

    • 不能搜索

格式

more    -选项     文件名

选项

参数 功能
-s 压缩多个空白行为一个空白行

4.3.2.1.4.less
  • 同 more

  • 注意:

    • 退出后文件内容不会保留在屏幕上

    • 访问到文件底,不会自动退出

    • 支持搜索功能

格式

less    -选项     文件名

选项

参数 功能
-s 压缩多个空白行为一个空白行

4.3.2.1.5.head
  • 查看文件前 n 行内容

    • 默认前 10 行

格式

head    -选项     文件名

选项

参数 功能
-数字 显示行数
[root@rhcsa ~]# head -2 a1
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

4.3.2.1.6.tail
  • 查看文件后 n 行内容

    • 默认后 10 行

格式

tail    -选项     文件名

选项

参数 功能
-数字 显示行数
-f 动态查看文件内容
[root@rhcsa ~]# tail /etc/passwd
​
[root@rhcsa ~]# tail -2 /etc/passwd
​
[root@rhcsa ~]# tail -f /var/log/messages       # 监控日志

4.3.2.2.进一步处理文件内容
4.3.2.2.1. |
  • 管道,将左边命令的结果作为右边命令的输入

命令A | 命令B | 命令C

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

[root@rhcsa ~]# tail -10 /etc/passwd | head -1

4.3.2.2.2.grep
  • 过滤文件内容(在指定文件中查找并显示含有指定字符串的行)

    • 行匹配

格式

grep    -选项     查找条件    文件名

选项

参数 功能
-c 仅显示查找到的行数(统计行)
-i 忽略大小写
-n 显示行号
-v 反向选择(取反)
-r 递归搜索文件内容(当前目录递归查找子目录,子文件)
-w 按完整单词匹配
-A 数字 匹配行及下 n 行
-B 数字 匹配行及上 n 行
-C 数字 匹配行及上下 n 行

# 过滤包含 a 字母的行
[root@rhcsa ~]# grep a anaconda-ks.cfg

# 统计包含 a 字母的行数
[root@rhcsa ~]# grep -c a anaconda-ks.cfg

# 不区分大小写统计包含 a/A 的行数
[root@rhcsa ~]# grep -ic a anaconda-ks.cfg

# 过滤包含 a 字母的行,并显示行号
[root@rhcsa ~]# grep -n a anaconda-ks.cfg

# 过滤不包含 a 字母的行
[root@rhcsa ~]# grep -v a anaconda-ks.cfg

# 以完整单词过滤包含 100 的行
[root@rhcsa ~]# grep -w 100 /etc/passwd

# 过滤包含 root 的行以及下两行
[root@rhcsa ~]# grep -A2 root anaconda-ks.cfg

# 过滤包含 root 的行以及上两行
[root@rhcsa ~]# grep -B2 root anaconda-ks.cfg

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


4.3.2.2.3.cut
  • 按列提取文本内容

格式

cut -d  "分隔符"   -f列数字   文件名
[root@rhcsa ~]# head -2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
​
[root@rhcsa ~]# cut -d : -f1 /etc/passwd
  • 提取内核版本号

[root@rhcsa ~]# uname -a | cut -d " " -f3
5.14.0-362.8.1.el9_3.x86_64

4.3.2.2.4.tr
  • 替换 / 删除文本,输出到屏幕上

  • 缩减连续字符

  • (源文件不做修改)

格式

tr  -选项     被替换内容   新内容

选项

参数 功能
-c 取反
-d 删除
-s 缩减连续重复字符为单个字符(缩减多个空格为单个空格)
# 替换 /etc/passwd 文件的 a-z 字符为 A-Z 字符
[root@rhcsa ~]# cat /etc/passwd | tr a-z A-Z
​
# 删除 /etc/passwd 文件的 a-z 字符
[root@rhcsa ~]# cat /etc/passwd | tr -d a-z
​
# 提取 IP 地址
[root@rhcsa ~]# ip a | grep ens160$ | tr -s " " | cut -d / -f1 | cut -d " " -f3
​
# 提取 MAC 地址
[root@rhcsa ~]# ip a | grep ether | tr -s " " | cut -d " " -f3

4.3.2.2.5.sort
  • 排序显示

格式

sort    -选项     文件名

选项

参数 功能
-f 忽略大小写(默认 a>A)
-n 以数值排序
-r 逆序
-u 排序后,去除重复行
-t 指定间隔符
-k 按照第几列进行排序

示例

  • sort 命令执行后默认会按照字母顺序进行排序

# 取出所有账户名,并排序
[root@server ~]# cut -d ":" -f1 /etc/passwd | sort 
adm
apache
avahi
bin
chrony
clevis
cockpit-ws
cockpit-wsinstance
colord
  • sort -f 不区分大小写排序(默认 a > A)

  • sort -u 参数进行去重操作

# 图形化界面创建一个文件,写入下述内容
[root@server ~]# cat file       
A
a
A
a
A
​
[root@server ~]# sort file
a
a
A
A
A
​
[root@server ~]# sort -f file
A
A
A
a
a
​
[root@server ~]# sort -u file
a
A
  • -n 数字排序

# 数字正序排序
[root@server ~]# cut -d ":" -f3 /etc/passwd | sort -n
0
1
2
3
​
# 逆序数字排序
[root@server ~]# cut -d ":" -f3 /etc/passwd | sort -nr
65534
1005
1002
1001
  • -t :指定分隔符

  • -k :指定按照第几列进行排序

[root@server ~]# sort -t ":" -k 3 -n  /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐