Linux系统常用的文件查看及处理命令

常用的文本查看及处理命令

1、cat命令

(1)、作用

连接文件并打印到标准输出设备上,cat经常用来显示文件的内容。

(2)、用法

1):用法:cat  (参数) 文件

2):常用参数 -n或-number:有1开始对所有输出的行数编号;

-b或--number-nonblank:和-n相似,只不过对于空白行不编号;

-s或--squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行;

-A:显示不可打印字符,行尾显示“$”

-E:显示行结束符$

(3)、应用举例:

[root@localhost ~]# cat -n dayi123.txt   #显示行号打印文件内容

1  hello world

2

3  end

[root@localhost ~]# cat -b dayi123.txt   #对空白行不编号

1  hello world

2  end

[root@localhost ~]# cat -A dayi123.txt   #打印隐藏字符

hello world$

$

end$

[root@localhost ~]# cat -An dayi123.txt  #打印隐藏字符并显示行号

1  hello world$

2  $

3  end$

2、tac命令

(1)、作用

将文件的内容到过来看

(2)、用法

tac (参数) 文件

(3)、应用:

[root@localhost ~]# tac dayi123.txt

end

hello world

3、more命令

(1)、作用:分页查看文件内容,全屏幕的方式按页显示文本文件的内容,命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己显示的该文件的百分比

(2)、语法:more 文件

参数:    -<数字>:指定每屏显示的行数;

-d:显示“[press space to continue,'q' to quit.]”和“[Press'h' for instructions]”;

-c:不进行滚屏操作。每次刷新这个屏幕;

-s:将多个空行压缩成一行显示;

-u:禁止下划线;

+<数字>:从指定数字的行开始显示。

(3)、常用的操作:

1)按Space键:显示文本的下一屏内容。 按Enier键:只显示文本的下一行内容。

2)按斜线符|:接着输入一个模式,可以在文本中寻找下一个相匹配的模式。

3)按H键:显示帮助屏,该屏上有相关的帮助信息。

4)B键:显示上一屏内容。 按Q键:退出rnore命令。

4、less命令

(1)作用:分页查看文件内容,less命令显示文件时,用PageUp键向上翻页,用PageDown键向下翻页。要退出less程序,应按Q键

(2)语法:less [参数] 文件

参数:-e:文件内容显示完毕后,自动退出;

-f:强制显示文件;

-g:不加亮显示搜索到的所有关键词,仅显示当前显示的关键字,以提高显示速度;

-l:搜索时忽略大小写的差异;

-N:每一行行首显示行号;

-s:将连续多个空行压缩成一行显示;

-S:在单行显示较长的内容,而不换行显示;

-x<数字>:将TAB字符显示为指定个数的空格字符。

5、head命令

(1)作用:用于显示文件的开头的内容。在默认情况下,head命令显示文件的头10行内容

(2)语法:head [参数] 文件

参数:-n<数字>:指定显示头部内容的行数;

-c<字符数>:指定显示头部内容的字符数;

-v:总是显示文件名的头信息;

-q:不显示文件名的头信息。

(3)应用:

[root@localhost ~]# head -5 /etc/passwd    #显示文件前十行

root:x:0:0:root,mgedu,123456,23456:/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

6、tail命令

(1)作用:用于输入文件中的尾部内容。tail命令默认在屏幕上显示指定文件的末尾10行

(2)语法:tail文件

参数:-n或——line=:输出文件的尾部N(N位数字)行内容。

--help:显示指令的帮助信息;

(3)应用:

[root@localhost ~]# tail -5 /etc/passwd   #显示文件倒数五行的内容

class:x:1003:1004:test:/home/class:/bin/sh

magedu:x:1004:1005::/home/magedu:/bin/bash

Test:x:1005:1007::/home/Test:/bin/bash

Program:x:1006:1008::/home/Program:/bin/bash

Operation:x:1007:1009::/home/Operation:/bin/bash

7、cut命令

(1)作用:用来显示行中的指定部分,删除文件中指定字段。cut经常用来显示文件的内容,还可将两个或多个文件中的内容通过重定向输出到另一个文件中。

(2)语法:cut [选项] [参数]

常用选项:-b:仅显示行中指定直接范围的内容;

-c:仅显示行中指定范围的字符;

-d:指定字段的分隔符,默认的字段分隔符为“TAB”;

-f:显示指定字段的内容;

-n:与“-b”选项连用,不分割多字节字符;

--complement:补足被选择的字节、字符或字段;

--out-delimiter=<字段分隔符>:指定输出内容是的字段分割符;

--help:显示指令的帮助信息;

--version:显示指令的版本信息。

(3)应用案例:

[root@localhost ~]# cut -d":" -f1,3,7 /etc/passwd | head -3

root:0:/bin/bash

bin:1:/sbin/nologin

daemon:2:/sbin/nologin

[root@localhost ~]# cut -d":" -f1,3,7 /etc/passwd | head -3 |cut -c 1-3

roo

bin

dae

8、wc命令

(1)作用:统计文件里的内容有多少行 多少个字节 字符

(2)语法:wc [选项] 文件

常用选项:wc -c filename:显示一个文件的字节数

wc -m filename:显示一个文件的字符数

wc -l filename:显示一个文件的行数

wc -L filename:显示一个文件中的最长行的长度

wc -w filename:显示一个文件的字数

(3)应用案例:

[root@localhost ~]# wc /etc/passwd #统计/etc/passwd文件中行数,字符数

32   55 1570 /etc/passwd

[root@localhost ~]# wc -l /etc/passwd  #统计/etc/passwd文件中行数

32 /etc/passwd

[root@localhost ~]# wc -m /etc/passwd  #统计/etc/passwd文件中字符数

1570 /etc/passwd

[root@localhost ~]# wc -w /etc/passwd  #统计/etc/passwd文件中字数

55 /etc/passwd

9、sort命令

(1)作用:将文本文件内容加以排序

(2)语法:sort [选项] 文件

选项:-f 忽略大小写

-n 以数值类型进行排序,默认以文本内容进行排序

-r 反向排序

-t 指定分隔符

-k n{,m}:按照指定的字段范围排序,第n字段开始,第m字段结束

(3)应用举例:

[root@localhost ~]# sort /etc/passwd | head -3  #对/etc/passwd排序

adm:x:3:4:adm:/var/adm:/sbin/nologin

avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin

bin:x:1:1:bin:/bin:/sbin/nologin

[root@localhost ~]# sort -r /etc/passwd | head -3 #对/etc/passwd反向排序

wangcai:x:1001:1001::/home/wangcai:/bin/bash

tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin

Test:x:1005:1007::/home/Test:/bin/bash

#按/etc/passwd中的字段进行反向排序

[root@localhost ~]# sort -t ":" -k 3,3 /etc/passwd | head -3root:x:0:0:root,mgedu,123456,23456:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

dayi123:x:1000:1000::/home/dayi123:/bin/bash

#按/etc/passwd中的第三字段以数字进行反向排序

[root@localhost ~]# sort -n -t ":" -k 3,3 /etc/passwd | head -3

root:x:0:0:root,mgedu,123456,23456:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

10、uniq命令

(1)作用:用于检查及删除文本文件中重复出现的行列

(2)语法:uniq [选项] 文件

常用选项:-c或--count 在每列旁边显示该行重复出现的次数。

-d或--repeated 仅显示重复出现的行列。

-f<栏位>或--skip-fields=<栏位> 忽略比较指定的栏位。

-s<字符位置>或--skip-chars=<字符位置> 忽略比较指定的字符。

-u或--unique 仅显示出一次的行列。

-w<字符位置>或--check-chars=<字符位置> 指定要比较的字符。

[输入文件] 指定已排序好的文本文件。

[输出文件] 指定输出的文件。

(3)应用举例

#统计日志文件/var/log/access_log中出现的IP地址次数

[root@localhost ~]# awk -F " " '{print $1}' /var/log/access_log | uniq -c

4 172.16.254.253

4 172.16.0.100

12 172.16.253.11

1 172.16.254.252

8 172.16.253.11

5 172.16.252.210

1 172.16.254.252

11、diff命令

(1)作用:比较给定的两个文件的不同

(2)语法:diff [参数] 文件1 文件2

参数:-a或——text:diff预设只会逐行比较文本文件;

-b或--ignore-space-change:不检查空格字符的不同;

-B或--ignore-blank-lines:不检查空白行;

-c:显示全部内容,并标出不同之处;

-u,-U<列数>或--unified=<列数>:以合并的方式来显示文件内容的不同

(3)应用举例:

[root@localhost ~]# cat dayi.txt dayi123.txt #查看两个文件的内容

hello world

end

haha

hello world

end

[root@localhost ~]# diff dayi123.txt dayi.txt  #比较两个文件的异同

3a4

> haha

12、文本查看命令综合应用

(1)统计日志中频繁访问的前10个IP

[root@localhost ~]# cat /var/log/access_log | cut -d" " -f1 | sort | uniq -c | sort -nr | head

29885 172.16.250.130

161 ::1

122 172.16.250.121

82 172.16.253.11

14 172.16.254.252

10 172.16.254.9

10 172.16.250.167

8 172.16.250.137

5 172.16.252.210

5 172.16.250.54

(2)查出分区空间使用率的最大百分比值

[root@localhost ~]# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda3        18G  987M   17G   6% /

devtmpfs        480M     0  480M   0% /dev

tmpfs           489M     0  489M   0% /dev/shm

tmpfs           489M  6.7M  483M   2% /run

tmpfs           489M     0  489M   0% /sys/fs/cgroup

/dev/sda1       497M  118M  379M  24% /boot

tmpfs            98M     0   98M   0% /run/user/0

/dev/sr0        7.3G  7.3G     0 100% /mnt/cdrom

[root@localhost ~]# df -h | awk '{print $5}' | sort -nr | head -1

100%

(3)查出用户UID最大值的用户名、UID及shell类型

[root@localhost ~]# cat /etc/passwd | sort -nr  -t ":" -k 3,3 | head -1 | cut -d":" -f1,3,7

Operation:1007:/bin/bash

[root@localhost ~]# cat /etc/passwd | cut -d":" -f1,3,7 |sort -nr -t ":" -k 2,2 | head -1

Operation:1007:/bin/bash

(4)取出本机的IP地址

[root@dayi123 ~]# ifconfig eth0 | grep "inet addr" | cut -d":" -f2 | cut -d" " -f1

172.16.251.192

[root@dayi123 ~]# ifconfig eth0 | head -2 | tail -1 | awk '{print $2}' | cut -d":" -f2

172.16.251.192

上一篇:线段树(区间树)之区间染色和4n推导过程


下一篇:MySQL双主热备问题处理