質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

Q&A

解決済

3回答

3287閲覧

エラー出力が格納されているerrorファイルとは

RM_4

総合スコア85

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

0グッド

0クリップ

投稿2016/02/11 07:28

『コマンド 2 > error』
として実行結果でエラー出力を、errorファイルに格納することができる。と学んだのですが、

結局エラーメッセージは画面上に表示されますし、出てきたエラーメッセージがどこに格納されているかもわかりません。

私のなかのイメージでは、
エラーになってもエラーメッセージは表示せずerrorファイルに書き込まれていく。というものでした。(エラーメッセージ表示されているしerrorファイルがどこにあるのかもわかりませんが…)

この『』内の式はどういうものなのでしょうか

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

結論

タグに Linux bash とありますので、それを前提に説明します。

先に結論を言いますと

  • 「2」 と 「>」の間に空白は入れません
  • error ファイルはカレントディレクトリに作られます

ということになります。
以下、詳細を説明します。

詳細説明

元の説明をよく見てください「2」 と 「>」 の間に空白は無いはずです。
空白がある場合と無かった場合では解釈が異なります。

元の説明が意図していた(と思われる)コマンドライン

まず、元の説明の記述(と私が予測した)の以下の記述の解釈について説明します。

bash

1$ コマンド 2> error

Linux の場合、一般的にコマンドの出力は「標準出力」と「標準エラー出力」という二つの出力先に出力されます。
「2>」 というのはその「標準エラー出力」を、その後に指定したファイル(上の例では error)に出力せよ、
という意味です。

質問に書かれているコマンドライン

あなたが試した

bash

1$ コマンド 2 > error

という記述では、「2」と「>」は独立した指定として別々に扱われます。
まず、単体の「2」には特別な意味が無いので、「コマンド」の「2」というパラメータとして扱われ、
bash は「コマンド」にパラメータ「2」を与えて実行します、
「>」は「標準出力」をその後に指定したファイルに出力せよという意味なので、標準出力が「error」ファイルに出力されます。
そのため、標準エラー出力に出力されるはずのエラーメッセージはデフォルトのまま
コンソールに出力され、

結局エラーメッセージは画面上に表示されます

という結果になったのです。

error ファイルはどこにあるのか

「error」という名前は、例として示されているだけで、「>」や「2>」の後には、どんなファイルを指定しても(あなたに書きこみ権限があれば)構いません、
任意に指定します。
そして、この機能に限らず、bash を使う上でのデフォルトの解釈として、
パス(「/home/usr/~」とか「~/prog01」といったような)記述の無いファイル名はカレントディレクトリにあるものと解釈されます。
従って、コマンドを実行した後、ls コマンドを実行すれば error ファイルができているのが見えるはずです。

補足

「>」や「2>」を使ってコマンドの出力をファイル等に出す機能は「リダイレクト」「リダイレクション」と呼ばれます。
検索などをする際はこの言葉を使うと、より効率よくこの機能について学べると思います。

投稿2016/02/11 07:59

kozuchi

総合スコア1193

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

RM_4

2016/02/11 10:45

Errorファイルはコマンドをうつことによって作られるのですね!
guest

0

えっと、「2 >」ではなく、「2>」と、スペースを入れずに書く必要があります。

(追記)

このように、コンソールに表示されるものの出力先を変えることを、「リダイレクト」といいます。で、コマンドの出力には、大きく分けて「標準出力」と「標準エラー出力」があって、「> ファイル」とすると標準出力が指定のファイルに書き込まれて、「2> ファイル」とすると、標準エラー出力が指定のファイルに書き出されることとなります。

bash

1# 標準出力は「output」ファイルへ、標準エラー出力は「error」へ 2some_command > output 2> error

「some_command 2 > error」と書くと、「some_command 2」の結果である標準出力をerrorファイルに出す、という意味になります。

投稿2016/02/11 07:37

編集2016/02/11 08:02
maisumakun

総合スコア145123

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

参考情報:

...
リダイレクト記号の基本的な書式は次のようになります。

書式 説明
① コマンド > file コマンドの標準出力をfileに書き込む
② コマンド >> file コマンドの標準出力をfileに書き足す
③ コマンド < file コマンドはfileの内容を標準入力として受け取る
④ コマンド 2> file コマンドの標準エラー出力をfileに書き込む
⑤ コマンド > file 2>&1 標準エラー出力の出力先を、標準出力の出力先と同じとする

tee コマンドのついても知っておくとよいです。

...
「コマンドの結果をファイルに出力したいけど、標準出力でも出力を見たい!」、という欲張りな要望に答えてくれる意外と頼もしいコマンド。
...
標準エラー出力もファイルに保存する
リダイレクトを使う。これをやらないと標準エラー出力だけファイルにロギングされないという事態になってしまう。
ping 9999 2>&
...

投稿2016/03/25 15:28

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問