nginx 编程 shell apache Android 微软 Windows google mysql 云计算 php java Firefox Python 程序员 Ubuntu wordpress 开源 centos linux

管道命令符的重新定义

  同時按下鍵盤上的Shift+\鍵即可輸入管道符,其執行格式為“命令A | 命令B”。管道命令符的作用也可以用一句話來概括“把前一個命令原本要輸出到屏幕的標準正常數據當作是後一個命令的標準輸入”。在2.8節講解grep文本搜索命令時,我們通過匹配關鍵詞/sbin/nologin找出了所有被限制登錄系統的用戶。

 現在要做的就是把搜索命令的輸出值傳遞給統計命令,即把原本要輸出到屏幕的用戶信息列表再交給wc命令作進一步的加工,因此只需要把管道符放到兩條命令之間即可,具體如下。這簡直是太方便了!

 這個管道符就像一個法寶,我們可以將它套用到其他不同的命令上,比如用翻頁的形式查看/etc目錄中的文件列表及屬性信息。在修改用戶密碼時,通常都需要輸入兩次密碼以進行確認,這在編寫自動化腳本時將成為一個非常致命的缺陷。通過把管道符和passwd命令的--stdin參數相結合,我們可以用一條命令來完成密碼重置操作。

  大家是不是覺得管道符命令有些相見恨晚?管道符的玩法還有很多,比如,在發送電子郵件時,默認采用交互式的方式來進行,我們完全可以利用一條結合了管道符的命令語句,把編輯好的內容與標題一起“打包”,最終用這一條命令實現郵件的發送。

 可能會覺得上面的命令組合已經十分復雜了,但是有過運維經驗的讀者又會感覺如隔靴撓癢般不過癮,他們希望能將這樣方便的命令寫得更高級一些,功能更強大一些。比如通過重定向技術能夠一次性地把多行信息打包輸入或輸出,讓日常工作更有效率。為了大家對我們這本書的捧場,當然要義不容辭地把技術拱手奉上。

 想必大家小時候都看過“哆啦A夢”動畫片吧。哆啦A夢(也就是我們常稱的機器貓)經常為了取悅大雄而從口袋中掏出一件件寶貝,其中好多次就用到了任意門這個道具。其實,管道符就好像是用於實現數據穿越的任意門,可以幫我們提高工作效率,完成之前不敢想象的復雜工作。

延伸阅读

评论