UNIXの部屋 コマンド検索: rehash

TOP UNIXの部屋 コマンド一覧 コマンドマニュアル 用語集 新版 由来/読み方辞書 環境変数マニュアル Cシェル変数 システム設定ファイル システムコール・ライブラリ ネットワークプログラミングの基礎知識


検索 :
複数のキーワードを空白で区切ると AND 検索を行います。例:「ファイル 削除」


rehash ハッシュテーブルを再構築する。csh・tcsh の内部コマンド

コマンドをタイプしたとき、シェルは実行可能ファイルを見つけるために、毎回 PATH で指定されたディレクトリを検索するわけではない。ハッシュテーブルに実行可能なコマンドを登録し、そこからコマンドを呼び出している。

このため、新しくシェルスクリプトを作ったり、パッケージをインストールした場合、実際はパスの通ったディレクトリに実行可能ファイルがあるにもかかわらず、そのコマンドがハッシュテーブルに登録されていないため、コマンドを見付けることができない場合がある。このようなときは rehash でハッシュテーブルの再構築をすることで、シェルに新しいコマンドを認識させることができる。
% cd /home/user
% echo $path
/home/user/bin
% cat > bin/sample (bin/sample にシェルスクリプトを作る)
#!/bin/csh -f
echo test
[Ctrl-D]
% chmod +x bin/sample (実行可能属性をつける)
% sample
sample: command not found.(/home/usr/bin にはパスが通っているのに sample を見付けられない)
% rehash (ハッシュテーブルを再構築)
% sample (実行できる)
test
また、
% /home/user/bin/sample
% ./bin/sample
などと絶対パスで指定すれば、ハッシュテーブルは参照されない。

sh・bash では毎回 PATH に記述されたディレクトリを検索するので、csh・tcsh の rehash に相当するコマンドはない。
>> 環境変数 PATH *
>> コマンド unhash *