linux命令:head、tail

一、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 514 17:00 log1.txt
-rw-r--r--. 1 root root 592 514 17:00 log2.txt
-rw-r--r--. 1 root root 655 514 17:06 log3.txt
-rw-r--r--. 1 root root  27 517 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 514 17:00 log1.txt
-rw-r--r--. 1 root root 592 514 17:00 log2.txt
-rw-r--r--. 1 root root 655 514 17:06 log3.txt
-rw-r--r--. 1 root root  27 517 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:

猜你喜欢

转载自blog.csdn.net/qq_16268979/article/details/128298196
今日推荐