管道及重定向

管道及重定向

1、重定向

在Linux中有時我們在命令的執行過程中,不想將執行結果顯示到屏幕上,或者將其結果輸出到其他位置
這時就需要重定向來解決這個問題了
首先了解一下Linux中的3種I/O設備:
0:標準輸入
1:標準輸出
2:標準錯誤輸出
輸出重定向:>  >>  輸入重定向: <  <<
>:將標準輸出重定向到文件 
echo "Hello" > /app/test.tab
2>:將標準錯誤輸出重定向到文件
ls /etc /error > /app/test.tab 2> /app/error.tab
&>:將所有輸出重定向到文件
ls /etc /error &> /app/test.tab 
>>:將標準輸出追加重定向到文件
2>>:將標準錯誤輸出追加到文件
&>>:將所有標準輸出追加到文件

<:標準輸入重定向(單行重定向)
<<:(多行重定向)
eg:有些命令能夠通過輸入重定向接受來自文件的輸入
wc -l < /etc/motd 統計motd文件的行數
mail -s "help" root << eof  此命令是給root用戶發送一個郵件,其中指定多行重定向的終止符eof(也可是其它)來
                            指定退出時的終止符
>please help me
>thanks
>eof

2、管道

符號 "|" ,用來連接命令
CMD1 | CMD2 | CMD3 | …    
(1)將CMD1的標準輸出傳給CMD2,CMD2的標準輸出輸出再發給CMD3
(2)默認情況下標準錯誤輸出不能通過管道轉發,通過2>&1或|&來實現
eg: [root@Centos6 ~]#cat /etc/issue /error 2>&1 | sort
    cat: /error: No such file or directory
    CentOS release 6.9 (Final)
    Kernel \r on an \m
(3)最后一個命令會在當前shell進程的子shell進程中執行

3、”-“符號

在管道中"-"可以用來代替之前命令標準輸出
eg: tar -cvf - /app | tar -xvf -   將/app下的文件打包,打包后不記錄到文件里,而是傳到標準輸出在經管道傳給后面的
                                   解包命令

4、tee 命令 重定向到多個目標

有時我們在使用管道時需要將不同階段的數據輸出到屏幕上,而還要將數據向下傳遞,我們就需要用到tee命令
eg: [root@Centos6 ~]#ls | tee | tr "a-z" "A-Z"

原創文章,作者:M25_ymd,如若轉載,請注明出處:http://www.www58058.com/82651

(0)
M25_ymdM25_ymd
上一篇 2017-07-27 21:17
下一篇 2017-07-28 10:26

相關推薦

  • 常見RAID級別原理, Linux中軟RAID實現方式詳解

    RAID簡介     RAID(Redundant Arry of Independent Disks)獨立冗余陣列,舊稱(Redundant Arry of Inexpensive Disks)廉價冗余陣列,其主要目的是將多個硬盤組成在一起來達到提高I/O、讀寫、冗余性。 RAID分為硬件RAID和軟件RAID &n…

    Linux干貨 2016-03-09
  • 第十三周作業

    “1、建立samba共享,共享目錄為/data,要求:(描述完整的過程)   1)共享名為shared,工作組為magedu;   2)添加組develop,添加用戶gentoo,centos和ubuntu,其中gentoo和centos以develop為附加組,ubuntu不屬于develop組;密碼均為用戶名; …

    Linux干貨 2017-08-13
  • 條件選擇if 條件判斷case 文件查找 find locate 以及壓縮和解壓縮工具

    1 shell腳本編程之 條件選擇if 條件判斷case  2 文件查找 find locate 以及壓縮和解壓縮工具 過程式編程語言:  順序執行  選擇執行  循環執行 條件選擇之 if語句 選擇執行: ?  注意:if語句可嵌套 ?   單分支 if 判斷條件:then 條件為真的分…

    Linux干貨 2016-08-15
  • Linux文件系統管理

    馬哥教育網絡班23期+第3周課程練習 Linux文件系統管理 由于第三周所學的只是比較零碎,知識量比較大,這篇博客主要講述的是一些習題,包括怎樣完成的練習的思路和截圖等等。首先我們看第一個題目 1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。    [root@localhost]/media/P…

    Linux干貨 2016-09-23
  • 軟件包管理

    軟件包管理 在linux中有人多的軟件使用,比如我們使用的ifconfig,fdisk,btrfs文件系統等??赡苓@些軟件在你原有的linux系統中并不存在,那么我們如何去使用這些工具呢。我們知道windows在需要軟件的時候需要安裝,當然對于linux系統一樣需要安裝。在linux下常用的安裝工具我們使用的是rpm程序包(當然我們這邊是針對CentOS而言…

    Linux干貨 2016-08-19
  • bash功能特性二 命令別名和歷史命令

    一、歷史命令     bash提供存儲歷史命令的功能,下面來詳細介紹一下。     1、history命令         命令格式:history [options]   &nb…

    Linux干貨 2015-04-21
欧美性久久久久