UNIX/Linuxの部屋 rehashコマンドの使い方

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




コマンド rehash ハッシュテーブルを再構築する。csh・tcsh の内部コマンド このエントリーをはてなブックマークに追加

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

このため、新しくシェルスクリプトを作ったり、パッケージをインストールした場合、実際はパスの通ったディレクトリに実行可能ファイルがあるにもかかわらず、そのコマンドがハッシュテーブルに登録されていないため、コマンドを見付けることができない場合がある。このようなときは 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
などと絶対パスで指定すれば、ハッシュテーブルは参照されない。

csh・tcsh で、上記のハッシュテーブルを使用しないようにするには unhash コマンドを使う。

PATH そのものの説明については PATH を参照のこと。

bashの場合
bash のハッシュテーブルは、csh・tcsh と考え方が微妙に異なる。hash コマンドを参照のこと。