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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux系统常用的文本查看及处理命令相关的知识,希望对你有一定的参考价值。

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

1、cat命令

(1)作用

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

(2)用法

    1):用法:cat  (选项) 文件

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

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

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

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

-E:显示行结束符$

(3)案例:

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

     1  hello world

     2

     3  end

[[email protected] ~]# cat -b dayi123.txt   #对空白行不编号

     1  hello world

 

     2  end

[[email protected] ~]# cat -A dayi123.txt   #打印隐藏字符

hello world$

$

end$

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

     1  hello world$

     2  $

     3  end$

2、tac命令

(1)作用

    将文件的内容到过来看

(2)用法

     tac (选项) 文件

3)案例:

[[email protected] ~]# 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)案例:

[[email protected] ~]# 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)案例:

[[email protected] ~]# 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)应用案例:

[[email protected] ~]# cut -d":" -f1,3,7 /etc/passwd | head -3

root:0:/bin/bash

bin:1:/sbin/nologin

daemon:2:/sbin/nologin

[[email protected] ~]# 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)应用案例:

[[email protected] ~]# wc /etc/passwd #统计/etc/passwd文件中行数,字符数

  32   55 1570 /etc/passwd

[[email protected] ~]# wc -l /etc/passwd  #统计/etc/passwd文件中行数

32 /etc/passwd                                  

[[email protected] ~]# wc -m /etc/passwd  #统计/etc/passwd文件中字符数

1570 /etc/passwd

[[email protected] ~]# wc -w /etc/passwd  #统计/etc/passwd文件中字数

55 /etc/passwd

9、sort命令

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

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

    选项:-f 忽略大小写

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

         -r 反向排序

         -t 指定分隔符

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

(3)应用举例:

[[email protected] ~]# 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

[[email protected] ~]# 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中的字段进行反向排序

[[email protected] ~]# 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中的第三字段以数字进行反向排序

[[email protected] ~]# 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地址次数

[[email protected] ~]# 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)应用举例:

[[email protected] ~]# cat dayi.txt dayi123.txt #查看两个文件的内容

hello world

 

end

haha

hello world

 

end

[[email protected] ~]# diff dayi123.txt dayi.txt  #比较两个文件的异同

3a4

> haha

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

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

[[email protected] ~]# 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)查出分区空间使用率的最大百分比值

[[email protected] ~]# 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

[[email protected] ~]# df -h | awk ‘{print $5}‘ | sort -nr | head -1

100%

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

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

Operation:1007:/bin/bash

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

Operation:1007:/bin/bash

(4)取出本机的IP地址

[[email protected] ~]# ifconfig eth0 | grep "inet addr" | cut -d":" -f2 | cut -d" " -f1

172.16.251.192

[[email protected] ~]# ifconfig eth0 | head -2 | tail -1 | awk ‘{print $2}‘ | cut -d":" -f2

172.16.251.192

本文出自 “dayi123” 博客,请务必保留此出处http://dayi123.blog.51cto.com/12064061/1912703

以上是关于linux系统常用的文本查看及处理命令的主要内容,如果未能解决你的问题,请参考以下文章

Linux常用命令大全

Linux常用命令合集

linux常用命令及文件管理系统

0x01 RHEL linux 文本编辑常用命令

176条DevOps人员常用的linux命令速查表

176条DevOps人员常用的linux命令速查表