【命令星级】 ★★★★★
【功能说明】
head命令用于显示文件头部的内容,执行head命令默认会输出文件的开头10行内容。
【语法格式】
head [option] [file]
head [选项] [文件]
【选项说明】
表3-8针对head命令的参数选项进行了说明。
表3-8 head命令的参数选项及说明
**范例3-21:**显示文件的前10行。
[root@centos7 ~]# head /etc/passwd #head命令不接任何参数默认显示文件的前10行。
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
**范例3-22:**显示文件的前5行。
[root@centos7 ~]# head -n 5 /etc/passwd #第一种格式指定显示前5行
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@centos7 ~]# head -5 /etc/passwd #第二种格式也是指定显示前5行,但是这种写法更精简。
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
**范例3-23:**显示文件的前n个字节。
[root@centos7 ~]# head -c 10 /etc/passwd #读取文件的前10个字节。前面的写法是以行为单位的,而-c则是以字节为单位的。该功能不常用。
root:x:0:0
**范例3-24:**打印文件除最后21行之外的内容。
[root@centos7 ~]# head -n -21 /etc/passwd #最后21行不输出,这种写法也不常用。
root:x:0:0:root:/root:/bin/bash
**范例3-25:**显示多个文件。
[root@centos7 ~]# head -1 /etc/passwd /etc/gshadow #显示多个文件头部内容。
==> /etc/passwd <== #文件头。
root:x:0:0:root:/root:/bin/bash
==> /etc/gshadow <==
root:::
[root@centos7 ~]# head -qn 1 /etc/passwd @-q参数不显示文件头。 /etc/gshadow
root:x:0:0:root:/root:/bin/bash
root:::
[root@centos7 ~]# head -vn 1 /etc/passwd /etc/gshadow #-v参数总是显示文件头。
==> /etc/passwd <==
root:x:0:0:root:/root:/bin/bash
==> /etc/gshadow <==
root:::
【命令星级】 ★★★★★
【功能说明】
tail命令用于显示文件尾部的内容,tail命令默认输出文件的最后10行。
【语法格式】
tail [option] [file]
tail [选项] [文件]
【选项说明】
表3-9针对tail命令的参数选项进行了说明。
表3-9 tail命令的参数选项及说明
**范例3-26:**显示文件最后10行的示例。
[root@centos7 ~]# tail /etc/passwd #tail命令不接参数,默认显示最后10行。
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
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
oldboy:x:1000:1000:oldboy:/home/oldboy:/bin/bash
tcpdump:x:72:72::/:/sbin/nologin
**范例3-27:**使用tail命令显示文件末尾5行内容。
[root@centos7 ~]# tail -n 5 /etc/passwd #第一种写法。
abrt:x:173:173::/etc/abrt:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
oldboy:x:1000:1000:oldboy:/home/oldboy:/bin/bash
tcpdump:x:72:72::/:/sbin/nologin
[root@centos7 ~]# tail -5 /etc/passwd #第二种写法,这种写法简单。
abrt:x:173:173::/etc/abrt:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
oldboy:x:1000:1000:oldboy:/home/oldboy:/bin/bash
tcpdump:x:72:72::/:/sbin/nologin
**范例3-28:**通过tail命令从第15行开始显示文件
[root@centos7 ~]# tail -n +5 /etc/passwd #拓展用法,但不常用。
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
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
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
oldboy:x:1000:1000:oldboy:/home/oldboy:/bin/bash
tcpdump:x:72:72::/:/sbin/nologin
**范例3-29:**通过tail命令实时监控文件的变化。
[root@centos7 ~]# tail -f test.txt #tail -f实时监控文件的变化,在生产中常用的场景是监控日志文件。
welcome to Linux
if you like Linux please support me
bye! boys and girls
#光标会停在此处
#新开一个终端
[root@centos7 ~]# echo 'tail -f jiankong' >> test.txt #往test.txt文件里追加内容。
[root@centos7 ~]# tail -f test.txt
welcome to Linux
if you like Linux please support me
bye! boys and girls
tail -f jiankong #新加的内容会,实时显示。
^C #Ctrl+c结束
**范例3-30:**参数-F的使用。
[root@centos7 ~]# tail -f neteagle #使用-f参数,当文件不存在时就会报错并退出命令。
tail: cannot open ‘neteagle’ for reading: No such file or directory
tail: no files remaining
[root@centos7 ~]# tail -F neteagle #使用-F参数,当文件不存在时会返回报错,但是还会一直等待文件生成,不会退出命令。
tail: cannot open ‘neteagle’ for reading: No such file or directory
#新开一个终端生成这个文件
[root@centos7 ~]# echo neteagle test>>neteagle
[root@centos7 ~]# tail -F neteagle
tail: cannot open ‘neteagle’ for reading: No such file or directory
tail: ‘neteagle’ has appeared; following end of new file
neteagle test #这时会显示刚才生成文件的内容。
^C