2020/01/24 (Fri) 黒い画面おきなわ
黒い画面で標準入出力を使おう2020/01/24 (Fri) 黒い画面おきなわYogAgile Engineer 岩村 琢 @takusamar
View Slide
基本情報 H28春 午前 問18UNIXにおいて、あるコマンドの標準出力を、直接別のコマンドの標準入力につなげる機能はどれか。(ア) パイプ(イ) バックグラウンドジョブ(ウ) ブレース展開(エ) リダイレクト
基本情報 H24春 午前 問24シェルのリダイレクト機能による実現の可否に関する記述のうち、適切なものはどれか。(ア) 標準出力をファイルに切り替えることはできないが、標準入力をファイルに切り替えることはできる。(イ) 標準出力をファイルに追加することはできないが、標準入力と標準出力をファイルに切り替えることはできる。(ウ) 標準入力と標準出力をファイルに切り替えることができ、標準出力をファイルに追加することもできる。(エ) 標準入力をファイルに切り替えることはできないが、標準出力をファイルに切り替えることはできる。
標準入出力のイメージWikipediaより
リダイレクト ファイルから入力#1 stdoutProcessA#2 stderr$ ProcessA < File0File0Display#0 stdin
リダイレクト ファイルへ出力#1 stdoutProcessA#2 stderr$ ProcessA > File1#0 stdinFile1Keyboard
リダイレクトファイルから入力、ファイルへ出力#1 stdoutProcessA#2 stderr$ ProcessA < File0 > File1#0 stdinFile1File0
リダイレクト通常の出力とエラー出力を分ける#1 stdoutProcessA#2 stderr$ ProcessA 1> File1 2> File2File1File2
リダイレクトエラー出力を捨てる場合#1 stdoutProcessA#2 stderr$ ProcessA 1> File1 2>/dev/nullFile1/dev/null
パイプ 前の出力を次の入力に使う#1 stdoutProcessAProcessB#2 stderr$ ProcessA | ProcessB#0 stdin
パイプ どんどん繋げられる#1ProcessAProcessB#2$ ProcessA | ProcessB | ProcessC#0#1ProcessC#2#0
パイプとリダイレクトの組合せも可$ ProcessA 1>/dev/null | ProcessB > File1File1#1ProcessAProcessB#2#0#1#2#0/dev/null
知っておくと便利なコマンドcat ファイルまたは標準入力の内容を、そのまま標準出力に出力するhead ファイルまたは標準入力の先頭n行を、標準出力に出力するtail ファイルまたは標準入力の末尾n行を、標準出力に出力するgrep ファイルまたは標準入力から正規表現でマッチする行を探すsed 文字列を置換したり、行単位で抽出したり、削除したり、いろいろなテキスト処理ができるfind ディレクトリの中を再帰的にたどってファイルを検索するxargs ファイル名の一覧を標準入力から受け取って、それらのファイルに対して任意のコマンドを実行する