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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

Linux管道命令——《鸟哥的Linux私房菜》笔记

發(fā)布時(shí)間:2024/3/24 linux 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux管道命令——《鸟哥的Linux私房菜》笔记 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Linux管道命令——《鳥(niǎo)哥的Linux私房菜》筆記


0 前言

看完書(shū)之后,總感覺(jué)不記錄下來(lái)的話,很快就會(huì)忘了,然后又需要重新到處翻書(shū)找資料,所以還是把內(nèi)容記錄下來(lái),方便以后復(fù)習(xí)。本文大部分是書(shū)中的內(nèi)容,中間加入部分自己的理解以及嘗試的例子。


1 簡(jiǎn)單使用

  • 管道命令使用“|”這個(gè)界定符號(hào),用于兩個(gè)命令中間,作用是把左邊命令的標(biāo)準(zhǔn)輸出作為右邊命令的標(biāo)準(zhǔn)輸入。

  • 例如要查詢/etc目錄下的文件詳情,但是內(nèi)容太多會(huì)刷滿屏幕,查看起來(lái)不方便,就可以利用管道命令通過(guò)less命令來(lái)查看輸出。

    ls -al /etc | less

  • 需要注意的點(diǎn):

    • 管道命令僅能處理標(biāo)準(zhǔn)輸出(standard output),會(huì)忽略出錯(cuò)時(shí)輸出的信息(standard error output);
    • 管道命令命令必須要能夠接受來(lái)自前一個(gè)命令的數(shù)據(jù)成為標(biāo)準(zhǔn)輸出繼續(xù)處理才行。

2 選取命令

2.1 cut

2.1.1 命令介紹


  • cut命令可以將一段信息的某一段“切”出來(lái),處理的信息是以“”為單位。
  • 命令說(shuō)明如下:

  • cut -d ‘分隔字符’ -f fields # 該命令將每行按“分隔字符”分割,然后選取fields參數(shù)的那幾部分
  • cut -c 字符范圍 # 該命令用于排列整齊的信息,可以取出每一行在選定字符范圍內(nèi)的串
  • 參數(shù):
    -d : 后面接分隔字符,與-f一起使用;
    -f : 依據(jù)-d的 分隔字符,將一段信息切割成為數(shù)段,用-f取出第幾段(可以取多段)
    -c : 以字符為單位取出固定字符區(qū)間的串

2.1.2 命令示例

1 獲取PATH變量的第五個(gè)路徑。
因?yàn)樵贚inux系統(tǒng)下,PATH變量的值是按‘:’分隔的,所以分隔字符是‘:’。

echo $PATH | cut -d ‘:’ -f 5

如果要獲取第1和第3個(gè)路徑,則:

echo $PATH | cut -d ‘:’ -f 1,3 # 經(jīng)試驗(yàn),命令中寫(xiě)1,3 與 3,1 的結(jié)果是一樣的,都會(huì)先輸出第一行

如果要獲取連續(xù)的一段區(qū)間,如第3~6,則:

echo $PATH | cut -d ‘:’ -f 3-6 #這是一個(gè)閉區(qū)間

如果要獲取從某一部分開(kāi)始,一直到末尾,如從第二個(gè)路徑開(kāi)始,則:

echo $PATH | cut -d ‘:’ -f 2-

2 將export輸出的信息取得第12個(gè)字符

export | cut -c 12

其他區(qū)間的選擇方式與上面相同。
-c 參數(shù)主要用于排列整齊的信息

2.1.3 注意事項(xiàng)

cut命令處理多空格相連的數(shù)據(jù)比較難


2.2 grep

2.2.1 命令介紹

  • cut命令是在一行信息中取出某部分,而grep則是分析一行信息,若當(dāng)中有我們需要的信息,就把該行拿出來(lái)。
  • 命令說(shuō)明如下:
  • grep [-acinv] [–color=auto] ‘所要查找的字符串’ filename
  • 參數(shù)
    -a : 將binary文件以text文件的方式查找數(shù)據(jù);
    -c : 計(jì)算找到‘所要查找的字符串’的次數(shù);
    -i : 查找時(shí)忽略大小寫(xiě);
    -n : 輸出行號(hào);
    -v : 反向選擇,即顯示出沒(méi)有‘所要查找的字符串’內(nèi)容的那一行;
    –color=auto : 將找到的關(guān)鍵詞部分加上顏色顯示。

2.2.2 命令示例

1 將/etc/passwd文件當(dāng)中有root出現(xiàn)的那一行提取出來(lái)

cat /etc/passwd | grep ‘root’

2 將/etc/passwd文件當(dāng)中不含有root的那一行取出

cat /etc/passwd | grep -v ‘root’

3 將/etc/passwd文件當(dāng)中有root出現(xiàn)的那一行提取出來(lái),且僅取第三列

cat /etc/passwd | grep ‘root’ | cut -d ‘:’ -f 3


3 排序命令

3.1 sort

3.1.1 命令介紹

  • sort命令可以依據(jù)不同的數(shù)據(jù)類型來(lái)排序。
  • 命令說(shuō)明如下:
  • sort [-fbMnrtuk] [file or stdin]
  • 參數(shù)
    -f : 忽略大小寫(xiě)的差異;
    -b : 忽略最前面的空格符部分;
    -M : 以月份的名字來(lái)排序,例如JAN,DEC等的排序方法;
    -n : 使用數(shù)字類型進(jìn)行排序(默認(rèn)是字符串類型);
    -r : 反向排序;
    -u : 相同的數(shù)據(jù)中,僅出現(xiàn)一行;
    -t : 設(shè)置分隔符,默認(rèn)是用 [tab] 分隔;
    -k : 指定以哪個(gè)區(qū)間進(jìn)行排序,默認(rèn)是第一個(gè)區(qū)間。

3.1.2 命令示例

1 將/etc/passwd文件中的信息按賬號(hào)進(jìn)行排序

cat /etc/passwd | sort

2 /etc/passwd文件中的信息是按 : 來(lái)分隔的,以第三列進(jìn)行排序

  • cat /etc/passwd | sort -t ‘:’ -k 3 # 這是把第三列按字符串類型進(jìn)行排序
  • cat /etc/passwd | sort -t ‘:’ -k 3 -n # 這是把第三列按數(shù)字類型進(jìn)行排序
  • cat /etc/passwd | sort -t ‘:’ -k 3 -n -r # 這是把第三列按數(shù)字類型逆序排序

3 僅把/etc/passwd文件中的賬號(hào)取出,并按字典序逆序排序

  • cat /etc/passwd | cut -d ‘:’ -f 1 | sort -r
  • cut -d ‘:’ -f 1 /etc/passwd | sort -r

3.2 uniq

3.2.1 命令介紹

  • 把輸入的重復(fù)數(shù)據(jù)僅顯示一次
  • 命令說(shuō)明如下:
  • uniq [-ic]
  • 參數(shù)
    -i : 忽略大小寫(xiě)字符的不同;
    -c : 計(jì)數(shù),即顯示每個(gè)數(shù)據(jù)出現(xiàn)的次數(shù)

3.2.2 命令示例

1 將/ect/passwd 文件中第四列的數(shù)據(jù)按數(shù)字類型正序排好后,重復(fù)的數(shù)據(jù)僅顯示一次

  • cut -d ‘:’ -f 4 /etc/passwd | sort -n | uniq
  • cut -d ‘:’ -f 4 /etc/passwd | sort -nu

上面兩種方式的效果是相同的,那么為什么還要有uniq呢?這是因?yàn)閡niq能夠顯示數(shù)據(jù)重復(fù)的次數(shù)

2 在1的基礎(chǔ)上,顯示出數(shù)據(jù)重復(fù)的次數(shù)

  • cut -d ‘:’ -f 4 /etc/passwd | sort -n | uniq -c

此時(shí),顯示的數(shù)據(jù)最左邊為重復(fù)次數(shù),后接一個(gè)空格,隨后是cut獲取到的排好序的數(shù)據(jù)

3 在2的基礎(chǔ)上,把顯示的數(shù)據(jù)按重復(fù)次數(shù)逆序排好

  • cut -d ‘:’ -f 4 /etc/passwd | sort -n | uniq -c | sort -t ’ ’ -k 1 -n

因?yàn)閡niq -c命令后,重復(fù)次數(shù)在第一列,且與數(shù)據(jù)以空格隔開(kāi),所以用sort命令按空格分隔,按第一列以數(shù)字類型排序


3.3 wc

3.3.1 命令介紹

  • wc命令可以列出數(shù)據(jù)總共有多少行,多少字(英文單字),多少字符
  • 命令說(shuō)明如下:
  • wc [-lwm]
  • 參數(shù)
    -l : 僅列出行;
    -w : 僅列出多少字(英文單字);
    -m : 多少字符。
  • 如果不帶參數(shù)的話,則列出行數(shù)、字?jǐn)?shù)以及字符數(shù)

3.3.2 命令示例

統(tǒng)計(jì)/etc/passwd文件里面總的行數(shù)、字?jǐn)?shù)和字符數(shù)

cat /etc/passwd | wc


4 未完待續(xù)


5 后記

上述命令的參數(shù)僅為《鳥(niǎo)哥的Linux私房菜》中列出來(lái)的常用的參數(shù),實(shí)際上,上述命令并不止有那幾個(gè)參數(shù),具體的可以使用man指令查看。

總結(jié)

以上是生活随笔為你收集整理的Linux管道命令——《鸟哥的Linux私房菜》笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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