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.www58058.com/31383