# 2.6  文本文件编辑命令

Linux系统中“一切皆文件”，对服务程序进行配置也就是编辑程序的配置文件

（1）cat 命令

用于查看纯文本文件（内容较少的）,参数-显示行号

```
# cat -n initial-setup-ks.cfg
```

（2）more 命令

用于查看纯文本文件（内容较多的）

```
# more  initial-setup-ks.cfg 
```

（3）head 命令

用于查看纯文本文件文档的前n行

```
# head -n 20 initial-setup-ks.cfg
```

（4）tail 命令

用于查看纯文本文件文档的后n行或持续刷新内容

查看纯文本文件后20行

```
# tail -n 20 initial-setup-ks.cfg
```

查看持续刷新的日志文件

```
# tail -f /var/log/messages
```

（5）tr 命令

用于替换文本文件中的字符，格式为“tr【原来字符】【目标字符】”

把文件内容全部替换为大写（注意中间有空格）

```
# cat anaconda-ks.cfg | tr a-z A-Z
```

（6）wc 命令

用于统计指定文本的行数、字数、字节数，格式为“wc【参数】文本”

|  参数 |   作用   |
| :-: | :----: |
|  -l |  只显示行数 |
|  -w | 只显示单词数 |
|  -c | 只显示字节数 |

查看passwd文件中用户数

```
# wc -l /etc/passwd
40 /etc/passwd
```

（7）stat 命令

用于查看文件的具体存储信息和时间等信息

```
# stat anaconda-ks.cfg 
```

（8）grep 命令

用于按行提取文本内容

例子：查找出当前系统不允许用户登录系统的所有用户信息

```
# grep /sbin/nologin  /etc/passwd
```

（9）cut 命令

用于按“列”提取文本字符，格式为“cut【参数】文本”

提取passwd文件中的用户名信息，参数-d设置间隔符号，参数-f查看的列数

```
# cut -d: -f1 /etc/passwd
```

（10）diff 命令

用于比较多个文本文件的差异，格式为“diff【参数】文件”

“--brief”参数用来确定两个文件是否相同

```
# diff --brief diff_A.txt diff_B.txt 
Files diff_A.txt and diff_B.txt differ
```

“-c”参数详细比较出两个文件的不同之处（其中！开头的就是不同的地方）

```
# diff -c diff_A.txt diff_B.txt 
*** diff_A.txt  2021-10-18 04:17:50.576480107 +0800
--- diff_B.txt  2021-10-18 04:19:48.012486161 +0800
***************
*** 1,6 ****
! Welcome to Linuxprobe.com
  Red Hat certified
! Free Linux lessons
  Professional guidance
  Linux Course
- 
--- 1,7 ----
! Welcome tooo certified
! 
  Red Hat certified
! Free Linux LeSSons
! ////////......////////
  Professional guidance
  Linux Course
```

（11）uniq 命令

去除重复的行（非相邻的重复行默认不会被去重）

```
# uniq uniq.txt
```

（12）sort 命令

对文本内容进行排序

默认按字母顺序排序
