Solaris のシステム管理 (第 2 巻)

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

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


    $ echo $PATH 
    
  2. 次の項目を確認します。

    • 検索パスは正しいか

    • 検索パスは、コマンドの他のバージョンが存在する他の検索パスの前に指定されているか

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

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

  3. 次の表に示すように、適切なファイルでパスを追加します。

    シェル 

    ファイル 

    構文 

    注 

    Bourne と Korn 

    $HOME/.profile

    $ PATH=$HOME/bin:/sbin:/usr/local/bin ...
    
    $ export PATH
    

    パス名はコロンで区切る 

    $HOME/.cshrc

    または  

    $HOME/.login

    hostname% set path=(‾bin /sbin /usr/local/bin ...)
    

    パス名は空白文字で区切る 

  4. 次のように、新しいパスを有効にします。

    シェル 

    パスが指定されているファイル 

    パスを有効にするコマンド 

    Bourne と Korn 

    .profile

    $ . ./.profile
    

    .cshrc

    hostname% source .cshrc
    

     

    .login

    hostname% source .login
    

  5. 次のコマンドを使用して、パスを確認します。

    $ which command
    

例 - 検索パスの問題を診断および修正する

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

venus% openwin
openwin: コマンドが見つかりません
venus% echo $PATH
no openwin in . /home/ignatz /sbin /usr/sbin /usr/bin /etc /home/ignatz/bin
/bin /home/bin /usr/etc
venus% vi ‾.cshrc(適切なコマンドディレクトリを検索パスに追加する)
venus% source .cshrc
venus% openwin

コマンドを見つけることができなかった場合は、マニュアルページでそのディレクトリパスを調べます。たとえば、lpsched コマンド (lp プリンタデーモン) を見つけることができなかった場合、lpsched(1M) のマニュアルページを調べると、そのパスが /usr/lib/lp/lpsched であることが解かります。