文件内容基本查看
echo:显示输出文本内容
指定文本显示在 linux 命令行上,或者通过重定向符号写入到指定的文件中
## 打印文本到标准输出
[root@vm10 /]# echo helloworld
helloworld
[root@vm10 /]# echo 'helloworld'
helloworld
[root@vm10 /]# echo "helloworld"
helloworld
[root@vm10 /]#
## 将单行文本追加文件中
[root@vm10 home]# echo "helloworld" >ceshi.info
[root@vm10 home]# echo "helloworld" >>ceshi.info
[root@vm10 home]# cat ceshi.info
helloworld
helloworld
[root@vm10 home]#
## 不换行输出(默认换行)
[root@vm10 home]# echo -n "helloworld" && echo "Yes"
helloworldYes
[root@vm10 home]# echo "helloworld" && echo "Yes"
helloworld
Yes
[root@vm10 home]#
## 打印变量内容
[root@vm10 home]# myname=hj
[root@vm10 home]# echo $myname
hj
[root@vm10 home]#
## 彩色打印
[root@vm10 home]# echo -e "\033[34m helloworld \033[0m"
helloworld
[root@vm10 home]#
## 彩色背景打印
[root@vm10 home]# echo -e "\033[45;37m helloworld \033[0m"
helloworld
[root@vm10 home]#
cat:合并文件或者查看文件内容
连接多个文件并且打印到屏幕输出,或者重定向到指定文件中
## 基本的查看文件内容
[root@vm10 home]# cat ceshi.info
helloworld
helloworld
[root@vm10 home]#
## 查看文件内容并显示编号
[root@vm10 home]# cat -n ceshi.info
1 helloworld
2 helloworld
[root@vm10 home]#
## 多个文件合并成一个文件
[root@vm10 test]# ls
1.txt 2.txt
[root@vm10 test]# cat 1.txt 2.txt >3.txt
[root@vm10 test]# cat 3.txt
123
234
[root@vm10 test]#
## 创建并编辑新文件(在新的空行内执行快捷键 ctrl+d 或者 ctrl+c 结束编辑)
[root@vm10 test]# ls
1.txt 2.txt 3.txt
[root@vm10 test]# cat >4.txt
789
^C
[root@vm10 test]# cat 4.txt
789
[root@vm10 test]#
## 非交互式编辑和追加内容到文件尾部(EOF 成对出现)
[root@vm10 test]# cat >5.txt<<EOF
> 10 11 12
> EOF
[root@vm10 test]# cat 5.txt
10 11 12
[root@vm10 test]#
## 清空文件内容
[root@vm10 test]# cat /dev/null > 1.txt
[root@vm10 test]# cat 1.txt
[root@vm10 test]#
翻页查看操作
more:分页显示内容
交互操作:
- 空格键:向下滚动一屏
- b:返回上一屏
- /文本内容:查看指定的文本内容
- =:输出当前行的行号
- v:调用 vi 编辑器
- !命令:调用 shell ,并执行
- q:退出 more
# 从行号10开始显示
[root@vm10 test]# more +10 /etc/passwd
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
zabbix:x:997:995:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin
nginx:x:996:994:Nginx web server:/var/lib/nginx:/sbin/nologin
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/false
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
test:x:1000:1000::/home/test:/bin/bash
## 显示前5行内容
[root@vm10 test]# more -5 /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
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
less:分页显示文件内容
more
的高级版本
交互操作:
- b:向前翻一页
- 空格键:向后翻一页
- q:退出
- /文本内容:向下搜索文本内容
- ?文本内容:向上搜索文本内容
## 显示每行行号
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8 halt:x:7:0:halt:/sbin:/sbin/halt
9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10 operator:x:11:0:operator:/root:/sbin/nologin
11 games:x:12:100:games:/usr/games:/sbin/nologin
12 ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
13 nobody:x:99:99:Nobody:/:/sbin/nologin
14 systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
15 dbus:x:81:81:System message bus:/:/sbin/nologin
16 polkitd:x:999:998:User for polkitd:/:/sbin/nologin
17 sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
18 postfix:x:89:89::/var/spool/postfix:/sbin/nologin
19 chrony:x:998:996::/var/lib/chrony:/sbin/nologin
20 zabbix:x:997:995:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin
21 nginx:x:996:994:Nginx web server:/var/lib/nginx:/sbin/nologin
22 mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/false
23 apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
24 test:x:1000:1000::/home/test:/bin/bash
~
~
~
~
(END)
head:显示文件头部内容
默认显示前10行
## 默认显示文件头部内容
[root@vm10 test]# head /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
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@vm10 test]#
## 显示指定的前5行数
[root@vm10 test]# head -n 5 /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
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@vm10 test]#
tail:显示文件内容尾部
默认输出最后10行
## 输出最后10行
[root@vm10 test]# tail /etc/passwd
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
zabbix:x:997:995:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin
nginx:x:996:994:Nginx web server:/var/lib/nginx:/sbin/nologin
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/false
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
test:x:1000:1000::/home/test:/bin/bash
[root@vm10 test]#
## 输出最后5行
[root@vm10 test]# tail -n 5 /etc/passwd
zabbix:x:997:995:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin
nginx:x:996:994:Nginx web server:/var/lib/nginx:/sbin/nologin
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/false
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
test:x:1000:1000::/home/test:/bin/bash
[root@vm10 test]#
## 实时查看文件追加的内容
[root@vm10 test]# tail -f /var/log/messages
Sep 4 21:12:43 vm10 su: (to test) root on pts/0
Sep 4 21:14:45 vm10 su: (to test) root on pts/0
Sep 4 21:15:48 vm10 su: (to test) root on pts/0
Sep 4 21:16:36 vm10 su: (to test) root on pts/0
Sep 4 22:01:01 vm10 systemd: Started Session 10 of user root.
Sep 4 22:15:27 vm10 kernel: perf: interrupt took too long (2511 > 2500), lowering kernel.perf_event_max_sample_rate to 79000
Sep 4 22:19:20 vm10 yum[2332]: Installed: mlocate-0.26-8.el7.x86_64
Sep 4 23:01:01 vm10 systemd: Started Session 11 of user root.
Sep 4 23:23:28 vm10 kernel: perf: interrupt took too long (3200 > 3138), lowering kernel.perf_event_max_sample_rate to 62000
Sep 5 00:01:01 vm10 systemd: Started Session 12 of user root.
文件内容数据截取
grep 文本过滤
常见参数:
- -v:显示不匹配的行
- -n:显示匹配的行及行号
- -i:不区分大小写
- -c:只统计匹配的行数
- -E:扩展正则
## 过滤不包含/sbin/nologin的行
[root@vm10 test]# grep -v "/sbin/nologin" /etc/passwd
root:x:0:0:root:/root:/bin/bash
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/false
test:x:1000:1000::/home/test:/bin/bash
[root@vm10 test]#
## 过滤不包含/sbin/nologin的行的行数
[root@vm10 test]# grep -vc "/sbin/nologin" /etc/passwd
6
[root@vm10 test]#
## 过滤不包含/SBIN/nologin的行
[root@vm10 test]# grep -vi "/SBIN/nologin" /etc/passwd
root:x:0:0:root:/root:/bin/bash
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/false
test:x:1000:1000::/home/test:/bin/bash
[root@vm10 test]#
tr 替换或删除字符
从标准输入中替换、删除字符,并将结果写到标准输出,不改变源文件内容
## 将文本的2删除
[root@vm10 test]# cat 2.txt
234
[root@vm10 test]# tr -d '2' < 2.txt
34
[root@vm10 test]# cat 2.txt
234
[root@vm10 test]#
## 将文本中的2替换成1
[root@vm10 test]# cat 2.txt
234
[root@vm10 test]# tr '2' '1' < 2.txt
134
[root@vm10 test]#
## 统一将小写转大写
[root@vm10 test]# cat 1.txt
aaa
bbb
CCC
DDDD
[root@vm10 test]# tr '[a-z]' '[A-Z]'<1.txt
AAA
BBB
CCC
DDDD
[root@vm10 test]#
## 将字母替换成数字
[root@vm10 test]# tr '[a-d]' '[0-3]'<1.txt
000
111
CCC
DDDD
[root@vm10 test]#
待补充