Oracle® Solaris 11.2 でのシステム管理のトラブルシューティング

印刷ビューの終了

更新: 2014 年 9 月
 
 

検索パスに関連する問題を解決する (Command not found)

    Command not found」のメッセージは、次のどれかを意味します。

  • コマンドがそのシステムに存在しない

  • コマンドのディレクトリが検索パスに存在しない

検索パスの問題を解決するには、コマンドが格納されているディレクトリのパス名を知る必要があります。

間違ったバージョンのコマンドが見つかってしまうのは、同じ名前のコマンドを持つディレクトリが検索パスにある場合です。この場合、正しいディレクトリが検索パスの後ろの方にあるか、まったく存在しない可能性があります。

現在の検索パスを表示するには、echo $PATH コマンドを使用します。

間違ったバージョンのコマンドを実行しているかどうかを調べるには、type コマンドを使用します。例:

$ type acroread 
acroread is /usr/bin/acroread

検索パスの問題を診断して解決する方法

  1. 現在の検索パスを表示して、コマンドが入っているディレクトリがユーザーのパス内に存在しない (あるいはスペルが間違っている) ことを確認します。
    $ echo $PATH 
  2. 次を確認してください。
    • 検索パスは正しいか

    • 検索パスは、別バージョンのコマンドが見つかったほかの検索パスの前に表示されているか。

    • 検索パスのいずれかにコマンドが存在するか

    パスを修正する必要がある場合は、手順 3 に進みます。修正する必要がない場合は、手順 4 に進みます。

  3. 次の表に示すように、適切なファイルでパスを追加します。
    シェル
    ファイル
    構文
    注意事項
    bash および ksh93
    $HOME/.profile
    $ PATH=$HOME/bin:/sbin:/usr/local/bin ...
    $ export PATH
    パス名はコロンで区切る
  4. 次のように、新しいパスを有効にします。
    シェル
    パスの場所
    パスを有効にするコマンド
    bash および ksh93
    .profile
    . $HOME/.profile
    .login
    hostname$ source $HOME/.login
  5. 新しいパスを確認します。
    $ which command
使用例 3-1  検索パスの問題を診断して解決する

この例は、type コマンドを使用して、mytool の実行可能ファイルが検索パス中のどのディレクトリにも存在しないことを示しています。

 $ mytool
  -bash: mytool: command not found
  $ type mytool
  -bash: type: mytool: not found
  $ echo $PATH
  /usr/bin:
  $ vi $HOME/.profile
  (Add appropriate command directory to the search path)
  $ . $HOME/.profile
  $ mytool

コマンドを見つけることができなかった場合は、マニュアルページでそのディレクトリパスを調べます。