1. 結果をファイルに記録する
    sh, bash など
    % program > file.log
    csh, tcsh など
    % program > file.log

  2. 標準エラー出力も記録する
    sh, bash など
    % program > file.log 2>&1
    csh, tcsh など
    % program >& file.log

  3. 標準出力と標準エラー出力を別のファイルにリダイレクト
    sh, bash など
    % program > file.log 2> errors.log
    csh, tcsh など
    % (program > file.log) >& errors.log

  4. コマンドの結果を別のコマンドに渡したい
    sh, bash など
    % program | other_program
    csh, tcsh など
    % program | other_program

  5. エラー出力も渡したい
    sh, bash など
    % program 2>&1 | other_program
    csh, tcsh など
    % program |& other_program

  6. 画面を見ながらその結果を片っ端から記録したい
    sh, bash など
    % program 2>&1 | tee file.log
    csh, tcsh など
    % program |& tee file.log

    注) tee とは 標準入力からデータを読み込み、その内容を指定された
    ファイルと 標準出力に出力するコマンドです。

  7. 画面を見ながらその結果を標準出力と標準エラー出力を分けて記録したい。
    (shではできない。zshで出来ることを確認。)
    % make > LOG.stdout 2> LOG.stderr >& /dev/tty
    こっちは LOG.stdoutに両方書き込まれる。
    % make > LOG.stdout 2> LOG.stderr |& tee

  8. 画面を操作しながらその結果を片っ端から記録したい
    script(1)コマンドは、シェルによらず動作出来るので、とても有用です。
    % script file.log
    これで画面への入力及び出力の全てを file.log に記録する事が出来ます。
    ただし、Enter/C-p/C-nなどのシェルに対するキー入力も、コントロール
    コードとして そのまま記録されてしまいます。
    file.logへの記録を終えたいときは exitしてください。

  9. screen を使ってログを残す方法
    “$PREFIX_KEY H"でログ取り開始。
    ~/screenlog.0が作られる。
    “$PREFIX_KEY H"でログ取り終了。

URL: http://www.jp.freebsd.org/QandA/HTML/609.html