11.2 I/O リダイレクションとパイプ

  • I/O とは
  • コマンドの実行結果を別のコマンドに処理させたい!
  • 現在実行中のプロセス数は?
    • リダイレクション
      % ps aux > result ; wc result
    • パイプ
      % ps aux | wc
  • 標準入力 stdin
  • 標準出力 stdout
  • 標準エラー出力 stderr

11.2.1 リダイレクションとは

  • 標準出力をターミナルからファイルに変更
    e.g.) 
    % ps aux > result
  • 標準入力をターミナルからファイルに変更
    e.g.)
    % cat < result

11.2.3 パイプ

  • コマンドの実行結果を標準出力から標準入力に変更
    e.g.)
    % ps aux | wc
    「ps aux」による出力を「wc」への入力に変更

11.2.5 I/O リダイレクションとパイプの詳細

% $command > file
% $command >> file」
% $command >& file」
%  ( $command > file1 ) >& file2
% $command1 | $command2
% $command1 |& $command2

よく使う例

% ps aux > result.txt ; less result.txt
% ps aux | less
% ps aux | grep root

演習

  • 「ps aux」で全プロセスを出力し,root が実行しているプロセス数を数えよ.リダイレクションを使用する方法と,パイプを使用する方法二通りを考えよ.
    • ヒント1:ps aux による出力結果には,root 以外のユーザによるプロセスも含まれている.この中から root の記載されている行のみを探し出し,その行数を数えると「rootが実行しているプロセス数」となる。
    • ヒント2:次の3行が「test.txt」というファイルに書かれているとする.
      abc
      1 2 3
      abc 1 2 3
    • このファイルから「abc」という文字列が含まれている行は
      % grep abc test.txt
      として抜き出すことが出来る.
    • ヒント3:ファイル内の行数を数えるには
      % wc -l test.txt
      とする.


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-06-20 (木) 14:45:26 (2286d)