好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Shell過濾器的具體使用

Shell過濾器的具體使用

熱門標簽:電商外呼系統排名 AI智能電銷機器人壞處 地圖標注審核周期 沈陽ai電銷智能機器人 蘭州電銷機器人加盟 黑暗之魂3地圖標注 合肥電銷外呼系統供應商 如何申請400的電話呀 電話機器人對家居行業幫助大嗎

我們己經知道,將幾個命令通過管道符組合在一起就形成一個管道。通常,通過這種方式使用的命令就被稱為過濾器。過濾器會獲取輸入,通過某種方式修改其內容,然后將其輸出。

簡單地說,過濾器可以概括為以下兩點:

  • 如果一個 Linux 命令是從標準輸入接收它的輸入數據,并在標準輸出上產生它的輸出數據(結果),那么這個命令就被稱為過濾器。
  • 過濾器通常與 Linux 管道一起使用。

常用的被作為過濾器使用的命令如下所示:

命令 說明
awk 用于文本處理的解釋性程序設計語言,通常被作為數據提取和報告的工具。
cut 用于將每個輸入文件(如果沒有指定文件則為標準輸入)的每行的指定部分輸出到標準輸出。
grep 用于搜索一個或多個文件中匹配指定模式的行。
tar 用于歸檔文件的應用程序。
head 用于讀取文件的開頭部分(默認是 10 行)。如果沒有指定文件,則從標準輸入讀取。
paste 用于合并文件的行。
sed 用于過濾和轉換文本的流編輯器。
sort 用于對文本文件的行進行排序。
split 用于將文件分割成塊。
strings 用于打印文件中可打印的字符串。
tac 與 cat 命令的功能相反,用于倒序地顯示文件或連接文件。
tail 用于顯示文件的結尾部分。
tee 用于從標準輸入讀取內容并寫入到標準輸出和文件。
tr 用于轉換或刪除字符。
uniq 用于報告或忽略重復的行。
wc 用于打印文件中的總行數、單詞數或字節數。

接下來,我們通過幾個實例來演示一下過濾器的使用。

在管道中使用 awk 命令

關于 awk 命令的具體用法,請大家自行學習,本節我們我們僅通過幾個簡單的實例來了解一下 awk 命令在管道中的使用。

實例1

查看系統中的所有的賬號名稱,并按名稱的字母順序排序。

[jb51.net]$ awk -F: '{print $1}' /etc/passwd | sort
adm
apache
avahi
avahi-autoipd
bin
daemon
dbus
ftp
games
...

在上例中,使用冒號:作為列分隔符,將文件 /etc/passwd 的內容分為了多列,并打印了第一列的信息(即用戶名),然后將輸出通過管道發送到了 sort 命令。

實例2

列出當前賬號最常使用的 10 個命令。

[jb51.net]$ history | awk '{print $2}' | sort | uniq -c | sort -rn | head
140 echo
 75 man
 71 cat
 63 su
 53 ls
 50 vi
 47 cd
 40 date
 26 let
 25 paste

在上例中,history 命令將輸出通過管道發送到 awk 命令,awk 命令默認使用空格作為列分隔符,將 history 的輸出分為了兩列,并把第二列內容作為輸出通過管道發送到了 sort 命令,使用 sort 命令進行排序后,再將輸出通過管道發送到了 uniq 命令,使用 uniq 命令 統計了歷史命令重復出現的次數,再用 sort 命令將 uniq 命令的輸出按照重復次數從高到低排序,最后使用 head 命令默認列出前 10 個的信息。

實例3

顯示當前系統的總內存大小,單位為 KB。

[jb51.net]$ free | grep Mem | awk '{print $2}'
2029860

在管道中使用 cut 命令

cut 命令被用于文本處理。你可以使用這個命令來提取文件中指定列的內容。

實例1

查看系統中登錄 Shell 是“/bin/bash”的用戶名和對應的用戶主目錄的信息:

[jb51.net]$ grep "bin/bash" /etc/passwd | cut -d: -f1,6
root:/root
mozhiyan:/home/mozhiyan

如果你對 Linux 系統有所了解,你會知道,/ctc/passwd 文件被用來存放用戶賬號的信息,此文件中的每一行會記錄一個賬號的信息,每個字段之間用冒號分隔,第一個字段即是賬號的賬戶名,而第六個字段就是賬號的主目錄的路徑。

實例2

查看當前機器的CPU類型。

[jb51.net]$ cat /proc/cpuinfo | grep name | cut -d: -f2 | uniq
Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz

上例中,執行命令cat /proc/cpuinfo | grep name得到的內容如下所示:

[jb51.net]$ cat /proc/cpuinfo | grep name
model name  : Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz
model name  : Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz
model name  : Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz
model name  : Intel(R) Core(TM) i5-2520M CPU 0 2.50GHz

然后,我們使用 cut 命令將上述輸出內容以冒號作為分隔符,將內容分為了兩列, 并顯示第二列的內容,最后使用 uniq 命令去掉了重復的行。

實例3

查看當前目錄下的子目錄數。

[jb51.net]$ ls -l | cut -c 1 | grep d | wc -l
5

上述管道命令主要做了如下操作:

  • 命令ls -l輸出的內容中,每行的第一個字符表示文件的類型,如果第一個字符是d,就表示文件的類型是目錄。
  • 命令cut -c 1是截取每行的第一個字符。
  • 命令grep d來獲取文件類型是目錄的行。
  • 命令wc -l用來獲得 grep 命令輸出結果的行數,即目錄個數。

在管道中使用grep命令

grep 命令是在管道中比較常用的一個命令。

實例1

查看系統日志文件中的錯誤信息。

[jb51.net]$ grep -i "error:" /var/log/messages | less

實例2

查看系統中 HTTP 服務的進程信息。

[jb51.net]$ ps auxwww | grep httpd
apache 18968 0.0 0.0 26472 10404 ?  S  Dec15  0:01 /usr/sbin/httpd
apache 18969 0.0 0.0 25528 8308 ?  S  Dec15  0:01 /usr/sbin/httpd
apache 18970 0.0 0.0 26596 10524 ?  S  Dec15  0:01 /usr/sbin/httpd

實例3

查找我們的程序列表中所有命令名中包含關鍵字 zip 的命令。

[jb51.net]$ ls /bin /usr/bin | sort | uniq | grep zip
bunzip2
bzip2
bzip2recover
gunzip
gzip

實例4
查看系統安裝的 kernel 版本及相關的 kernel 軟件包。

[jb51.net]$ rpm -qa | grep kernel
kernel-2.6.18-92.e15
kernel-debuginfo-2.6.18-92.e15
kernel-debuginfo-common-2.6.18-92.e15
kernel-devel-2.6.18-92.e15

實例5

查找 /etc 目錄下所有包含 IP 地址的文件。

[jb51.net]$ find /etc -type f -exec grep '[0-9][0-9]*[.][0-9][0-9]*[.][0-9][0-9]*[.][0-9][0-9]*' {} \;

在管道中使用 tar 命令

tar 命令是 Linux 系統中最常用的打包文件的程序。

實例1

你可以使用 tar 命令復制一個目錄的整體結構。

[jb51.net]$ tar cf - /home/mozhiyan | ( cd /backup/; tar xf - )

實例2
跨網絡地復制一個目錄的整體結構。

[jb51.net]$ tar cf - /home/mozhiyan | ssh remote_host "( cd /backup/; tar xf - )"

實例3
跨網絡地壓縮復制一個目錄的整體結構。

[jb51.net]$ tar czf - /home/mozhiyan | ssh remote_host "( cd /backup/; tar xzf - )"

實例4
檢査 tar 歸檔文件的大小,單位為字節。

[jb51.net]$ cd /; tar cf - etc | wc -c
215040

實例5
檢查 tar 歸檔文件壓縮為 tar.gz 歸襠文件后所占的大小。

[jb51.net]$ tar czf - etc.tar | wc -c
58006

實例6
檢查 tar 歸檔文件壓縮為 tar.bz2 歸襠文件后所占的大小。

[jb51.net]$ tar cjf - etc.tar | wc -c
50708

在管道中使用 head 命令

有時,你不需要一個命令的全部輸出,可能只需要命令的前幾行輸出。這時,就可以使用 head 命令,它只打印命令的前幾行輸出。默認的輸出行數為 10 行。

實例1

顯示 ls 命令的前 10 行輸出。

[jb51.net]$ ls /usr/bin | head
addftinfo
afmtodit
apropos
arch
ash
awk
base64
basename
bash
bashbug

實例2
顯示 ls 命令的前 5 行內容。

[jb51.net]$ ls / | head -n 5
bin
cygdrive
Cygwin.bat
Cygwin.ico
Cygwin-Terminal.ico

在管道中使用 uniq 命令

uniq 命令用于報告或刪除重復的行。我們將使用一個測試文件進行管道中使用 uniq 命令的實例講解,其內容如下所示:

[jb51.net]$ cat testfile
This line occurs only once.
This line occurs twice.
This line occurs twice.
This line occurs three times.
This line occurs three times.
This line occurs three times.

實例1
去掉輸出中重復的行。

[jb51.net]$ sort testfile | uniq
This line occurs only once.
This line occurs three times.
This line occurs twice.

實例2
顯示輸出中各重復的行出現的次數,并按次數多少倒序顯示。

[jb51.net]$ sort testfile | uniq -c | sort -nr
3 This line occurs three times.
2 This line occurs twice.
1 This line occurs only once.

在管道中使用 wc 命令

wc 命令用于統計包含在文本流中的字符數、單同數和行數。

實例1
統計當前登錄到系統的用戶數。

[jb51.net]$ who | wc -l

實例2
統計當前的 Linux 系統中的進程數。

[jb51.net]$ ps -ef | wc -l

到此這篇關于Shell過濾器的具體使用的文章就介紹到這了,更多相關Shell過濾器內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Windows Powershell Where-Object 條件過濾
  • Windows Powershell過濾管道結果
  • PowerShell中按文件后綴過濾的實現代碼

標簽:黔南 河池 河北 淮南 通遼 常州 黔南 隴南

巨人網絡通訊聲明:本文標題《Shell過濾器的具體使用》,本文關鍵詞  Shell,過濾器,的,具體,使用,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Shell過濾器的具體使用》相關的同類信息!
  • 本頁收集關于Shell過濾器的具體使用的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 三个男人躁我一个爽小芳视频| 一边亲一边摸进内裤里的视频| 久久久久久精品免费啪啪国卢浮宫| 3:难以忍受的味道| 97国语自产精品视频在线区| 美女被喷白浆视频| 精品日产高清卡4卡5区别| 美女撒尿无遮挡全部过程| 秋霞午夜伦伦A片| 汉服女装齐胸襦裙被c视频在线| 亚洲欧洲国产精品久久| 国产不卡视频在线| 国产精品探花免费观看| 中国老女人内谢ⅩXXX视频| 日本大乳视频| 十九岁日本动漫免费完整版| 另类欧美亚洲| 中文字幕精品无码亚洲字幕一区| 女人被男人免费播放网站 | 女吊妞这里只有精品| 日韩伦理视频在线观看| 淳安县| 国产69凹凸视频在线网站观看| 日日夜| 摸一摸操一操| 欧美色涩在线第一页| 91口爆吞精国产| 老鸭窝黄色| 舔一舔啊唔舒服| 精品成人无码亚洲AV| 麻豆丨国产丨白浆秘?洗澡| free日本xxxx另类hd| 朋友的朋友5中汉字| 国产无遮挡色视频免费视频| 娇小搡BBBB搡BBBB| 亚洲综合色一区二区三区| 九九re6精品视频在线观看| 试看60边摸边吃奶边做| 锵锵锵锵锵锵锵锵锵好大好深在线观看免费 | 黄色软件大全| 陛下爽?躁多水?快?深点小说|