質問: cc hello.cってやっても、、、 大学でc言語を勉強してます。自宅でもlinuxをやろうと思い、redhat7jを入れることには成功しました。プログラミングの知識は少しはあるのでいざ!、あの有名なhello.cのプログラムを書いてコンパイルしました。大学のパソコンからならここでa.outと打てば「hello world!」と出るはずが bash:a.out:command not faund とでてしまいます。lsコマンドで見てもa.outはちゃんと存在しているんですが、、なぜこうなるのでしょうか? どなたか回答よろしくおねがいします。
回答: hello.cをコンパイルして作成されたa.outというファイルは通常 カレントディレクトリに作成されます。 ですが、「コマンドサーチパス」にカレントディレクトリが含まれていないため、 「a.out : commans not found」となるのです。 なので、実行する際に「./a.out」のように「./」を付けて 実行する必要があります。 この、「./」は「カレントディレクトリ上のファイル」という意味があります。 または、toysmithさんの言うとおり、set path=....を実行する形になるのですが、 通常unixを使う上での暗黙の了解として「コマンドサーチパスにカレントディレクトリ を含めると、ウィルスなどに感染しやすくなるため、通常は記述しない」というモノが あります。 面倒に思えるかもしれませんが、「./xxxx」の形で使用することをお薦めします。 p.s. toysmithさんへ、 bashはrehashは不要です。 csh, tcshは必要ですが、、、