您好,登錄后才能下訂單哦!
前言
Linux,全稱GNU/Linux,是一套免費使用和自由傳播的類Unix操作系統,是一個基于POSIX和Unix的多用戶、多任務、支持多線程和多CPU的操作系統。伴隨著互聯網的發展,Linux得到了來自全世界軟件愛好者、組織、公司的支持。它除了在服務器方面保持著強勁的發展勢頭以外,在個人電腦、嵌入式系統上都有著長足的進步。使用者不僅可以直觀地獲取該操作系統的實現機制,而且可以根據自身的需要來修改完善Linux,使其最大化地適應用戶的需要。
Linux 的優點:
穩定性和高效性:因為 Linux 是由 Unix 發展而來,因此 Linux 與 Unix 有許多相似之處,不只是用戶接口和操作方式,Linux 還繼承了 Unix 卓越的穩定性和高效性。對于使用 Linux 作為操作系統的服務器,連續運行一年不宕機是相當平常的事情。
低配置要求:Linux 對硬件的要求很低,它可以在數年前的電腦上很流暢的運行。使用 Windows,則需要不斷升級機器的硬件。
免費或者少許費用:Linux 基于 GPL,因此任何人可以免費使用或者修改其中的原代碼。只有在選擇某些廠商制作的 Linux 的發行版時,才會需要一點點費用。
強大的支持:大量的 Linux 愛好者會進行交流討論,并且開發分享一些好的軟件,有非常開放的使用氛圍。
安全性:Linux 擁有相當龐大的用戶和社區支持,因此能很快發現系統漏洞,并迅速發布安全補丁。
正則表達式
ifconfig |sed -n '2p' |sed 's.*inet//g' |sed 's#netmask.*$##g' #用/ # 均可 理論可用任何特殊字符替代
#sed -r 后面可跟擴展正則 擴展正則 + (.*)
ifconfig |sed -n 2p |sed -r 's#^.*inet (.*) Broast.*$#\1#g' # \1 代表正則中的第一個GROUP 即(.*)里的內容
ifconfig |sed -nr '2s#^.*inet (.*)net.*$#\1#gp' #合成一行
ifconfig |awk 'NR==2{print $2}' #取IP地址 awk 默認分隔符是空格 取IP 最方便
ifconfig ens33| grep -o "inet [0-9.]*" |grep -o "[0-9.]*" #取IP
ifconfig ens33| sed -nr '2s#^.*inet ([0-9].*)netmask.*$#\1#gp'
cat oldboy.txt| sed -r 's#^ .*inet(.*)netmask(.*)broadcast(.*)$^C1 \2 \3 #g'
sed -r 's#(.*):(.*):(.*):(.*):(.*):(.*):(.*)$#\7 \6 \5 \4 \3 \2 \1#g' #后向引用換位置 sed最多引用9個,用awk更方便
sed -n '/^$/d' #空行刪除 //中寫字符串
sed '1,2s#C#--&-#g' # 這里&代表C C 也可以是正則表達式
ls | sed 's#(^.*)haha#mv \1.jpg#g' |bash
sed '1~2p's #a i d奇數行
sed '2~2p's #a i d偶數行
sed 's#^#head#g' #頭加
sed 's#$#tail#g' # 尾加
sed 's#^#test#g' #開頭加test
sed 's#$#test#g' #末尾加test
sed多行操作 sed '2a,str' '1~2a,str' '1,10i,str' / '1,2d' '5~10d' / '1~3p' '1,3p'
#sed 在 a i d 的時候 必須有相應的行,空文件會出錯,也就是說 空文件無法直接用sed 添加
sed '/new/d' # 刪除包含new的行 sed命令中 -n p sed 中 -n p 基本都是成對出現
awk -F ":" '{print $1":"$2":"$3":"$4":"$5":"$6":"$7"------"$1}' passwd #這里是全文操作
awk -F "5:5|28" 'NR==5{print $2}' #5:5 或 28 作為分隔符 兩個字符串 這種格式最好用| 即使單個字符也用| 否則字符串造成歧義
ll | awk '{if($2>5) print $0}' $0 表示整行
sed -i 's#pp#dd#g' 1.txt 將1.txt 文件中的pp 改成dd 立即生效 -i 代表直接寫入文件
#在LINUX 中,所有的文本處理 都是讀取一行(進內存) 處理一行 輸出一行 直接循環結束
正則表達式 字符串用"" 以防問題
^.* 以任意字符開頭
.*$ 以任意字符結尾
^word 以word 開頭
word$ 以word 結尾
[^word] 括號里的是取反
. 只代表一個字符 "是字符就匹配上了 所有除空行" 空格和空行是不一樣的
\ 轉義
* 重復前面0或多個字符
.* 所有
[abc] 匹配集合內任意一個字符
[^abc] 匹配集合內除abc 的任意一個字符
[0-9] [a-z] [A-Z]
a\{n,m\} 重復a 至少n次到至多m 次 ## a\{n,m\} 這種形式必須用""引起來 且""兩邊沒有空格 ,否則會報錯
a\{n,\} a\{,m\} a\{n\}重復n次
egrep sed -r 可以不使用\轉義
## 了解 擴展正則表達式 grep -E egrep
+ 一個或一個以上 (*是0或多)
? 0或一個前面字符
| 表示同時過濾多個字符串 egrep "sshd|systemd"
() 后向引用 參考(.*) \1
grep -n -i 不區分大小寫 -o 只顯示匹配到的內容 不輸出整行
find /test -type f -name "*.sh" |xargs sed -i 's#old#new#g' ! 嘆號可取反 -a and -o or
也可同時寫 sed -i 's#old#new#g' *.sh
#awk
NR $0整行 $1 $2 $NF最后一列 NF 為全行列數
$(NF-1)倒數第二行
#awk原理 一行是一個記錄
#RS表示一個記錄的結束 FS表示一個區域的分隔 $NF 為最后一個區域
ifconfig |awk 'BEGIN{RS=":"}''{print $1}' 以:為代替回車 為換行符
#正則 條件(NR==2) 范圍(NR==2,NR==5)2到5
# $1~/正則開始/,$3~/正則結束/
awk -F "[ :]+|\t+" '{print $2}' grade 以1個或多個 :(空格或冒號)或1或多個tab制表符 作為分隔符
#BEGIN模塊 END模塊
seq 1 100 |awk '{a+=$1}''END{print a}' 1加到100
cat passtemp |awk '{sub(/x/,"ppp")}''{print $0}' awk替換
awk '$1~/lisi/{print $0}' grade grade文件匹配$1 包括lisi的行 并打印出行
awk '$4~/(5|3)$/{print $0}' grade 匹配 5 或 3結尾
awk '$1~/^[l|W]/{print $0}' grade 匹配l 或 W 開頭 用[] 和()都可為了和正則匹配 強烈建議用[]
awk -F "\t" '$3~/^9/{print $0}' grade
#不包含:!,在awk中不包含可以使用! 表示
#在awk中,可以用來替換的有三個函數:sub gsub gensubsub(r, s [, t])
r /找誰/
s "替換成什么"
[] 替換那個部分的
awk '$1~/zhan/{gsub(/zhang3/,"ccccc",$1);print $0}' grade
##注意 /zhang3/ "ccccc" 以及多個命令間用; 分號
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。