電子書籍の厳選無料作品が豊富!

> ./configure --prefix=${HOME}/ファイル名 2>&1 |tee log.configure
> make 2>&1 |tee log.make

Linux初心者です。
上の2つのコマンド入力の意味がわかりません。
おそらく変数の話であると思うのですが、変数が絡んでくると理解が追いつけなくなります。
面倒ではございますが、コマンドのそれぞれの詳しい説明を頂きたいです。
よろしくお願いします。

質問者からの補足コメント

  • 回答ありがとうございます。
    2>&1の意味もよろしければ教えていただきたいです。

    No.1の回答に寄せられた補足コメントです。 補足日時:2017/01/18 17:18
  • うーん・・・

    標準入力を標準出力に出力する役割はteeコマンドではないのでしょうか?

    No.2の回答に寄せられた補足コメントです。 補足日時:2017/01/18 17:25

A 回答 (3件)

・ 2>&1


これらは「リダイレクト」という機能です。
リダイレクト で検索するといろんな解説が見つかります。
https://linuxjm.osdn.jp/html/GNU_bash/man1/bash. …

この場合は
標準エラー出力(2番) を標準出力(1番)にリダイレクトする
という意味になります。

| (パイプ) は、 前段のコマンドの標準出力を、後段のコマンドの標準入力と結び付けるものです。
標準エラー出力は対象外です。
リダイレクトすることで、標準エラー出力に向けて出力された内容を、(標準エラー出力ではなく)標準出力から出力するようにします。

・tee コマンド
https://linuxjm.osdn.jp/html/gnumaniak/man1/tee. …
[標準入力を標準出力に出力する]だけならcatコマンドです。
teeコマンドは、「ファイルにも同じものを出力する」という特徴があります。

上記のリダイレクトと合せて
・前段で標準出力されたものを、ファイルに保存する。同時に標準出力(特にリダイレクトされていないので、端末画面になっているはず)にも出力する。
・前段で標準エラー出力されたものも、リダイレクトされて標準出力になっているので、同様にファイルに保存する。同時に標準出力にも出力する。
となります。

・$HOME
変数関係だと思うのなら「Linux 変数 HOME」で検索してみましょう。
こちらもいろんな解説が見つかります。

HOMEはホームディレクトリの内容を表す環境変数です。

どう展開されるか、想像できないのなら、
set -x
と入力したあとで、各種コマンドを入力してみましょう。
変数等が展開された「最終的な実行コマンド」が出力されるようになります。
解除は set +x です
    • good
    • 0
この回答へのお礼

詳しいご説明ありがとうございます。
もっと勉強が必要ですね・・・・

お礼日時:2017/01/20 10:40

>2>&1の意味もよろしければ教えていただきたいです。



先の回答に書いたとおり
「標準出力と標準エラー出力を~する」
この回答への補足あり
    • good
    • 0

なんでprefixオプションにファイル名を付けるのかは不明。

普通はディレクトリ。出典元に確認スべし。

1行目:
カレントディレクトリのconfigureを実行。その際prefixオプションは「${HOME}/ファイル名」とする。標準出力と標準エラー出力を|tee log.configureに記録する。

2行目:
makeコマンドを実行する。標準出力と標準エラー出力をtee log.makeに記録する。
この回答への補足あり
    • good
    • 2

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!