Upgrade to Pro — share decks privately, control downloads, hide ads and more …

黒い画面で 標準入出力を使おう

黒い画面で 標準入出力を使おう

2020/01/24 (Fri)
黒い画面おきなわ

HinayHinayLab

January 24, 2020
Tweet

More Decks by HinayHinayLab

Other Decks in Programming

Transcript

  1. 黒い画面で
    標準入出力を使おう
    2020/01/24 (Fri) 黒い画面おきなわ
    YogAgile Engineer 岩村 琢 @takusamar

    View Slide

  2. 基本情報 H28春 午前 問18
    UNIXにおいて、あるコマンドの標準出力を、直接別のコマンドの標準入力に
    つなげる機能はどれか。
    (ア) パイプ
    (イ) バックグラウンドジョブ
    (ウ) ブレース展開
    (エ) リダイレクト

    View Slide

  3. 基本情報 H24春 午前 問24
    シェルのリダイレクト機能による実現の可否に関する記述のうち、
    適切なものはどれか。
    (ア) 標準出力をファイルに切り替えることはできないが、
    標準入力をファイルに切り替えることはできる。
    (イ) 標準出力をファイルに追加することはできないが、
    標準入力と標準出力をファイルに切り替えることはできる。
    (ウ) 標準入力と標準出力をファイルに切り替えることができ、
    標準出力をファイルに追加することもできる。
    (エ) 標準入力をファイルに切り替えることはできないが、
    標準出力をファイルに切り替えることはできる。

    View Slide

  4. 標準入出力のイメージ
    Wikipediaより

    View Slide

  5. リダイレクト ファイルから入力
    #1 stdout
    ProcessA
    #2 stderr
    $ ProcessA < File0
    File0
    Display
    #0 stdin

    View Slide

  6. リダイレクト ファイルへ出力
    #1 stdout
    ProcessA
    #2 stderr
    $ ProcessA > File1
    #0 stdin
    File1
    Keyboard

    View Slide

  7. リダイレクト
    ファイルから入力、ファイルへ出力
    #1 stdout
    ProcessA
    #2 stderr
    $ ProcessA < File0 > File1
    #0 stdin
    File1
    File0

    View Slide

  8. リダイレクト
    通常の出力とエラー出力を分ける
    #1 stdout
    ProcessA
    #2 stderr
    $ ProcessA 1> File1 2> File2
    File1
    File2

    View Slide

  9. リダイレクト
    エラー出力を捨てる場合
    #1 stdout
    Process
    A
    #2 stderr
    $ ProcessA 1> File1 2>/dev/null
    File
    1
    /dev/null

    View Slide

  10. パイプ 前の出力を次の入力に使う
    #1 stdout
    ProcessA
    ProcessB
    #2 stderr
    $ ProcessA | ProcessB
    #0 stdin

    View Slide

  11. パイプ どんどん繋げられる
    #1
    ProcessA
    ProcessB
    #2
    $ ProcessA | ProcessB | ProcessC
    #0
    #1
    ProcessC
    #2
    #0

    View Slide

  12. パイプとリダイレクトの組合せも可
    $ ProcessA 1>/dev/null | ProcessB > File1
    File1
    #1
    ProcessA
    ProcessB
    #2
    #0
    #1
    #2
    #0
    /dev/null

    View Slide

  13. 知っておくと便利なコマンド
    cat ファイルまたは標準入力の内容を、そのまま標準出力に出力する
    head ファイルまたは標準入力の先頭n行を、標準出力に出力する
    tail ファイルまたは標準入力の末尾n行を、標準出力に出力する
    grep ファイルまたは標準入力から正規表現でマッチする行を探す
    sed 文字列を置換したり、行単位で抽出したり、削除したり、いろいろなテキスト
    処理ができる
    find ディレクトリの中を再帰的にたどってファイルを検索する
    xargs ファイル名の一覧を標準入力から受け取って、それらのファイルに対して
    任意のコマンドを実行する

    View Slide

  14. 基本情報 H28春 午前 問18
    UNIXにおいて、あるコマンドの標準出力を、直接別のコマンドの標準入力に
    つなげる機能はどれか。
    (ア) パイプ
    (イ) バックグラウンドジョブ
    (ウ) ブレース展開
    (エ) リダイレクト

    View Slide

  15. 基本情報 H24春 午前 問24
    シェルのリダイレクト機能による実現の可否に関する記述のうち、
    適切なものはどれか。
    (ア) 標準出力をファイルに切り替えることはできないが、
    標準入力をファイルに切り替えることはできる。
    (イ) 標準出力をファイルに追加することはできないが、
    標準入力と標準出力をファイルに切り替えることはできる。
    (ウ) 標準入力と標準出力をファイルに切り替えることができ、
    標準出力をファイルに追加することもできる。
    (エ) 標準入力をファイルに切り替えることはできないが、
    標準出力をファイルに切り替えることはできる。

    View Slide