日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux基础三剑客

發(fā)布時間:2025/3/21 linux 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux基础三剑客 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、grep:文本搜索工具

??????? -c??? 只輸出匹配的行數(shù)

????????-i???? 不區(qū)分大小寫

????????-v????過濾掉包含指定字符串的行

????????-s????不顯示不存在或無匹配的文本的錯誤信息

????????-w????只顯示匹配的整個單詞,而不是字符串的一部分

????????-n????顯示匹配行及行號

????????-l????? 只列出匹配的文件名

????????-L???? 列出不匹配的文件名

??????????? 例:

????????? grep -c root? /etc/passwd????如果包含root字符串在文件中有兩行,顯示為2

??????????? grep -i root /etc/passwd?????? 顯示出root字符串的行,包含其大小寫

???????????? grep -v root /etc/passwd????? 顯示除含有root字符串的行

???????????? grep ‘test’ d*????????????顯示所有以d開頭的文件中包含test字符串的行

????????? grep '^$' /etc/passwd????顯示passwd文件中的空行

????????? grep 'test'? aa bb cc????????顯示在aa,bb,cc文件中匹配test的行

????????正則表達式的主要參數(shù):

????????????????????\????????忽略正則表達式中特殊字符的原有含義

????????????????????[]????????單個字符,如[a]即[a]符合要求

????????????????????[-]????????范圍,如[a-z],即a,b,c一直到z都符合要求

????????????????????????grep '[a-z]\{5\}' aa????顯示所有包含每個字符串至少有5個連續(xù)小寫字符的字符串的行,a-z都可以

????????????????????????grep 'w\(es\)t.*\1' aa????如果west被匹配,則es被存儲到內(nèi)存中,并標記為1,然后搜索任意個字符(.*), 這些字符后面緊跟著另外一個es(\1),找到就顯示該行。例:west.es? west.esdd.es west.aa.es

????????????????????????grep test /mnt/*????????目錄下搜索帶字符串test的文件

????????????????????????grep -l test /mnt/*????????只列出匹配的文件名

????????????????????????grep -L test /mnt/*????????列出不匹配的文件名

????????? [[:alpha:]]????????單個字母

????????? [[:lower:]]????????單個小寫字母

????????? [[:upper:]]????????單個大寫字母

????????? [[:alnum:]]????????單個字母或數(shù)字

????????? [[:punct:]]????????單個符號,不包含數(shù)字,字母以及空格

????????? [[:digit:]]????????????數(shù)字

????????? [[:space:]]????????空格

????????????????例:grep '5[[:upper:]][[:upper:]]' aa????????顯示以5開頭以兩個大寫字母結尾的行

二、sed:文本處理工具

????????-u????????展示修改后的文本內(nèi)容,但不是真的改

????????-i????????? 直接修改文件,不顯示內(nèi)容

????????sed '1d' file????????刪除第一行

????????sed '2,$d' file ? ????????刪除第二行到最后一行

????????sed '1a play lol' file ??? 第一行后面增加字符串"play lol"

????????sed '5i go die' file????????在第5行前添加"go die"

????????sed '1c Hi' file????????第一行代替為Hi

????????sed -n 2,'$'p file??????? 顯示第二行到最后一行

????????sed 's/^.*asd.*$/lizekang/g' file????匹配asd字符,并修改整行為lizekang

????????sed '14c [file]' file????????修改14行整行為[file]

????????sed -n '/^\//p' file????????顯示以/開頭的行(如果沒有-n選項,則顯示file中的所有內(nèi)容和/開頭的行兩份,-n模式將其他行過濾掉,只顯示/開頭的行)

????????sed '/^$/d' fiel????????刪除文件中的空白行

????????sed '/^#/d' file ????????刪除文件開頭的#號

????????sed 's/^[[:spqce:]]*//g' fiel????????刪除文件行首的空格


三、awk:文本分析工具

????????-F(分割詞):不添加此參數(shù)默認以空格分割。

????????'{print $1}' :必要字段,輸出具體第幾段,$NF表示最后一個元素。

????????awk '{print NR,$0}' 在每行前面加上行號。

????????awk '{if (NR<=3+1 && NR>=2) print $0}' 輸出第二行到第四行。

????????netstat -an|awk '/^tcp/ {++state[$NF]} END {for(i in state) print i,"\t",state[i]}'

????????????/^tcp/? 濾出tcp開頭的記錄,屏蔽udp,socket等無關記錄。

????????????state[]?? 相當于定義一個叫state的數(shù)組

????????????NF????????表示記錄的字段數(shù) ????????

????????????state[$NF]?? 表示數(shù)組元素的值,如上就是state[TIME_WAIT]的連接數(shù)

????????????++state[$NF]????上面的連接數(shù)加1

????????????下面是awk的一些練習:

????????????????1. 用awk 打印整個test.txt (以下操作都是用awk工具實現(xiàn),針對test.txt);

????????????????????????awk '{print $0}' test.txt

??? ????????????2. 查找所有包含’bash’的行;

????????????????????????awk '/bash/' test.txt

??? ????????????3. 用’:’作為分隔符,查找第三段等于0的行;

????????????????????????awk -F ':' '$3=="0"' test.txt

??? ????????????4. 用’:’作為分隔符,查找第一段為’root’的行,并把該段的’root’換成’toor’(可以連同sed一起使用);

????????????????????????awk -F ':' '$1=="root"' test.txt | sed 's/root/root/g'

??? ????????????5. 用’:’作為分隔符,打印最后一段;

????????????????????????awk -F ':' '{print $NF}' text.txt

??? ????????????6. 打印行數(shù)大于20的所有行;

????????????????????????awk -F ':' 'NR>20' test.txt

??? ????????????7. 用’:’作為分隔符,打印所有第三段小于第四段的行;

????????????????????????awk -F ':' '$3<$4' test.txt

??? ????????????8. 用’:’作為分隔符,打印第一段以及最后一段,并且中間用’@’連接 (例如,第一行應該是這樣的形式 “root@/bin/bash”;

????????????????????????awk -F ':' '{print $1"@"$NF}' test.txt

??? ????????????9. 用’:’作為分隔符,把整個文檔的第四段相加,求和;

????????????????????????awk -F ':' '{(sum+=$4)}; END {print sum}' test.txt



轉載于:https://blog.51cto.com/zzkkk/1846979

總結

以上是生活随笔為你收集整理的Linux基础三剑客的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。