在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

linux中管道符的使用

jf_TEuU2tls ? 來源:浩道linux ? 2023-04-11 11:11 ? 次閱讀

前言

大家好,這里是浩道linux,主要給大家分享linux、python、網絡通信相關的IT知識平臺。

今天浩道跟大家分享linux運維中的硬核干貨,通過本文你將學到什么是管道符?使用管道符的便捷之處!以及為什么要少用管道符?。。?/p>

一、什么是管道符?

管道符號,是unix一個很強大的功能,符號為一條豎線:"|"。

用法: 命令 1 | 命令 2

功能是把第一個命令,即命令 1執行的結果作為命令 2的輸入傳給命令 2

例如命令:

cat test.txt | wc -l

命令功能拆解

cat test.txt命令功能是打印test.txt文件內容(行數)。

wc -l命令完成行數統計。

整個命令功能就是將cat test.txt的執行結果,通過管道符|,傳給后一個命令wc -l,作為wc -l命令的執行對象。

即上述兩個命令結合管道符完成對test.txt文件的行數統計。

二、使用管道符的便捷之處

通過上述簡單例子,我們應該可以看出使用管道符確實有它便捷的地方。以下羅列幾個,讓大家加深對于管道符使用的便捷之處。

例子1:通過shell分析,查看2023年4月1日14時這一個小時內有多少IP訪問網站;

awk '{print $4,$1}' log_file | grep 01/Apr/2023:14 | awk '{print $2}'| sort | uniq | wc -l

例子2:通過shell分析網站日志,查看有多少個IP訪問?

awk '{print $1}' log_file|sort|uniq|wc -l

三、為什么要少用管道符?

這個才是我們本文講解的重點,也是作為一個高級linux運維人員所要知道的,為什么要少用管道符?并不是說方便就可以大量使用,我們需要考慮到其執行的速度及效率,下面一起通過實例看看管道符要少用的原因!

實例:通過多種統計字符串長度命令的執行效率進行對比,得出管道符要少用的具體原因!

(一)統計字符串長度的命令有哪些?以下舉例4個方法。

方法1:通過echo ${#str1} 命令進行統計,其中str1為自定義字符串變量。

方法2:通過expr length "${str1}"命令進行統計,其中str1為自定義字符串變量。

方法3:通過echo命令,結合管道符,以及awk命令實現,如下命令:

echo"${str1}"|awk'{printlength($0)}'

其中str1為自定義字符串變量。

方法4:通過echo命令,結合管道符,以及wc命令實現,如下命令:

echo ${#str1} |wc -L

其中str1為自定義字符串變量。

(二)以上4種統計字符串長度的方法命令,哪一種效率最高,即速度最快?

以下先通過seq相關命令來生成相關的字符串長度。然后通過for循環執行來控制字符串生成次數的情況下,最后再通過time命令統計整個命令的執行時間,通過同等循環條件下,不同命令,結合直觀的運行時間進行比較,得出效率最高的方法。

執行結果1:方法1中,通過echo ${#str1}命令進行統計,具體命令如下:

time for i in {1..10000};do str1=`seq -s "haodao" 100`;echo ${#str1} &> /dev/null;done

命令執行結果,所耗時間如下:

[root@haodaolinux1 ~]# time for i in {1..10000};do str1=`seq -s "haodao" 100`;echo ${#str1} &> /dev/null;done


real    0m19.519s
user    0m8.606s
sys     0m11.374s

通過上述命令執行結果看出,該方法1耗時為19.519秒左右;

執行結果2:方法2中,通過expr length "${str1}"命令進行統計,具體命令如下:

time for i in {1..10000};do str1=`seq -s "haodao" 100`;expr length "${str1}" &> /dev/null;done

命令執行結果,所耗時間如下:

[root@haodaolinux1 ~]# time for i in {1..10000};do str1=`seq -s "haodao" 100`;expr length "${str1}" &> /dev/null;done


real    0m36.041s
user    0m15.888s
sys     0m21.697s

通過上述命令執行結果看出,該方法1耗時為36.041秒左右;

執行結果3:方法3中,通過echo命令,結合管道符,以及awk命令實現進行統計,具體命令如下:

time for i in {1..10000};do str1=`seq -s "haodao" 100`;echo "${str1}" | awk '{print length($0)}' &> /dev/null;done

命令執行結果,所耗時間如下:

time for i in {1..10000};do str1=`seq -s "haodao" 100`;echo "${str1}" | awk '{print length($0)}' &> /dev/null;done


real    0m45.241s
user    0m21.136s
sys     0m35.092s

通過上述命令執行結果看出,該方法1耗時為45.241秒左右;

執行結果4:方法4中,通過echo命令,結合管道符,以及wc命令實現進行統計,具體命令如下:

time for i in {1..10000};do str1=`seq -s "haodao" 100`;echo ${#str1} |wc -L &> /dev/null;done

命令執行結果,所耗時間如下:

[root@haodaolinux1 ~]# time for i in {1..10000};do str1=`seq -s "haodao" 100`;echo ${#str1} |wc -L &> /dev/null;done


real    0m43.024s
user    0m20.671s
sys     0m34.042s

通過上述命令執行結果看出,該方法1耗時為43.024秒左右;

結語:通過以上4種方法執行結果,我們很清楚得出方法1所耗時最少,效率最高。方法2次之;方法3和方法4中都結合了管道符的使用,耗時最多,效率最低。這里面有什么門道呢?我們都知道linux中的shell是由C語言開發的,因此它底層命令效率是最高的,而方法1中用的是linux內置命令,內置的操作;方法2中使用linux內置函數,效率高也就自然而然了。而方法3和方法4通過管道符,這涉及到類似二次加工,效率肯定也就低了。這下,我們知道了吧,管道符雖然在某些使用場景下很便捷,但是其也有其效率低的缺點,因此不能多用!

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11462

    瀏覽量

    212801
  • C語言
    +關注

    關注

    180

    文章

    7630

    瀏覽量

    140392
  • 命令
    +關注

    關注

    5

    文章

    730

    瀏覽量

    22674
  • python
    +關注

    關注

    56

    文章

    4825

    瀏覽量

    86192
  • 符號
    +關注

    關注

    0

    文章

    55

    瀏覽量

    4533

原文標題:【linux高階運維須知】管道符雖好用,但是要少用!

文章出處:【微信號:浩道linux,微信公眾號:浩道linux】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    Linux匿名管道和命名管道的區別

    管道是 UNIX系統 IPC的最古老的形式,所有的UNIX系統都提供此種通信。所謂的管道,也就是內核里面的一串緩存,從管道的一段寫入的數據,實際上是緩存在內核的,令一端讀取,也就是從
    發表于 10-12 12:50 ?1202次閱讀

    [9.6]--管道符_clip001

    Linux
    jf_90840116
    發布于 :2023年02月19日 21:04:47

    [9.6]--管道符_clip002

    Linux
    jf_90840116
    發布于 :2023年02月19日 21:05:31

    Linux下進程間通信方式-管道

    連接到另一個程序的輸入。Linux管道主要包括兩種:無名管道和有名管道。 1.無名管道 無名管道
    發表于 08-29 15:29

    linux系統管道的介紹和線程同步代碼示例

    傳統的進程間通信其中有無名管道(PIPE)、有名管道(FIFO)和信號(Signal)。咱們今天就說說linux基于POSIX的有名管道(
    發表于 10-06 09:55

    Linux系統管道和有名管道的通信機制解析

    Linux 進程間通信的幾種主要手段。其中管道和有名管道是最早的進程間通信機制之一,管道可用于具有親緣關系進程間的通信,有名管道克服了
    發表于 11-07 10:51 ?0次下載

    Linux管道和命名管道介紹

    Linux ,pipe 能讓你將一個命令的輸出發送給另一個命令。管道,如它的名稱那樣,能重定向一個進程的標準輸出、輸入和錯誤到另一個進程,以便于進一步處理。
    的頭像 發表于 09-23 10:33 ?4224次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>中</b>的<b class='flag-5'>管道</b>和命名<b class='flag-5'>管道</b>介紹

    管道數據流"實時性" 和使用小提示

    相信很多在linux平臺工作的童鞋, 都很熟悉管道符 '|', 通過它, 我們能夠很靈活的將幾種不同的命令協同起來完成一件任務
    的頭像 發表于 08-09 17:36 ?3263次閱讀

    管道符、重定向與環境變量

    作用 2、管道命令符 星號(*)代表匹配零個或多個字符,問號(?)代表匹配單個字符,括號內加上數字[0-9]代表匹配0~9之間的單個數字的字符,而括號內加上字母[abc]則是代表匹配a、b、c三個字符
    發表于 04-29 08:48 ?731次閱讀

    Linux進程間通信方式——管道

    管道Linux中進程間通信的一種方式,它把一個程序的輸出直接連接到另一個程序的輸入。Linux管道主要包括兩種:無名管道和有名
    發表于 06-01 09:13 ?1592次閱讀
    <b class='flag-5'>Linux</b>進程間通信方式——<b class='flag-5'>管道</b>

    Linux進程間通信方法之管道

    上文中我們介紹了進程間通信的方法之一:信號,本文將繼續介紹另一種進程間通信的方法,即管道。管道Linux中使用shell經常用到的一個技術,本文將深入剖析管道的實現和運行邏輯。
    的頭像 發表于 05-14 15:47 ?2167次閱讀
    <b class='flag-5'>Linux</b>進程間通信方法之<b class='flag-5'>管道</b>

    Linux系統用戶與用戶組管理

    看到上面那條命令,你是不是有點不知所以呢?其實,head前面的符號|,我們稱為管道符,它的作用是把前面的命令的輸出再輸入給后面的命令。管道符在第11章還會介紹,阿銘用得也是蠻多的,請掌握它的用法。
    的頭像 發表于 10-20 09:19 ?966次閱讀

    Linux管道符不是你想用就能亂用的!

    管道符號,是unix一個很強大的功能,符號為一條豎線:"|"。
    的頭像 發表于 06-28 09:12 ?1070次閱讀

    linux知識中常用到的管道符號有哪些

    作為一個高級linux運維人員所要知道的,為什么要少用管道符?并不是說方便就可以大量使用,我們需要考慮到其執行的速度及效率,下面一起通過實例看看管道符要少用的原因!
    發表于 09-29 07:00 ?2493次閱讀

    Linux系統管理的核心概念

    在前一篇文章,我們深入探討了Linux的文件操作命令,如cp、mv、rm,以及文本處理命令grep、wc和管道符。本文將繼續深入Linux
    的頭像 發表于 05-15 17:05 ?182次閱讀
    主站蜘蛛池模板: 亚洲一区二区三区影院 | 四虎在线观看免费永久 | 美女视频毛片 | 亚洲精品国产成人 | 特黄aaaaaa久久片 | 国产福利久久 | 天天舔日日干 | 日本精品视频一视频高清 | 日本特黄a级高清免费大片18 | 国模私拍大尺度视频在线播放 | xxxx大片| 日本a级片视频 | 激情六月综合 | 色咯咯| 色综合久久98天天综合 | 天天夜夜啦啦啦 | 扒开末成年粉嫩的小缝强文 | 天天玩夜夜操 | 二十年等一人小说在线观看 | 日本特级淫片免费 | 国产亚洲精品久久久久久久软件 | 久久精品国产精品亚洲婷婷 | 亚洲天堂首页 | www.你懂的.com | 精品一区二区三区视频 | 黄网站免费大全 | 天天干天天摸 | 在线看欧美成人中文字幕视频 | 四虎影在线永久免费观看 | 成人伊人亚洲人综合网站222 | 日韩免费视频一区二区 | 免费视频久久看 | 日韩毛片高清在线看 | 夜夜想夜夜爽天天爱天天摸 | japan日韩xxxx69hd jdav视频在线观看 | 国产黄色录像视频 | 永久黄网站色视频免费 | 色老久久精品偷偷鲁一区 | 国产黄色网 | 亚洲免费一级片 | 天天躁狠狠躁 |