欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Shell管道和過(guò)濾器的使用

 更新時(shí)間:2024年03月05日 11:39:58   作者:Charge8  
本文主要介紹了Shell管道和過(guò)濾器的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

一、Shell管道

Shell 還有一種功能,就是可以將兩個(gè)或者多個(gè)命令(程序或者進(jìn)程)連接到一起,把一個(gè)命令的輸出作為下一個(gè)命令的輸入,以這種方式連接的兩個(gè)或者多個(gè)命令就形成了管道(pipe)。

重定向和管道的區(qū)別:

  • 重定向操作符>將命令與文件連接起來(lái),用文件來(lái)接收命令的輸出;
  • 管道符|將命令與命令連接起來(lái),用第二個(gè)命令來(lái)接收第一個(gè)命令的輸出。

命令格式如下:

command > file
command1 | command1

1、Shell管道

Linux 管道使用豎線|連接多個(gè)命令,這被稱為管道符。Linux 管道的具體語(yǔ)法格式如下:

command1 | command2
command1 | command2 [ | commandN... ]

當(dāng)在兩個(gè)命令之間設(shè)置管道時(shí),管道符|左邊命令的輸出就變成了右邊命令的輸入。只要第一個(gè)命令向標(biāo)準(zhǔn)輸出寫入,而第二個(gè)命令是從標(biāo)準(zhǔn)輸入讀取,那么這兩個(gè)命令就可以形成一個(gè)管道。

大部分的 Linux 命令都可以用來(lái)形成管道。

注意:

  • 管道里面的 command只能處理其正確的輸出結(jié)果。
  • 管道符|與兩側(cè)的命令之間也可以不存在空格,但是推薦在管道符|和兩側(cè)的命令之間使用空格,以增加代碼的可讀性。

示例1:將 ls 命令的輸出發(fā)送到 grep 命令

[root@centos7 tmp]#  ls -al | grep test.sh
-rw-r--r--   1 root root  168 3月   3 12:27 test.sh

示例2:將上述管道命令的輸出結(jié)果發(fā)送到文件 output.txt 中

[root@centos7 tmp]# ls -al | grep test.sh  >output.txt
[root@centos7 tmp]# cat output.txt
-rw-r--r--   1 root root  168 3月   3 12:27 test.sh

示例3:查看指定程序的進(jìn)程運(yùn)行狀態(tài),并將輸出重定向到文件中。

[root@centos7 tmp]# ps aux | grep httpd > /tmp/ps.output

2、管道與輸入重定向

輸入重定向操作符<可以在管道中使用,以用來(lái)從文件中獲取輸入,其基本語(yǔ)法:

command1 < input.txt | command2
command1 < input.txt | command2 -option | command3

示例:使用 tr 命令從 demo.txt 文件中獲取輸入,然后通過(guò)管道將輸出發(fā)送給 sort 或 uniq 等命令:

[root@centos7 tmp]# cat demo.txt
百度一下
http://www.baidu.com/
shell 重定向
[root@centos7 tmp]# tr a-z A-Z <demo.txt | sort
HTTP://WWW.BAIDU.COM/
SHELL 重定向
百度一下
[root@centos7 tmp]# tr a-z A-Z <demo.txt | sort | uniq
HTTP://WWW.BAIDU.COM/
SHELL 重定向
百度一下
[root@centos7 tmp]#

3、管道與輸出重定向

可以使用重定向操作符>或>>將管道中的最后一個(gè)命令的標(biāo)準(zhǔn)輸出進(jìn)行重定向,其語(yǔ)法如下所示:

command1 | command2 | ... | commandN > output.txt
command1 < input.txt | command2 | ... | commandN > output.txt

示例:使用 tr 命令將 demo.txt 文件中的內(nèi)容轉(zhuǎn)化為大寫,并使用 sort 命令將內(nèi)容排序,使用 uniq 命令去除重復(fù)的行,最后將輸出重定向到文件 demo_new.txt。

[root@centos7 tmp]# tr a-z A-Z <demo.txt | sort | uniq >demo_new.txt
[root@centos7 tmp]# cat demo_new.txt
HTTP://WWW.BAIDU.COM/
SHELL 重定向
百度一下
[root@centos7 tmp]#

二、Shell過(guò)濾器

1、Shell過(guò)濾器

將幾個(gè)命令通過(guò)管道符組合在一起就形成一個(gè)管道。通常,通過(guò)這種方式使用的命令就被稱為過(guò)濾器。過(guò)濾器會(huì)獲取輸入,通過(guò)某種方式修改其內(nèi)容,然后將其輸出。

過(guò)濾器可以概括為以下兩點(diǎn):

  • 如果一個(gè) Linux 命令是從標(biāo)準(zhǔn)輸入接收它的輸入數(shù)據(jù),并在標(biāo)準(zhǔn)輸出上產(chǎn)生它的輸出數(shù)據(jù)(結(jié)果),那么這個(gè)命令就被稱為過(guò)濾器。
  • 過(guò)濾器通常與 Linux 管道一起使用。

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

在這里插入圖片描述

下面通過(guò)實(shí)例來(lái)演示幾個(gè)過(guò)濾器命令的使用。

2、在管道中使用grep命令

grep命令(global search regular expression and print out the line的縮寫):用于全面搜索的正則表達(dá)式,并將結(jié)果輸出。

人們通常會(huì)將grep命令與正則表達(dá)式搭配使用,參數(shù)作為搜索過(guò)程中的補(bǔ)充或?qū)敵鼋Y(jié)果的篩選,命令模式十分靈‍活。

語(yǔ)法格式:grep 參數(shù) 文件名

常用參數(shù):

在這里插入圖片描述

示例1:查看 demo文件中的 www信息。

[root@centos7 tmp]# grep -i "Www" /tmp/demo.txt
http://www.baidu.com/
[root@centos7 tmp]# grep -i "Www" /tmp/demo.txt | less

示例2:查看系統(tǒng)中 HTTP 服務(wù)的進(jìn)程信息。

[root@centos7 tmp]# ps auxwww | grep httpd

示例3:查找我們的程序列表中所有命令名中包含關(guān)鍵字 zip 的命令。

[root@centos7 tmp]# ls /bin /usr/bin | sort | uniq | grep zip
bunzip2
bzip2
bzip2recover
funzip
gpg-zip
gunzip
gzip
unzip
unzipsfx
zip
zipcloak
zipgrep
zipinfo
zipnote
zipsplit
[root@centos7 tmp]#

示例4:查看系統(tǒng)安裝的 kernel 版本及相關(guān)的 kernel 軟件包。

[root@centos7 tmp]# rpm -qa | grep kernel
kernel-headers-3.10.0-957.el7.x86_64
kernel-3.10.0-957.el7.x86_64
kernel-tools-3.10.0-957.el7.x86_64
kernel-tools-libs-3.10.0-957.el7.x86_64
abrt-addon-kerneloops-2.1.11-52.el7.centos.x86_64
[root@centos7 tmp]# 

3、在管道中使用 head 命令

有時(shí),你不需要一個(gè)命令的全部輸出,可能只需要命令的前幾行輸出。這時(shí),就可以使用 head 命令.

head命令的功能是顯示文件開頭的內(nèi)容,默認(rèn)為前10行。

語(yǔ)法格式:head 參數(shù) 文件名

常用參數(shù):

在這里插入圖片描述

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

[root@centos7 tmp]# ls /usr/bin | head
[
a2p
ab
abrt-action-analyze-backtrace
abrt-action-analyze-c
abrt-action-analyze-ccpp-local
abrt-action-analyze-core
abrt-action-analyze-oops
abrt-action-analyze-python
abrt-action-analyze-vmcore
[root@centos7 tmp]#

示例2:顯示 ls 命令的前 5 行內(nèi)容。

[root@centos7 tmp]# ls /tmp | head -n 5
demo.txt
err.log
error.log
info.log
output.txt
[root@centos7 tmp]#

4、在管道中使用 wc 命令

wc 命令:wc命令(word count的縮寫):其功能是統(tǒng)計(jì)文件的字節(jié)數(shù)、單詞數(shù)、行數(shù)等信息,并將統(tǒng)計(jì)結(jié)果輸出到終端界面。

基本語(yǔ)法格式:wc 參數(shù) 文件名

常見參數(shù)如下:

在這里插入圖片描述

示例1:統(tǒng)計(jì)當(dāng)前登錄到系統(tǒng)的用戶數(shù)。

[root@centos7 tmp]# who | wc -l
1

示例2:統(tǒng)計(jì)當(dāng)前的 Linux 系統(tǒng)中的進(jìn)程數(shù)。

[root@centos7 tmp]# ps -ef | wc -l
121

示例3:顯示 ls 命令的前 5 行內(nèi)容。然后統(tǒng)計(jì)當(dāng)前內(nèi)容的行數(shù)。

[root@centos7 tmp]# ls /tmp | head -n 5 | wc -l
5

到此這篇關(guān)于Shell管道和過(guò)濾器的使用的文章就介紹到這了,更多相關(guān)Shell管道和過(guò)濾器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • linux查看所有用戶和查看用戶組的方法(修改用戶組)

    linux查看所有用戶和查看用戶組的方法(修改用戶組)

    linux里并沒有像windows的net user,net localgroup這些方便的命令來(lái)管理用戶,下面介紹查看所有用戶和用戶組的方法
    2014-01-01
  • shell 中數(shù)學(xué)計(jì)算總結(jié)

    shell 中數(shù)學(xué)計(jì)算總結(jié)

    shell中的賦值和操作默認(rèn)都是字符串處理,在此記下shell中進(jìn)行數(shù)學(xué)運(yùn)算的幾個(gè)特殊方法,以后用到的時(shí)候可以來(lái)看,呵呵
    2012-09-09
  • shell腳本實(shí)現(xiàn)linux系統(tǒng)文件完整性檢測(cè)

    shell腳本實(shí)現(xiàn)linux系統(tǒng)文件完整性檢測(cè)

    這篇文章主要介紹了shell腳本實(shí)現(xiàn)linux系統(tǒng)文件完整性檢測(cè),本文給出的腳本使用對(duì)比MD5的方法,檢測(cè)linux系統(tǒng)文件是否被替換等問(wèn)題,需要的朋友可以參考下
    2014-12-12
  • Linux使用pidof命令來(lái)快速查找進(jìn)程id

    Linux使用pidof命令來(lái)快速查找進(jìn)程id

    pidof 是一個(gè)簡(jiǎn)單而強(qiáng)大的命令行工具,廣泛應(yīng)用于進(jìn)程管理和腳本編程中,理解如何有效地使用它可以大大提高你的工作效率,本文給大家介紹了Linux使用pidof命令來(lái)快速查找進(jìn)程id的方法,需要的朋友可以參考下
    2025-03-03
  • 學(xué)習(xí)shell腳本之前的基礎(chǔ)知識(shí)[圖文]

    學(xué)習(xí)shell腳本之前的基礎(chǔ)知識(shí)[圖文]

    在學(xué)習(xí)shell腳本之前,需要你了解很多關(guān)于shell的知識(shí),這些知識(shí)是編寫shell腳本的基礎(chǔ),所以希望你能夠熟練的掌握
    2013-03-03
  • Linux命令學(xué)習(xí)之用戶切換su,sudo命令詳解

    Linux命令學(xué)習(xí)之用戶切換su,sudo命令詳解

    在操作過(guò)程中需要使用特定的用戶進(jìn)行特定的操作,多數(shù)情況下是因?yàn)闄?quán)限,比如要修改一個(gè)文件,只有root用戶有權(quán)限修改,那么就要切換到root用戶下進(jìn)行操作,本文給大家講解Linux命令學(xué)習(xí)之用戶切換su,sudo命令,感興趣的朋友跟隨小編一起看看吧
    2023-02-02
  • Shell腳本中awk指令的用法

    Shell腳本中awk指令的用法

    今天小編就為大家分享一篇關(guān)于Shell腳本中awk指令的用法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • shell進(jìn)程監(jiān)控的實(shí)現(xiàn)(ps、sleep、kill)

    shell進(jìn)程監(jiān)控的實(shí)現(xiàn)(ps、sleep、kill)

    本文主要介紹了shell進(jìn)程監(jiān)控的實(shí)現(xiàn)(ps、sleep、kill),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • shell腳本自動(dòng)修復(fù)mysql損壞的表

    shell腳本自動(dòng)修復(fù)mysql損壞的表

    這篇文章主要介紹了shell腳本如何自動(dòng)修復(fù)mysql損壞的表,需要的朋友可以參考下
    2015-10-10
  • 實(shí)戰(zhàn)模擬監(jiān)控MySQL服務(wù)shell腳本小結(jié)

    實(shí)戰(zhàn)模擬監(jiān)控MySQL服務(wù)shell腳本小結(jié)

    老男孩shell培訓(xùn)課上帶領(lǐng)學(xué)生練習(xí)shell開發(fā)if語(yǔ)句時(shí)的幾個(gè)小例子和大家分享,需要的朋友可以參考下
    2016-05-05

最新評(píng)論