標準入出力とパイプライン <- Linux覚書 <- TetraCalibers
TetraCalibers :
    -   for : science student & programmer
Linux覚書 - 4
標準入出力とパイプライン

    標準入出力

     

    コマンドを実行すると、次のような標準入出力チャネルが開かれる。
    • 標準入力(通常はキーボード)
    • 標準出力(通常は端末ディスプレイ)
    • 標準エラー出力(通常は端末ディスプレイ)

     

    リダイレクト

     

    標準入出力先を変更することをリダイレクトという。
    • < ファイルで標準入力をファイルに変更
    • > ファイルで標準出力をファイルに変更
    • >> ファイルで出力をファイルの末尾に追記
    • 2> ファイルで標準エラー出力をファイルに変更
    • 2>> ファイルでエラー出力をファイルの末尾に追記

     

    標準出力と標準エラー出力を分ける
    コマンド > 出力用ファイル 2> エラー出力用ファイル
    標準出力と標準エラー出力をまとめる
    コマンド > ファイル 2>&1
    ここで現れる数値は、標準入出力を次のように数値化したものである。
    • 0は標準入力
    • 1は標準出力
    • 2は標準エラー出力

     

    nullファイルへのリダイレクト

     /dev/nullに標準入出力をリダイレクトすると、内容や結果が捨てられる。

    • 入力を空にしたいときは標準入力をリダイレクト
    • エラーメッセージだけを読みたいときは標準出力をリダイレクト
    • エラーメッセージを非表示にしたいときは標準エラー出力をリダイレクト
    • メッセージ出力を抑止したいときは標準出力・標準エラー出力をともにリダイレクト

     

    パイプライン

     

    パイプラインは、一つのコマンドの結果を別のコマンドに直接送り込んでコマンドを連携させる機能である。

     

    コマンドA | コマンドB
    コマンドAを実行し、その標準出力をコマンドBの引数(標準入力)としてコマンドBを実行