head 命令

head [选项] [文件]
head命令输出文件开头部分,默认情况下显示文件的头10行。如果指定多个文件,每个文件前都有一个标题,给出文件名。如果没有指定文件,或当文件为-时,读取标准输入。

(1).选项

-c,--bytes=[-]K 显示文件前K字节。如果K前有-,则表示显示除最后K字节外的所有内容
-n,--lines=[-]K 显示前K行。如果K前有-,则表示显示除最后K行外的所有行
-q,--quiet,--silent 不显示标题文件名
-v,--verbose 总是显示标题文件名
--help 显示帮助信息并退出
--version 显示版本信息并退出
-F 跟踪文件名称
-f  跟踪文件,删除完就不会显示了

(2).实例

指定行数或字节数

[root@xuexi ~]# head -n 2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

[root@xuexi ~]# head -c 10 /etc/passwd
root:x:0:0

指定末尾除N行或N字节不显示外,全部显示

[root@xuexi ~]# head -n -40 /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

[root@xuexi ~]# head -c -2048 /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

总是显示标题文件名

[root@xuexi ~]# head -n 2 -v /etc/passwd
==> /etc/passwd <==
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

指定多个文件

[root@xuexi ~]# head -n 5 /etc/passwd /etc/firewalld/firewalld.conf 
==> /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
        //两个文件之间会空一行
==> /etc/firewalld/firewalld.conf <==
# firewalld config file
# default zone
# The default zone used if an empty zone string is used.
# Default: public

不显示标题文件名

[root@xuexi ~]# head -n 5 -q /etc/passwd /etc/firewalld/firewalld.conf
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  //此时中间就没有空行
# firewalld config file
# default zone
# The default zone used if an empty zone string is used.
# Default: public

注意:head也经常用于管道重定向

tail 命令

tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件
tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。

命令格式:

tail [参数] [文件]  
参数:

-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示文件的尾部 n 行内容
--pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

实例

使用`-n`命令显示指定的行数,也可以省略字母`n`,只使用`-`和数字(数字和`-`之间没有空格)。
例如:查看自己创建的用户,查看`/etc/passwd`文件最后两行内容:
[root@localhost ~]# tail -2 /etc/passwd
bob:x:1000:1001::/home/bob:/bin/bash
user01:x:1001:1002::/home/user01:/bin/bash


要显示 notes.log 文件的最后 10 行,请输入以下命令:
tail notes.log

要跟踪名为 notes.log 的文件的增长情况,请输入以下命令:
tail -f notes.log
此命令显示 notes.log 文件的最后 10 行。当将某些行添加至 notes.log 文件时,tail 命令会继续显示这些行。 显示一直继续,直到您按下(Ctrl-C)组合键停止显示。

显示文件 notes.log 的内容,从第 20 行至文件末尾:
tail +20 notes.log

显示文件 notes.log 的最后 10 个字符:
tail -c 10 notes.log

tail -f、tail -F、tailf三者区别

tail -f      等同于--follow=descriptor,根据文件描述符进行追踪,当文件改名或被删除,追踪停止
tail -F     等同于--follow=name  --retry,根据文件名进行追踪,并保持重试,即该文件被删除或改名后,如果再次创建相同的文件名,会继续追踪

tailf      等同于tail -f -n 10(貌似tail -f或-F默认也是打印最后10行,然后追踪文件),与tail -f不同的是,如果文件不增长,它不会去访问磁盘文件,所以tailf特别适合那些便携机上跟踪日志文件,因为它减少了磁盘访问,可以省电

cut 选取命名

cut是一个选取命令,就是将一段数据经过分析,取出我们想要的。一般来说,选取信息通常是针对“行”来进行分析的,并不是整篇信息分析的。

(1)其语法格式为:

cut  [-bn] [file] 或 cut [-c] [file]  或  cut [-df] [file]

使用说明
cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。
如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。

主要参数

-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c :以字符为单位进行分割。
-d :自定义分隔符,默认为制表符(可以字符、可以字母)。
-f  :与-d一起使用,指定显示哪个区域。
-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的<br />范围之内,该字符将被写出;否则,该字符将被排除。
n :只显示第n项
n- :显示 从第n项一直到行尾
n-m :显示 从第n项到第m项(包括m)

实例

head -2 1.txt | cut -d ':' -f 1,2
head -2 1.txt | cut -d ':' -f 1-2
head -2 1.txt | cut -c 5

paste命令

Linux paste 命令用于合并文件的列。
paste 指令会把每个文件以列对列的方式,一列列地加以合并。

语法
paste [-s][-d <间隔字符>][--help][--version][文件...]

参数:
-d<间隔字符>或--delimiters=<间隔字符>  用指定的间隔字符取代跳格字符。
-s或--serial  串列进行而非平行处理。
--help  在线帮助。
--version  显示帮助信息。
[文件…] 指定操作的文件路径

实例

$ more ts1   //查看文件ts1
1
2
$ more ts2   //查看文件ts2
cat
paste
$ cat ts1 ts2  //按行合并
1
2
cat
paste
$ paste ts1 ts2 //按列合并
1 cat
2 paste

# 指定分隔符为 : 
> paste -d : part1 part2
1:a
2:b
3:c
4:d
5:e
# 转置命令
> paste -s part1 part2
1       2       3       4       5
a       b       c       d       e

wc用于统计字数命令

Linux wc命令用于计算字数。
利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。

语法
wc [-clw][--help][--version][文件...]
参数:

-c或--bytes或--chars 只显示Bytes数。
-l或--lines 只显示行数。
-w或--words 只显示字数。
--help 在线帮助。
--version 显示版本信息

实例

$ wc testfile testfile_1 testfile_2  #统计三个文件的信息  
3 92 598 testfile                    #第一个文件行数为3、单词数92、字节数598  
9 18 78 testfile_1                   #第二个文件的行数为9、单词数18、字节数78  
3 6 32 testfile_2                    #第三个文件的行数为3、单词数6、字节数32  
15 116 708 总用量                    #三个文件总共的行数为15、单词数116、字节数708