Linux最最最最重要的哲學思想就是:一切皆文件诸狭。文件以及文件的操作在LInux操作系統(tǒng)中是非常的重要。熟練使用精悍小巧快捷的文本處理方式讓效率更高君纫。
一驯遇、文件查看命令
less 分頁查看
[root@centos7 app]# cat /etc/passwd |less
cat
空行指的是沒有任何字符,如果一行中只有空格那也不能稱為空行蓄髓。
- 對每一行進行編號,不論一行有沒有內(nèi)容都顯示行號叉庐。
[root@centos7 app]# cat -n /etc/passwd
- 對非空行進行編號
如果一行當中只有空格,那么這一行也不是非空行会喝。使用-b
時也進行編號
[root@centos7 app]# cat -b file
- 壓縮空行
壓縮連續(xù)的空行為一行陡叠,一行中只有空格那也不是空行
[root@centos7 app]# cat -s file
- 在每一行結(jié)束地添加$
[root@centos7 app]# cat -E $ /etc/passwd
二、分頁查看內(nèi)容
- 分頁查看more
能顯示文件剩余的百分比
[root@centos7 app]# more passwd
[root@centos7 app]# cat passwd | more
- 分頁查看less
[root@centos7 app]# cat /etc/profile.d/colorls.sh | less
less可以使用搜索使用 /string
搜索字符串好乐。
n
或者N
跳轉(zhuǎn)到下一個或者上一個匹配匾竿。
三、截取文本的前行或者后行
-
head
截取指定前幾行或者前幾字節(jié)的內(nèi)容
[root@centos7 app]# cat colorls.sh | head -c 10 #顯示指定前10字節(jié)
[root@centos7 app]# cat colorls.sh | head -n 10 #顯示指定前10行
[root@centos7 app]# cat colorls.sh | head -10
-
tail
tail與head正好相反蔚万,作用是截取文本的后幾行或后幾字節(jié)岭妖。
tail與head常常搭配使用截取除指定的行
[root@centos7 app]# cat clorls.sh | tail -c 10 #顯示指定后10字節(jié)
[root@centos7 app]# cat clorls.sh | tail -n 10 #顯示指定后10行
[root@centos7 app]# cat clorls.sh | tail -10 #顯示指定后10行
- head與tail搭配使用,精確找出第三行
[root@centos7 app]# cat file|head -3|tail -1
四、截取文本的某一列
-
cut
cut可以指定分隔符后昵慌,截取出指定的列假夺。如果一行沒有分隔符的話,整行輸出斋攀。
#指定冒號為分隔符已卷,只顯示第2列
[root@centos7 app]# cat file |cut -d: -f2
#指定冒號為分隔符,顯示2到3列
[root@centos7 app]# cat file |cut -d: -c2-3
#
#如果分隔符有歧義淳蔼,那么需要加引號
[root@centos7 app]# cat file |cut -d";" -f2
-
paste
將兩個文本同行號的內(nèi)容侧蘸,輸出到一行
#默認使用tab做分隔符
[root@centos7 app]# paste file file2
1 a
1 a
1 a
#指定冒號作文分隔符
[root@centos7 app]# paste -d: file file2
#將所有內(nèi)容輸出到一行
[root@centos7 app]# paste -s file file2
1 1 1
a a a
五、文本統(tǒng)計工具與排序
- wc可以用來統(tǒng)計行數(shù)鹉梨,字數(shù)讳癌,字符數(shù)
[root@centos7 app]# wc passwd
42 88 2308 passwd
行數(shù) 文字數(shù) 字符數(shù) 文件名
#
#統(tǒng)計行數(shù)
[root@centos7 app]# wc passwd -l
42 passwd
#統(tǒng)計字符數(shù)
[root@centos7 app]# wc passwd -w
88 passwd
#統(tǒng)計字節(jié)數(shù)
[root@centos7 app]# wc passwd -c
2308 passwd
- sort工具用來對文本進行排序
#刪除重復的行
[root@centos7 app]# sort -u file2
#按字數(shù)的大小進行排序
[root@centos7 app]# sort -n file2
# -r 執(zhí)行反方向(由上至下)整理
# -n 執(zhí)行按數(shù)字大小整理
# -f 選項忽略(fold)字符串中的字符大小寫
# -u 選項(獨特,unique)刪除輸出中的重復行
# -t c 選項使用c做為字段界定符
# -k X 選項按照使用c字符分隔的X列來整理能夠使用多次
- uniq 刪除連續(xù)重復的行為一行
壓縮連續(xù)重復的行為一行
[root@centos7 app]# uniq file2
#統(tǒng)計每行重復出現(xiàn)的次數(shù)
[root@centos7 app]# uniq file2 -c
#顯示不曾連續(xù)重復的行
[root@centos7 app]# uniq file2 -u
練習題
1存皂、找出ifconfig “網(wǎng)卡名” 命令結(jié)果中本機的IPv4地址
[root@centos7 app]# ifconfig ens33 |head -2|tail -1|tr -s ' '|cut -d ' ' -f3
192.168.0.129
解析:
ifconfig ens3--------顯示網(wǎng)卡信息
head -2|tail -1------保留IP信息的一行
tr -s ' ' -----------將空格壓縮
cut -d ' ' -f3-------空格為分隔符顯示出第三列
***
2晌坤、查出分區(qū)空間使用率的最大百分比值
[root@centos7 app]# df -h| tr -s ' '|cut -d ' ' -f5
Use%
7%
0%
1%
*解析*:
>```
tr -s ' '--------------壓縮空格
cut -d ' ' -f5---------以空格為分隔符,截取第五列
3旦袋、查出用戶UID最大值的用戶名骤菠、UID及shell類型
[root@centos7 app]# cut -d: -f1,3,7 /etc/passwd|sort -t : -k 2 -n|tail -1
nfsnobody:65534:/sbin/nologin
解析:
cut -d: -f1,3 /etc/passwd-----以:為分隔符,取1,3列
sort -t : -k 2 -n-------------以:作為分隔符疤孕,按第二列從小到大排序
tail -1-----------------------排序后最后一行是最大的商乎,所以取最后一行
***
4、查出/tmp的權(quán)限胰柑,以數(shù)字方式顯示
用命令本身的快捷方法
[root@centos7 app]# stat -c %a /tmp/
1777
用本章的知識解決
[root@centos7 app]# stat /tmp/ | head -n4|tail -1|tr '(' '/'|cut -d/ -f2
1777
*解析*:
>```
stat /tmp/ -----------------此命令可以查看到目錄數(shù)字形式的權(quán)限
head -n4--------------------數(shù)字權(quán)限在第四行截亦,所以取出前四行
tail -1---------------------取出只有數(shù)字權(quán)限的一行
|tr '(' '/'-----------------設置分隔符
cut -d/ -f2-----------------取出權(quán)限