一、head命令
1、作用
head用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容。
2、语法
head [选项] [文件]
参数说明:
参数 | 说明 |
---|---|
-c,–bytes=[-]K | 输出文件前第几个字节内容 。例:输出前五个字节内容:head -c 5 FILE等同于head --bytes=5 FILE。例:输出除最后五个字节外的所有内容:head --bytes=-5 FILE等同于head -c -5 FILE |
-n,–lines=[-]K | 输出文件前几行内容 。例:输出文件前两行内容:head -n 2 FILE等同于head --lines=2 FILE等同于head -2 FILE。例:输出除最后两行以外的所有内容:head --lines=-2 FILE等同于head -n -2 FILE |
-q,–quiet,–silent | 不输出文件名头,多文件处理时会用到(如果不使用该选项,输出多个文件时,会显示文件头) 。例:输出文件前两行内容,不显示文件头:head -q -n 2 /etc/shadow /etc/passwd等同于head --quiet -n 2 /etc/shadow /etc/passwd等同于head --silent -n 2 /etc/shadow /etc/passwd |
-v,–verbose | 总是输出文件名的头,多文件处理时,不指定该参数,默认输出文件名的头。 |
–help | 显示帮助。 |
–version | 显示head版本信息。 |
3、应用实例
这里参考自:https://blog.csdn.net/qq_45988641/article/details/116939650
(1)显示文件的前3行
[root@localhost test]# cat log1.txt
Thu Feb 25 09:46:34 2021
Create Relation ADR_CONTROL
Create Relation ADR_INVALIDATION
Create Relation INC_METER_IMPT_DEF
Create Relation INC_METER_PK_IMPTS
[root@localhost test]# head -n 3 log1.txt
Thu Feb 25 09:46:34 2021
Create Relation ADR_CONTROL
Create Relation ADR_INVALIDATION
(2)显示文件前10个字节
执行命令ll查询详细信息时,第五个说明表示文件大小。文件log.txt的文件大小为27byte也就是27字节。每次结尾都会多一个空格占一个字符。英文和数字占一个字节;中文占一个字符,也就是两个字节。
[root@localhost test]# ll
总用量 16
-rw-r--r--. 1 root root 156 5月 14 17:00 log1.txt
-rw-r--r--. 1 root root 592 5月 14 17:00 log2.txt
-rw-r--r--. 1 root root 655 5月 14 17:06 log3.txt
-rw-r--r--. 1 root root 27 5月 17 17:28 log.txt
[root@localhost test]# cat log.txt
abcdefghigklmnopqrstuvwxyz
[root@localhost test]# head -c 10 log.txt
abcdefghig
(3)文件的除了最后1个字节以外的内容
[root@localhost test]# ll
总用量 16
-rw-r--r--. 1 root root 156 5月 14 17:00 log1.txt
-rw-r--r--. 1 root root 592 5月 14 17:00 log2.txt
-rw-r--r--. 1 root root 655 5月 14 17:06 log3.txt
-rw-r--r--. 1 root root 27 5月 17 17:28 log.txt
[root@localhost test]# cat log.txt
abcdefghigklmnopqrstuvwxyz
[root@localhost test]# head -c -1 log.txt
abcdefghigklmnopqrstuvwxyz
(4)输出文件除了最后1行的全部内容
[root@localhost test]# cat log1.txt
Thu Feb 25 09:46:34 2021
Create Relation ADR_CONTROL
Create Relation ADR_INVALIDATION
Create Relation INC_METER_IMPT_DEF
Create Relation INC_METER_PK_IMPTS
[root@localhost test]# head -n -1 log1.txt
Thu Feb 25 09:46:34 2021
Create Relation ADR_CONTROL
Create Relation ADR_INVALIDATION
Create Relation INC_METER_IMPT_DEF
二、tail命令
1、作用
tail用于输出文件中尾部的内容,默认情况下tail指令显示文件的后10的内容。
2、语法
tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]
或者
tail [ -r ] [ -n Number ] [ File ]
参数说明:
参数 | 说明 |
---|---|
-c,–bytes=K | 输出文件后面第几个字节内容。 |
-f,–follow[={name/descriptor}] | 随着文件内容增加,持续输出增加的内容 ,常用选项。例:持续输出文件新增内容:tail -f FILE |
-F | 与-f命令相同。 |
-n,–lines=K | 输出文件后几行内容 。例:输出文件后两行内容:tail -n 2 FILE等同于tail --lines=2 FILE等同于tail -2 FILE |
-r | 从文件末尾以逆序方式显示输出 。-r 标志的缺省值是以逆序方式显示整个文件。 |
–max-unchanged-stats=N | 与–follow=name选项一起使用,文件被轮询时持续监测。例:tail --follow=name --max-unchanged-stat=5 --retry /var/log/messages |
–pid=PID | 与-f选项使用,指定ID、PID死掉后,退出tail命令。例:tail -f --pid=5693 FILE |
-q | –quiet,–silent:不输出文件名头,多文件处理时会用到。–retry:如果文件无法访问时,重试打开文件。 |
-s,–sleep-interval=N | 与-f、–pid选项一起使用,检查间隔时间秒数,这个检查时间的秒数不是,几秒输出一次内容,和–pid一起使用,几秒检查pid进程是否存在,如果不存在则退出tail命令。例:持续输出一个文件并10秒检查一次pid进程:tail -f -s 20 --pid=5932 FILE |
-v,–verbose | 总是输出文件名的头,多文件处理时,不指定该参数,默认输出文件名的头。 |
–help | 显示帮助。 |
–version | 显示head版本信息。 |
3、应用实例
这里参考自:https://blog.csdn.net/K346K346/article/details/102915348
(1)显示文件 /etc/passwd 的末尾 10 行
[root@localhost test]# tail /etc/passwd
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
saslauth:x:996:76:Saslauthd user:/run/saslauthd:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
uucp:x:10:14:Uucp user:/var/spool/uucp:/sbin/nologin
nslcd:x:65:55:LDAP Client User:/:/sbin/nologin
arpwatch:x:77:77::/var/lib/arpwatch:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin
(2)显示文件 /etc/passwd 的末尾 3 行
[root@localhost test]# tail -n3 /etc/passwd
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin
(3)从第 N 行开始显示文件的内容,以 /etc/passwd 为例,这里的 N 等于 30
[root@localhost test]# tail -n+30 /etc/passwd
tcpdump:x:72:72::/:/sbin/nologin
mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin
(4)当文件增长时,动态查看文件追加的内容
假设文件 my.log 是滚动的服务日志,每到指定大小将被重命名,这里始终跟踪最新的日志文件。
[root@localhost test]# tail --follow=name my.log
(5)显示多个文件的最后 3 行,并且默认会显示文件名
[root@localhost test]# tail -n3 /etc/passwd /etc/group
==> /etc/passwd <==
mqq:x:500:501::/usr/local/app:/bin/bash
dev_mqq:x:501:501::/usr/local/dev:/bin/bash
dev:x:502:501::/home/dev:/bin/bash
==> /etc/group <==
screen:x:84:
admin:x:500:
mqq:x:501: