国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客

這篇具有很好參考價(jià)值的文章主要介紹了Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、正則表達(dá)式

正則表達(dá)式(RE)是一種字符模式,用于再查找過程中匹配指定的字符,在大多數(shù)程序中,正則表達(dá)式都被置于兩個(gè)正斜杠之間:例如//就是由正斜杠界定的正則表達(dá)式,他將匹配被查找的行中任何位置出現(xiàn)的相同模式。在正則表達(dá)式中,元字符時(shí)最重要的概念。

元字符

定義:元字符是這樣的一類字符,他們表達(dá)的是不同于字面本身的含義

分類:基本正則表達(dá)式字符和擴(kuò)展正則表達(dá)式字符

基本正則表達(dá)式字符

^? ? ? ? 行首定位符
$? ? ? ? 行尾定位符
.? ? ? ? ? 點(diǎn),匹配任意單個(gè)字符
*? ? ? ? 匹配前導(dǎo)符0到多次

.*

任意多個(gè)字符
[] 匹配指定范圍的一個(gè)字符
[-] 匹配指定范圍的一個(gè)字符,連續(xù)的范圍
[^]

匹配不在指定組內(nèi)的字符

Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維

\

用來轉(zhuǎn)義元字符(‘’? “”? \? ),脫義符

Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維

\<

詞首定位符

Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維

\> 詞尾定位符
()

\(\)? ?匹配稍后使用的字符的標(biāo)簽

:3,9 s/\(.*)/#\1/? ?加注釋

:3,9 s/\(#\)\(.*)/\2\1/? ?將#號移到最后

s替換? ?\原來\現(xiàn)在\

x\{m\}

字符x重復(fù)出現(xiàn)m次

Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維

x\{m,\} 字符x重復(fù)出現(xiàn)m次以上
x\{m,n\} 字符x重復(fù)出現(xiàn)m次到n次

擴(kuò)展正則表達(dá)式字符

+

匹配1-n個(gè)前導(dǎo)字符

Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維

?

匹配0-1個(gè)前導(dǎo)字符

Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維

a|b

匹配a或b

Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維

()

組字符

Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維

示例1:

Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維

示例2:

Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維

二、grep

過濾,查找文件中的內(nèi)容

分類:grep,egrep和fgrep

返回值:

  • 0? ?是找到了
  • 1? ?是沒有
  • 2找的地方不對

示范:

Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維

參數(shù):

Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維

練習(xí)

Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維

三、sed(逐行處理模式)

1.前言

sed,流編輯器,StreamEditor,sed是一種在線的,非交互式的編輯器,他一次處理一行內(nèi)容。處理時(shí),把當(dāng)前處理的行存儲在臨時(shí)緩沖區(qū),成為“模式空間”,接著用sed命令處理緩沖區(qū)的內(nèi)容,處理完成后,把緩沖區(qū)的內(nèi)容送至屏幕。接著處理下一行,這樣不斷重復(fù),指導(dǎo)文件末尾,文件內(nèi)容并沒有改變,除非你使用重定向存儲輸出。sed主要用來自動編輯一個(gè)或多個(gè)文件,簡化對文件的反復(fù)操作。

2.格式

  1. sed? 選項(xiàng)? ?命令? ?文件
  2. sed? 選項(xiàng)? -f? ?腳本文件

3.返回值

都是0,對錯(cuò)不管

只有當(dāng)命令存在語法錯(cuò)誤時(shí),sed的退出狀態(tài)才是非0

4.sed和正則表達(dá)式

與grep一樣,sed在文件中查找模式是也可以使用正則表達(dá)式(RE)和各種元字符。正則表達(dá)式是括在斜杠間的模式,用于查找和替換,以下是sed支持的元字符

  • 使用基本元字符集? ? ^,$,.,*,[],[^],\<,\>,\(\),
  • 使用擴(kuò)展元字符集? ? ?,+,|,()
  • 使用擴(kuò)展元字符的方式? ? \+ 轉(zhuǎn)義? ? sed? -r? ?加-r? ? ? ?-i是寫入

5.匯總示例

刪除命令:d Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維
替換命令:s Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維
讀文件命令:r Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維
寫文件命令:w(另存為) Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維
追加命令:a(之后)

Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維

插入命令:i(之前) 與a相反,i插入到行前
替換整行命令:c Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維
獲取下一行命令:n Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維
反向選擇:! Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維
多重編輯:e

在一條命令中發(fā)布多條指令

Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維

一行針對多條命令一定要用括號括起來

sed? -r? ? '/root/{n:d}'??passwd

6.實(shí)戰(zhàn)案例

1.刪除配置文件中的#號注釋行

sed? ?-r? ? '/^#/d'? ?/etc/sanba/smb.conf

2.修改文件

?sed -ri? '$a\chroot_local_user=YES' /etc/vsftpd/vsftpd.conf

?sed -ri? '/^SELINUX=/c? SELINUX=disabled' /etc/selinux/config

3.給文件行添加注釋

sed -r? '2,6s/^/#/' a.txt

sed -r? '2,6s/(.*)/#\1/'? a.txt

sed -r? '2,6s/.*/#&/'?? a.txt

4.sed中使用外部變量

準(zhǔn)備工作? ?var1=11111

追加變量? ?

Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維

巧合

Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維

Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維

四、awk

1.前言

????????awk 是一種編程語言,用于在linux/unix下對文本和數(shù)據(jù)進(jìn)行處理,數(shù)據(jù)可以來自標(biāo)準(zhǔn)輸入、一個(gè)或多個(gè)文件,或其它命令的輸出。它支持用戶自定義函數(shù)和動態(tài)正則表達(dá)式等先進(jìn)功能,
awk的處理文本和數(shù)據(jù)的方式是這樣的,它逐行掃描文件,從第一行到最后一行,尋找匹配的特定模式的行,并在這些行上進(jìn)行你想要的操作。如果沒有指定處理動作,則把匹配的行顯示到標(biāo)準(zhǔn)輸出(屏幕)。

2.工作原理

Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維

3.語法

awk? ? [options]? ? 'command'? ? filenames(推薦)

==options 例如:-F 定義輸入字段分隔符,默認(rèn)的分隔符是空格或制表符(tab)

==command(時(shí)空):

  • BEGIN{}? ? ? ? ?begin發(fā)生在行處理前(注意大寫)?
  • {}? ? ? ? ? ? ? ? ? ? 行處理時(shí),讀一次執(zhí)行一次 (現(xiàn)在)
  • END{}? ? ? ? ? ? ?行處理后

示例

awk? 'BSGIN{print 1/2}? {print "OK"}? END{print "-------------"}'? ? /etc/hosts

awk? 'BSGIN{print 1/2}{print "OK";print $0}END{print "hoho"}'? ? /etc/hosts

4.內(nèi)部變量

FS

輸入字段分隔符

(默認(rèn)空格

awk -F:'print $1, $3' /etc/passwd | head -1

awk -F‘[:\t]’ {print $1,$2,$3} /etc/passwd

awk ‘BEGIN{FS=":"} {print $1,$3}’? /etc/passwd

OFS 輸出字段分隔符 awk ‘BEGIN{FS=":";OFS="---"} {print $1,$3}’? /etc/passwd
RS 輸入記錄(行)分隔符,默認(rèn)換行符 Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維
ORS 輸出記錄(行)分隔符,默認(rèn)換行符 Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維
FNR 多文件獨(dú)立編號 Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維
NR 多文件匯總編號 Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維
NF 字段總數(shù) Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維

5.模式化輸出

print(函數(shù))

Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維

6.模式(正則表達(dá))和動作

1.前言

????????任何awk語句都由模式和動作組成。模式部分決定動作語句何時(shí)觸發(fā)及觸發(fā)事件如果省略模式部分,動作將時(shí)刻保持執(zhí)行狀態(tài)。每一行都會有動作。模式可以是任何條件語句或復(fù)合語句或正則表達(dá)式。有模式的話,就是對模式對應(yīng)的行進(jìn)行動作

2.字符串比較

awk? '/^root/? ?/etc/passwd? ? ? ? ?//是正則匹配

awk? '$0 ~ /^root/? /etc/passwd? ? ~像

awk '$0! ~ /^root/'? /etc/passwd

awk? -F;'$1~ /^root/'? /etc/passwd

3.數(shù)值比較

????????比較表達(dá)式采用對文本進(jìn)行比較,只有當(dāng)條件為真,才執(zhí)行指定的動作。比較表達(dá)式使用關(guān)系運(yùn)算符,用于比較數(shù)字與字符串

關(guān)系運(yùn)算符

Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維

算數(shù),運(yùn)算

Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維

4.多條件

邏輯操作符和復(fù)合模式

Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維

范圍模式

Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維

7.awk腳本編程

1.變量

awk調(diào)用變量

>1自定義內(nèi)部變量? -v

awk? -v? user=root? ?-F: '$1==user'? /etc/passwd? ? ? -v定義變量

>2外部變量“ ‘ ”

雙引號

Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維

單引號

Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維

2.條件&判斷

if語句

????????格式:?{if(表達(dá)式){語句;語句;...} }

? ? ? ? 示例:需求 :如果$3是0,就說他是管理員
? ? ? ? ? ? ? ? ? awk -F: '{if($3==0) {print $1 " is administrator."}}'? /etc/passwd

if..else語句

? ? ? ? 格式:{if(表達(dá)式){語句;語句;...} else {語句;語句;...}}

? ? ? ? 示例:?awk -F: {if($3==0) {print $1"是管理員“} else { print? $1"普通用戶" }}’? passwd

Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維

if..else?if..else語句

Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維

3.循環(huán)

while

Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維

for

Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維

4.數(shù)組

定義數(shù)組

Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維

索引遍歷? ? for(i? in? username)? username加[]i是值,不加i是索引

Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維

5.awk編程案例-統(tǒng)計(jì)/etc/passwd中各種類型shell的數(shù)量

Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維

8.一問一答

Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客,自動化,運(yùn)維文章來源地址http://www.zghlxwxcb.cn/news/detail-833481.html

到了這里,關(guān)于Liunx shell編程及自動化運(yùn)維實(shí)現(xiàn)--第五章三劍客的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Linux編程Shell自動化腳本】03 shell四劍客(find、sed、grep、awk)

    語法格式 參數(shù)說明 : path 是要查找的目錄路徑,可以是一個(gè)目錄或文件名,也可以是多個(gè)路徑,多個(gè)路徑之間用空格分隔,如果未指定路徑,則默認(rèn)為當(dāng)前目錄。 expression 是可選參數(shù),用于指定查找的條件,可以是文件名、文件類型、文件大小等等。 1. 常用expression 以下列出

    2024年02月09日
    瀏覽(27)
  • 云計(jì)算的自動化與腳本:實(shí)現(xiàn)高效運(yùn)維

    云計(jì)算是一種基于互聯(lián)網(wǎng)和服務(wù)器集群的計(jì)算模式,它允許用戶在需要時(shí)從任何地方訪問計(jì)算資源。自動化和腳本在云計(jì)算中發(fā)揮著至關(guān)重要的作用,因?yàn)樗鼈兛梢詭椭芾韱T更高效地運(yùn)行和維護(hù)云計(jì)算環(huán)境。在本文中,我們將探討云計(jì)算自動化和腳本的核心概念、算法原理

    2024年04月12日
    瀏覽(38)
  • 運(yùn)維工作新時(shí)代:自主編碼實(shí)現(xiàn)運(yùn)維自動化的轉(zhuǎn)型之旅

    運(yùn)維工作新時(shí)代:自主編碼實(shí)現(xiàn)運(yùn)維自動化的轉(zhuǎn)型之旅

    隨著業(yè)務(wù)系統(tǒng)和底層中間件服務(wù)的復(fù)雜度不斷增加,傳統(tǒng)手工運(yùn)維方式面臨著諸多挑戰(zhàn)和限制。人工編寫運(yùn)維腳本顯得非常低效,同時(shí)手動執(zhí)行運(yùn)維操作存在著巨大風(fēng)險(xiǎn)。在此情況下,推動運(yùn)維自動化成為運(yùn)維人員必須落地實(shí)施的工作。運(yùn)維同學(xué)如果可以有地方自主通過編碼

    2024年02月22日
    瀏覽(26)
  • 利用Python實(shí)現(xiàn)網(wǎng)絡(luò)運(yùn)維自動化:實(shí)戰(zhàn)示例

    利用Python實(shí)現(xiàn)網(wǎng)絡(luò)運(yùn)維自動化:實(shí)戰(zhàn)示例

    ?? 個(gè)人網(wǎng)站:【 摸魚游戲】【神級代碼資源網(wǎng)站】【工具大全】 ??? 一站式輕松構(gòu)建小程序、Web網(wǎng)站、移動應(yīng)用:??注冊地址 ?? 基于Web端打造的:??輕量化工具創(chuàng)作平臺 ?? 想尋找共同學(xué)習(xí)交流,摸魚劃水的小伙伴,請點(diǎn)擊【全棧技術(shù)交流群】 隨著網(wǎng)絡(luò)規(guī)模的不斷擴(kuò)大

    2024年04月11日
    瀏覽(16)
  • 【操作系統(tǒng)】Liunx項(xiàng)目自動化構(gòu)建工具-make/Makefile

    【操作系統(tǒng)】Liunx項(xiàng)目自動化構(gòu)建工具-make/Makefile

    ? ? ? ? ?? ??Yan-英杰的主頁 悟已往之不諫 知來者之可追?? C++程序員,2024屆電子信息研究生 目錄 一、背景 二、Makefile ? ? ? ? 實(shí)現(xiàn) ? ? ? ? Makefile依賴 ????????依賴關(guān)系 ? ? ? ? makefile的工作原理 ????????項(xiàng)目清理 ????????補(bǔ)充: ? ? ? ? .PHONY是什么? ?

    2024年02月16日
    瀏覽(23)
  • 自動化運(yùn)維中的人工智能與機(jī)器學(xué)習(xí):實(shí)現(xiàn)智能化運(yùn)維

    自動化運(yùn)維(Automated Operations)是一種通過自動化工具和技術(shù)來管理和維護(hù)計(jì)算機(jī)系統(tǒng)的方法。隨著云計(jì)算、大數(shù)據(jù)和人工智能等技術(shù)的發(fā)展,自動化運(yùn)維的重要性逐漸凸顯。人工智能與機(jī)器學(xué)習(xí)在自動化運(yùn)維中發(fā)揮著越來越重要的作用,為智能化運(yùn)維提供了強(qiáng)大的支持。 本文

    2024年03月10日
    瀏覽(101)
  • 在Linux上配置Spug自動化運(yùn)維平臺,實(shí)現(xiàn)公網(wǎng)遠(yuǎn)程訪問

    在Linux上配置Spug自動化運(yùn)維平臺,實(shí)現(xiàn)公網(wǎng)遠(yuǎn)程訪問

    Spug 面向中小型企業(yè)設(shè)計(jì)的輕量級無 Agent 的自動化運(yùn)維平臺,整合了主機(jī)管理、主機(jī)批量執(zhí)行、主機(jī)在線終端、文件在線上傳下載、應(yīng)用發(fā)布部署、在線任務(wù)計(jì)劃、配置中心、監(jiān)控、報(bào)警等一系列功能。 本例演示搭建使用docker compose 方式安裝Spug,并結(jié)合cpolar 內(nèi)網(wǎng)穿透實(shí)現(xiàn)遠(yuǎn)程

    2024年02月07日
    瀏覽(21)
  • 簡單的Shell腳本實(shí)現(xiàn)自動化構(gòu)建部署-適合前后端分離的小網(wǎng)站

    簡單的Shell腳本實(shí)現(xiàn)自動化構(gòu)建部署-適合前后端分離的小網(wǎng)站

    大家在生活中經(jīng)常會自己寫一點(diǎn)小代碼。然后部署在公有云的服務(wù)器上。但是一般像阿里,騰訊等服務(wù)商,提供的機(jī)器內(nèi)存并不是很大。如果想裝入一個(gè)jenkins之類的服務(wù),會比較占用CPU和內(nèi)存的資源。但是人手的部署又是比較麻煩的。所以我這里提供了一個(gè)思路,使用shell腳

    2023年04月16日
    瀏覽(29)
  • 基于云計(jì)算的自動化部署與自動化運(yùn)維:提高運(yùn)維效率

    作者:禪與計(jì)算機(jī)程序設(shè)計(jì)藝術(shù) 隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,網(wǎng)站流量日益增長,用戶對網(wǎng)站功能及其可用性的需求也越來越高,越來越多的人開始擔(dān)憂網(wǎng)站的安全和穩(wěn)定性。因此,如何快速、準(zhǔn)確地處理網(wǎng)站故障、迅速恢復(fù)網(wǎng)站服務(wù)并保障網(wǎng)站高可用,成為企業(yè)必須重點(diǎn)關(guān)

    2024年02月11日
    瀏覽(22)
  • 如何使用Python實(shí)現(xiàn)FPGA編程“自動化”

    之前讀到過一個(gè)公眾號文章,寫了關(guān)于《使用Python實(shí)現(xiàn)Vivado和Modelsim仿真的自動化》,連接https://mp.weixin.qq.com/s/2YR_LjpQNtJr9beqnCz7CA。根據(jù)該文章,基于自己的編程習(xí)慣和工作需要,我做了一些修改和便于自己編程的一些python代碼,這里和大家介紹一下。 對于生成的tb文件使用了

    2023年04月14日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包