ダウンロードしたアプリケーションをインストールして、すべてうまくいったように見えたのですが、アプリケーション名を入力すると「コマンドが見つからない」というエラーメッセージが出ます。名前は間違いないはずなのになぜ起動しないのでしょう。
シェルプロンプトからアプリケーションを起動しようとしてもうまくいかないときは、アプリケーションの実行可能ファイル名の前に./を付けてみてください。
たとえば、setiathomeというソフトウェアをダウンロードして使うケースを考えます。まず使用説明書に従ってソフトウェアをインストールします。次に実行可能ファイルのあるディレクトリに移動します(以下を参照)。
cd setiathome |
アプリケーションを起動するには、実行可能ファイル名の前に./を付けます。
./setiathome |
アプリケーションの起動に./が必要なわけは、実行可能ファイルの置かれているディレクトリがシェルの認識対象下のディレクトリ(/usr/binなど)でないからです。
こうしたケースでよくやる手は実行可能ファイルの置かれているディレクトリに移動し、そこでアプリケーションを起動することです。つまり、どこを探せば実行可能ファイルが見つかるかシェルに教えてやるわけです。./は、実行可能ファイルが現在のディレクトリにあることをbashに知らせるはたらきをします。
個人の設定をカスタマイズすれば、毎回./を付けなくてもすみます。以下に、具体的な方法を説明します。
繰り返し使うようなプログラムの場合、そのたびごとに./を付けるのは面倒です。これを不要にするには、あるファイルを編集します。
具体的にはPATH環境変数のディレクトリリストに現在のディレクトリ(表記は「.」)を追加します。これで現在のディレクトリにあるアプリケーションがシェルの起動対象になります。
カレントパスをPATHに含める方法について注意 | |
---|---|
この方法はなるべく使わないでください。カレントパス(.)にPATHを通して./をつけなくてもコマンドを実行できるようにするのはセキュリティ上深刻な問題があります。 |
まず、シェルプロンプトでテキストエディタ(picoなど)を起動します。次のように入力してファイル.bash_profileを開きます。
pico .bash_profile |
次のようなPATHステートメントが表示されます。
PATH=$PATH:$HOME/bin: |
このステートメントの最後に./を追加します。
PATH=$PATH:$HOME/bin:/usr/lib/:./ |
Ctrl-xキーを押します。「変更バッファ」(Picoは更新されたファイルのことをこう呼んでいる)を保存するか訊いてくるのでyキー(yes)を押します。すると保存するファイル名が表示されるのでEnterキーを押します。
これで、現在のディレクトリにあるアプリケーションを起動するとき実行可能ファイル名の前に./を付ける必要がなくなります。