一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux系統(tǒng)中最重要的三個(gè)命令

馬哥Linux運(yùn)維 ? 來源:博客園 ? 2025-03-03 10:37 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Linux三劍客是Linux系統(tǒng)中最重要的三個(gè)命令,它們以其強(qiáng)大的功能和廣泛的應(yīng)用場(chǎng)景而聞名。這三個(gè)工具的組合使用幾乎可以完美應(yīng)對(duì)Shell中的數(shù)據(jù)分析場(chǎng)景,因此被統(tǒng)稱為L(zhǎng)inux三劍客。

1、grep

grep是一個(gè)強(qiáng)大的文本搜索工具,用于在文件內(nèi)容中查找指定的字符串,并將匹配到的行輸出到標(biāo)準(zhǔn)輸出。grep命令支持多種選項(xiàng)和模式匹配,使得在文件中搜索特定內(nèi)容變得非常靈活和高效。
文本搜索命令;

命令格式為:

grep "搜索的字符串" 文件名

1)基礎(chǔ)

參數(shù):
-c:統(tǒng)計(jì)出現(xiàn)的次數(shù)
-i:不區(qū)分大小寫
-n:輸出行號(hào)

2)實(shí)例

統(tǒng)計(jì)出現(xiàn)的次數(shù)
grep -c "xx" text.log

2、sed

sed是一個(gè)流編輯器,主要用于對(duì)輸入流(或文件)進(jìn)行基本的文本轉(zhuǎn)換。它可以用來查找、新增、刪除和修改替換文本中的數(shù)據(jù)。sed命令的強(qiáng)大之處在于它可以對(duì)文本進(jìn)行非交互式的編輯,從而提高了處理大量文本的效率。

1)基本概念

sed是一種流編輯器,它是文本處理工具,支持正則表達(dá)式,通過一行一行的遍歷,執(zhí)行相應(yīng)的命令,來處理、編輯文本文件。
(1)語法
sed [選項(xiàng)] ‘command’ 文件名稱

選項(xiàng)部分,常見選項(xiàng)包括-n,-e,-i,-f,-r選項(xiàng)。
command部分包括:[地址1,地址2] [函數(shù)] [參數(shù)(標(biāo)記)]

(2)命令格式為:

sed [-nefri] '命令' 文本
cat 文本 | sed [-nefr] '命令'
echo '.....' |sed [-nefr] '命令'

2)選項(xiàng)(nefri)

(1)選項(xiàng)-n

sed默認(rèn)會(huì)把模式空間處理完畢后的內(nèi)容輸出到標(biāo)準(zhǔn)輸出,也就是輸出到屏幕上,加上-n選項(xiàng)后被設(shè)定為安靜模式,也就是不會(huì)輸出默認(rèn)打印信息,除非子命令中特別指定打印選項(xiàng),則只會(huì)把匹配修改的行進(jìn)行打印。
(2)選項(xiàng)-e

如果需要用sed對(duì)文本內(nèi)容進(jìn)行多種操作,則需要執(zhí)行多條子命令來進(jìn)行操作。

(3)選項(xiàng)-i

sed默認(rèn)會(huì)把輸入行讀取到模式空間,簡(jiǎn)單理解就是一個(gè)內(nèi)存緩沖區(qū),sed子命令處理的內(nèi)容是模式空間中的內(nèi)容,而非直接處理文件內(nèi)容。因此在sed修改模式空間內(nèi)容之后,并非直接寫入修改輸入文件,而是打印輸出到標(biāo)準(zhǔn)輸出。如果需要修改輸入文件,那么就可以指定-i選項(xiàng)。

(4)選項(xiàng)-f

還記得 -e 選項(xiàng)可以來執(zhí)行多個(gè)子命令操作,用分號(hào)分隔多個(gè)命令操作也是可以的,如果命令操作比較多的時(shí)候就會(huì)比較麻煩,這時(shí)候把多個(gè)子命令操作寫入腳本文件,然后使用 -f 選項(xiàng)來指定該腳本。

(5)選項(xiàng)-r
sed命令的匹配模式支持正則表達(dá)式的,默認(rèn)只能支持基本正則表達(dá)式,如果需要支持?jǐn)U展正則表達(dá)式,那么需要添加-r選項(xiàng)。

3)命令(acdipynNs)

a新增,c取代,d刪除,i插入,p打印,y將字符轉(zhuǎn)成另一個(gè)字符等

[root@localhost sed]# cat message
1a
2b
3c
4d
5e
6f
abcdABCD

(1)a

子命令a表示在指定行下邊插入指定行的內(nèi)容。

#將message文件中每一行下邊都插入添加一行內(nèi)容是A
sed 'a A' message
#將message文件中1-2行的下邊插入添加一行內(nèi)容是A
sed '1,2a A' message
#將message文件中1-2行的下邊分別添加3行,3行內(nèi)容分別是A、B、C,這里使用了
,插入多行內(nèi)容都可以按照這種方式來實(shí)現(xiàn)。
sed '1,2a A
B
C' message

(2)i

子命令i和a使用上基本上一樣,只不過是在指定行上邊插入指定行的內(nèi)容。

#將message文件中每一行上邊都插入添加一行內(nèi)容是A
sed 'i A' message
#將message文件中1-2行的上邊插入添加一行內(nèi)容是A
sed '1,2i A' message
#將message文件中1-2行的上邊分別添加3行,3行內(nèi)容分別是A、B、C,這里使用了
,插入多行內(nèi)容都可以按照這種方式來實(shí)現(xiàn)
sed '1,2i A
B
C' message

(3)c

子命令c是表示把指定的行內(nèi)容替換為自己需要的行內(nèi)容。

#將message文件中所有的行內(nèi)容都分別替換為A行內(nèi)容
sed 'c A' message
#將message文件中1-2行的內(nèi)容替換為A,注意這里說的是將1-2行所有的內(nèi)容只替換為一個(gè)A內(nèi)容,也就是1-2行內(nèi)容變成了一行,定址如果連續(xù)就是這種情況
sed '1,2c A' message
#將message中1-2行內(nèi)容分別替換為了A,需要在替換內(nèi)容上手動(dòng)加換行
,這樣當(dāng)然也可以將一行內(nèi)容替換為多行內(nèi)容
sed '1,2c A
A' message

(4)d

子命令d表示刪除指定的行內(nèi)容,比較簡(jiǎn)單,更容易理解。

#將message所有行全部刪除,因?yàn)闆]有加定址表達(dá)式,所以平時(shí)如果需要?jiǎng)h除指定行內(nèi)容,需要在子命令前加定址表達(dá)式
sed 'd' message
#將message文件中1-3行內(nèi)容刪除
sed '1,2d' message

(5)y

子命令y表示字符替換,可以替換多個(gè)字符,只能替換字符不能替換字符串,且不支持正則表達(dá)式,

#把message中所有a字符替換為A符號(hào),所有b字符替換為B符號(hào)
sed 'y/aB/Ab/' message

(6)=

子命令=,可以將行號(hào)打印出來。

#將指定行的上邊顯示行號(hào)
sed '1,2=' message

(7)r

子命令r,類似于a,也是將內(nèi)容追加到指定行的后邊,只不過r是將指定文件內(nèi)容讀取并追加到指定行下邊。

#將r.txt文件內(nèi)容讀取并插入到message文件第1行的下邊
sed '1r r.txt' message

(8)s

子命令s為替換子命令,是平時(shí)sed使用的最多的子命令,沒有之一。因?yàn)橹С终齽t表達(dá)式,功能變得強(qiáng)大無比,下邊來詳細(xì)地說說子命令s的使用方法。
基本語法:
[address]s/pattern/replacement/flags

flags

flags 說明
n 可以是1-512,表示第n次出現(xiàn)的情況進(jìn)行替換
g 全局更改
p 打印模式空間的內(nèi)容
w file 寫入到一個(gè)文件file中

#b全局換成x
sed 's/b/x/g' message

4)實(shí)例

(1)test.txt的第一行前插入“a new line”

sed -i '1ia new line' text.txt

(2)在第三行新增一行

sed -i '3a a new line' text

3、awk

awk是一個(gè)文本處理工具,用于對(duì)文本或數(shù)據(jù)進(jìn)行模式掃描和處理。它可以根據(jù)定位到的數(shù)據(jù)行處理其中的分段,并進(jìn)行數(shù)據(jù)切片或執(zhí)行其他操作。awk命令非常適合進(jìn)行數(shù)據(jù)提取和報(bào)告生成等任務(wù),是Linux系統(tǒng)中進(jìn)行文本和數(shù)據(jù)處理的利器。

1)基本概念

awk是結(jié)構(gòu)化數(shù)據(jù)處理程序;
awk是一門數(shù)處理領(lǐng)域的語言;
awk擁有c語言式的語法結(jié)構(gòu),例如print是語句,但不是函數(shù);
(1)語法
awk [選項(xiàng)] '匹配規(guī)則和處理規(guī)則 ' [處理文本路徑]

匹配規(guī)則主要是:正則表達(dá)式、字符串

處理規(guī)則主要是:設(shè)置變量、設(shè)置數(shù)組、定義函數(shù)(用的比較少)、數(shù)組循環(huán)、加減乘除運(yùn)算、字符串拼接

(2)命令格式為:

awk [選項(xiàng)] 'BEGIN{定義1;定義2;}/模式/{操作1;操作2}END{操作1;操作2}' file1 file2

選項(xiàng):如-F:指定分隔符為:
BEGIN{} : BEGIN是在awk處理文本之前運(yùn)行
/模式/ : 使用的匹配規(guī)則,模式為正則或者字符串
{} :循環(huán)(每次只處理一行數(shù)據(jù)),如{print $1}打印第一列
END{} :當(dāng)所有的處理全部執(zhí)行完畢之后,執(zhí)行END中的相關(guān)操作

2)操作符:~、==、!=、>等

如:

#當(dāng)前行匹配以a開頭成功時(shí)則執(zhí)行后面的打印 
awk '/^a/ {print $1}'

上面正則匹配的范圍是整行的內(nèi)容,如果只想匹配指定字段的內(nèi)容,則可以這樣使用:

awk '$n~/^1/ {print $1}'

通過~符號(hào)規(guī)定了正則的匹配操作范圍【這里是字段n】,~叫做匹配操作符

3)BEGIN和AND:

BEGIN里面可以打印一些字符串,或者定義變量(變量名="值" ,值不是數(shù)字的話,必須要用雙引號(hào)括起來,引用變量的時(shí)候,變量前面是不要加$的)。
END里面可以打印一些字符串,或者進(jìn)行最終的計(jì)算。如果在BEGIN里面沒有定義變量的話,最終也可以引用這個(gè)變量的,只是變量值為空,在awk里面變量是可以不預(yù)先定義;

4)選項(xiàng)

參數(shù) 解釋
-F 指定分割字段符
-v 定義或修改一個(gè)awk內(nèi)部的變量
-f 從腳本文件中讀取awk命令

5)常見變量:

內(nèi)置變量 解釋
FS 默認(rèn)輸入列分隔符(空格和tab)
OFS 默認(rèn)輸出列分隔符(空格)
NF 每行有幾段(列)(print $NF代表打印最后一列)
RS 默認(rèn)輸入行分隔符( )
ORS 默認(rèn)輸出行分隔符( )
FILENAME 當(dāng)前所操作文件名稱
NR 讀取每行時(shí)當(dāng)前的行號(hào)(對(duì)于合并文件來說,不同文件行號(hào)連續(xù)顯示)
FNR 讀取每行時(shí)顯示當(dāng)前的行號(hào)(對(duì)于合并文件來說,不同文件行號(hào)不連續(xù)顯示)

$0:表示當(dāng)前整行,$1表示第一個(gè)字段,$2表示第二個(gè)字段,$n 表示第n個(gè)字段;

6)判斷:

7)實(shí)例

(1)默認(rèn)分隔符是空格和tab,打印第二列

ps |awk '{print $2}'

(2)分隔符是冒號(hào),打印第一、二列,并用空格分隔

awk -F ":" '{print $1,$2}' /etc/passwd

(3)分隔符是冒號(hào),打印第一、二列,并用指定符號(hào)分隔

awk -F ":" '{print $1"--"$2}' /etc/passwd

(4)分隔符是冒號(hào)和逗號(hào),打印第一、二列,并用指定符號(hào)分隔

awk -F "[:,]" '{print $1"--"$2}' /etc/passwd

(5)默認(rèn)分隔符,打印以d開頭的行的第一列

docker ps |awk '/^d/ {print $1}'

(6)默認(rèn)分隔符,打印第n列以d開頭的行的第一列

docker ps |awk '$n~/^d/ {print $1}'

(7)在打印前指定分隔符變量FS為冒號(hào)和逗號(hào)

awk 'BEGIN{FS="[:,]"}{print $1}' /etc/passwd

(8)在打印前指定分隔符變量FS為冒號(hào)和逗號(hào),定義變量line

awk 'BEGIN{FS="[:,]";line=1}{print $line}' /etc/passwd

(9)定義變量sum計(jì)算和,每次輸出計(jì)算結(jié)果,最終輸出

awk 'BEGIN{FS="[,:]";sum=0}{sum+=$3;print sum}END{print "sum=",sum}' /etc/passwd

(10)打印當(dāng)前文件名稱

awk '{pring FILENAME}' /etc/passwd

鏈接:https://www.cnblogs.com/hoaprox/p/18269422

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11496

    瀏覽量

    213224
  • Linux系統(tǒng)
    +關(guān)注

    關(guān)注

    4

    文章

    605

    瀏覽量

    28448
  • 字符串
    +關(guān)注

    關(guān)注

    1

    文章

    589

    瀏覽量

    21218
  • 命令
    +關(guān)注

    關(guān)注

    5

    文章

    734

    瀏覽量

    22792

原文標(biāo)題:揭秘大廠高效秘籍:掌握Linux三劍客

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    成功電源設(shè)計(jì),布局是其中最重要個(gè)環(huán)節(jié)

    在成功的電源設(shè)計(jì)中,電源布局是其中最重要的一個(gè)環(huán)節(jié)。但是,在如何做到這一點(diǎn)方面,每個(gè)人都有自己的觀點(diǎn)和理由。事實(shí)是,很多不同的解決方案都是殊途同歸;如果設(shè)計(jì)不是真的一團(tuán)糟,多數(shù)電源都是可以正常工作的
    的頭像 發(fā)表于 10-26 10:29 ?3913次閱讀

    Linux中如何使用less、more和most命令

    Linux 系統(tǒng)上有許多 GUI 文本編輯器可用于查看和修改文本文件。但如果您只想在終端中讀取文本文件。那么 Linux 上有許多可用的命令可以讓你做到這一點(diǎn),其中
    發(fā)表于 12-05 09:22 ?1831次閱讀

    示波器最重要三個(gè)參數(shù)

    示波器的三個(gè)重要參數(shù)是:帶寬、采樣率、存儲(chǔ)深度。1,帶寬示波器帶寬的定義沒有變,就是輸入一個(gè)正弦波,保持幅度不變,增加信號(hào)頻率,當(dāng)示波器上顯示的信號(hào)是實(shí)際信號(hào)幅度的70.7%(即3dB衰減)的時(shí)候
    的頭像 發(fā)表于 01-01 08:00 ?6960次閱讀
    示波器<b class='flag-5'>最重要</b>的<b class='flag-5'>三個(gè)</b>參數(shù)

    非常高效三個(gè)linux shell命令分享

    了開發(fā)效率。本文淺析三個(gè)非常高效的linux shell命令(awk,grep,sed),在開發(fā)工程中的實(shí)際應(yīng)用。1,從系統(tǒng)命令的打印中獲取
    發(fā)表于 12-23 06:38

    Linux系統(tǒng)管理命令

    Linux系統(tǒng)管理命令 Linux系統(tǒng)管理命令  wall
    發(fā)表于 01-18 12:47 ?895次閱讀

    Linux系統(tǒng)命令指南

    在“Linux 文件命令精通指南”中,我們討論了利用最基礎(chǔ)和最常用 Linux 文件命令所需的基本信息。在本文中,我將對(duì) Linux
    發(fā)表于 05-23 10:23 ?1027次閱讀

    Linux必學(xué)的系統(tǒng)安全命令

    新的挑戰(zhàn)。本文將重點(diǎn)介紹Linux系統(tǒng)安全的命令。 雖然Linux和Windows NT/2000系統(tǒng)一樣是一
    發(fā)表于 11-02 15:09 ?0次下載

    Linux教程之常用Linux命令的詳細(xì)資料免費(fèi)下載

    操作。Linux操作系統(tǒng)提供的命令很多,但用戶日常使用的命令卻很有限。本章將介紹一些在日常工作中最常用的
    發(fā)表于 11-16 16:17 ?14次下載

    Linux中的35個(gè)find命令用法

    Linux查找命令Linux系統(tǒng)中最重要和最常用的命令之一。查找用于根據(jù)與參數(shù)匹配的文件指定的
    的頭像 發(fā)表于 02-02 16:53 ?3949次閱讀
    <b class='flag-5'>Linux</b>中的35<b class='flag-5'>個(gè)</b>find<b class='flag-5'>命令</b>用法

    電源布局是其中最重要的一個(gè)環(huán)節(jié)

    在成功的電源設(shè)計(jì)中,電源布局是其中最重要的一個(gè)環(huán)節(jié)。但是,在如何做到這一點(diǎn)方面,每個(gè)人都有自己的觀點(diǎn)和理由。事實(shí)是,很多不同的解決方案都是殊途同歸;如果設(shè)計(jì)不是真的一團(tuán)糟,多數(shù)電源都是可以正常工作的。
    的頭像 發(fā)表于 02-12 10:48 ?831次閱讀
    電源布局是其<b class='flag-5'>中最重要</b>的一<b class='flag-5'>個(gè)</b>環(huán)節(jié)

    EMC三個(gè)重要規(guī)律

    EMC的技術(shù)目的在于使電氣裝置或系統(tǒng)在共同的電磁環(huán)境條件下,既不受電磁環(huán)境的影響,也不會(huì)給環(huán)境以干擾。下面我們認(rèn)識(shí)一下EMC領(lǐng)域的三個(gè)重要規(guī)律和EMC問題三個(gè)要素
    的頭像 發(fā)表于 02-12 10:21 ?1416次閱讀

    嵌入式Linux開發(fā)教程:Linux常見命令(上篇)

    。3.2 Linux常見命令本節(jié)對(duì)進(jìn)行嵌入式Linux開發(fā)經(jīng)常會(huì)用到的一些操作和相關(guān)命令,進(jìn)一步加深對(duì)Linux的了解。
    發(fā)表于 10-21 13:36 ?11次下載
    嵌入式<b class='flag-5'>Linux</b>開發(fā)教程:<b class='flag-5'>Linux</b>常見<b class='flag-5'>命令</b>(上篇)

    Linux操作必備150個(gè)命令

    Linux 命令是對(duì) Linux 系統(tǒng)進(jìn)行管理的命令。對(duì)于 Linux
    發(fā)表于 11-12 09:19 ?541次閱讀

    分享三個(gè)Linux下常用的三個(gè)網(wǎng)絡(luò)測(cè)試工具

    Linux系統(tǒng)中,網(wǎng)絡(luò)命令是管理和監(jiān)視網(wǎng)絡(luò)連接的重要工具。其中,ping、traceroute和nslookup是常用的網(wǎng)絡(luò)命令,可以用來
    的頭像 發(fā)表于 04-03 14:49 ?2077次閱讀

    linux關(guān)機(jī)的三個(gè)命令

    Linux系統(tǒng)中,常用的關(guān)機(jī)命令三個(gè):shutdown、poweroff和halt。下面是對(duì)這三個(gè)
    的頭像 發(fā)表于 11-26 15:33 ?4292次閱讀