Linux的哲学思想之一是一切皆文件,所有系统中有许多文本文件。因此Linux有许多关于文本处理的命令。
cat命令
连接文件并打印到标准输出设备上,cat经常用来显示文件内容。
语法
cat [OPTION]… [FILE]…
常用选项
-A, --show-all #显示所有控制符 -b, --number-nonblank #显示非空格行号 -E, --show-ends #显示结束符,没行后面会加个$ -n, --number #对每行编号 -s, --squeeze-blank #压缩相邻的行的单个空行
例如
[root@localhost ~]# cat -An /etc/issue #显示所所控制符,次文只有换行。n对没行编号 1\S$ 2Kernel \r on an \m$ 3$ 4Mage Education Learning Services$ 5http://www.magedu.com$ 6$
[root@localhost ~]# cat -b /etc/issue #b不对空行编号 1\S 2Kernel \r on an \m 3Mage Education Learning Services 4http://www.magedu.com
[root@localhost ~]# cat >file #cat也经常用来创建新文件,输入内容再ctrl+d结束即可。 a b c d e f g h a d k l m n q [root@localhost ~]# ll file #列出是否创建了file文件 -rw-r--r-- 1 root root 31 Aug 8 16:58 file [root@localhost ~]# cat file #查看file内容 a b c d e f g h a d k l m n q
[root@localhost ~]# cat file ff #也可以同时查看2个文件 a b c d e f g h a d k l m n q ddd dd dd dd d d 1 2 3 4[root@localhost ~]# cat file ff >new file#合并文一个文件
cut命令
用来显示行中的指定部分,删除文件中指定字段。经常与cat连用
语法
cut OPTION… [FILE]…
选项
-b, --bytes=LIST #按字节切割(3个字节一个汉字) -c, --characters=LIST #按字符切割 -d, --delimiter=DELIM #指定分隔符 -f, --fields=LIST#显示指定字段内容 N:只显示第N个字段 N-:只显示第N字段之后的行 N-M:显示N到M的行 N,M:显示N和M的行 --complement #补充被选择的字节、字符或字段。 --output-delimiter=STRING #自己切割的内容的指定分隔符 -n #与-b同用,不切割字符(匹配汉字是用)
例如
[root@localhost ~]# tail -5 /etc/passwd |cut -d: -f3- #显示以":"分隔的第三字段开始显示 497:496:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin 74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin 72:72::/:/sbin/nologin 500:500:Alan,Home,111,000:/home/linux:/bin/csh 501:501::/home/Alan:/bin/bash
[root@localhost ~]# tail -5 /etc/passwd|cut -c1,3 --output-delimiter=good #用c指定1,3字符显示再用good分割。 pgoodl sgoodh tgoodp lgoodn Agooda
sort命令
将文件进行排序,并将排序结果标准输出。
语法
sort [OPTION]… [FILE]…
sort [OPTION]… –files0-from=F
常用选项
-r, --reverse #倒序显示 -n, --numeric-sort #按数字大小排序 -f, --ignore-case #忽略字符大小写 -u, --unique #选项(独特,unique)删除输出中的重复行 -t, --field-separator=SEP #界定分隔符 -k, --key=KEYDEF #界定列数
例如
[root@localhost ~]# tail -5 /etc/passwd|sort #默认按字母排序 Alan:x:501:501::/home/Alan:/bin/bash linux:x:500:500:Alan,Home,111,000:/home/linux:/bin/csh pulse:x:497:496:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin
[root@localhost ~]# tail -5 /etc/passwd|sort -t: -k3 -n #按":"分隔 指定第三段用数字排序 tcpdump:x:72:72::/:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin pulse:x:497:496:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin linux:x:500:500:Alan,Home,111,000:/home/linux:/bin/csh Alan:x:501:501::/home/Alan:/bin/bash
uniq命令
用于报告或忽略文件中的重复行,一般与sort结合使用
语法
uniq [OPTION]… [INPUT [OUTPUT]]
常用选项
-c, --count #显示重复的行数 -d, --repeated#仅显示重复的行列 -u, --unique :仅显示不重复的行列
例如
[root@localhost ~]# tail /etc/passwd |cut -d: -f4-7|sort|uniq -c #仅显示重复的行 1 1000:mageedu:/home/mageedu:/bin/bash 1 1001::/home/roo:/bin/bash 1 1002::/home/ro:/bin/bash 1 1003::/home/rooo:/bin/bash 1 1004::/home/133:/bin/bash 1 38::/etc/ntp:/sbin/nologin 1 65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin 1 72::/:/sbin/nologin 1 74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin 1 89::/var/spool/postfix:/sbin/nologin
练习
1、找出ifconfig命令结果中本机的所有IPv4地址
[root@localhost ~]# ifconfig|tr -cs '[0-9].' '\n'|sort -ut'.' -k3 #先列出网卡信息在用tr命令把除了数字和.的数字全部转换成换行符(\n),再用sort以"."做分隔符,列出3列 255.255.0.0 127.0.0.1 192.168.200.255 192.168.200.7 255.255.255.0 10.1.255.255 10.1.36.7
2、查出分区空间使用率的最大百分比值
[root@localhost ~]# df|tr -cs '\n'|cut -d' ' -f5|tr -d '%' #df列出分区信息在用tr 把换行符压缩然后用cut用-d以空白做分隔符匹配第5字段最后用tr把多余的%删除 Use #显示结果 1 0 0 3 0 13
29
0
3、查出用户UID最大值的用户名、UID及shell类型
[root@localhost ~]# getent passwd|sort -t: -nk3|cut -d: -f1,3,7|tail -1#列出信息用sort以":"为分隔符指定第三字段按数字排序再用cut以":"分隔 去1,3,7字段最后显示最后一行即可
nfsnobody:65534:/sbin/nologin #显示结果
4、查出/tmp的权限,以数字方式显示
[root@localhost ~]# stat /tmp|tr -s '[:punct:]' ' '|cut -d' ' -f2|head -4|tail -1 #列出信息用tr把标点符号都转换为空行 在用cut以空格为分隔符 去第二字段在显示前4行再显示后1行 1777 #得出结果
5、统计当前连接本机的每个远程主机IP的连接数,并按从大到小排序
[root@localhost ~]# netstat -nt|tr -s ' '|cut -d' ' -f4|tr -cs '[0-9].:' '\n' #列出信息,用cut以空白做分隔符去第4段在用tr命令把出0到9的数字和"."的字符转换为换行符进行压缩、最后得出结果 192.168.200.7:22 192.168.200.7:22 #结果 192.168.200.7:22
原创文章,作者:ladsdm,如若转载,请注明出处:http://www.178linux.com/31383