LoginSignup
13
14

More than 5 years have passed since last update.

hashコマンドって何?

Posted at

コマンドが叩かれると(ちょっと嘘)

  • コマンドを検索します。
  • 取り敢えず環境変数PATHに格納されている場所順にコマンドを検索していくとしましょう。
  • ちなみに我が家の環境ではこんな感じになってます
$PATH
$ echo $PATH | tr : \\n
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/usr/games

上から順々に検索していきますが、毎度毎度検索するのは全く無駄ですね。
という訳でハッシュテーブルの登場です。

ハッシュテーブルには何が

  • お察しの通りだと思いますが、見つかったコマンドの場所をメモしておきます。

コマンドが叩かれると(本当は)

  • 先にハッシュテーブルにコマンド(とそのパス)があるかどうか確認する
  • なければ環境変数PATHに格納されている場所から順々に検索する
  • 見つかれば実行
  • ハッシュテーブルに登録する事も忘れない

ハッシュテーブルの中身を確認するには

  • hashコマンドを引数無しで実行すればおk
ハッシュテーブルの確認
$ hash
hits    command
   2    /usr/bin/git
   1    /bin/mv
   1    /bin/cp
   4    /bin/ls

ただし左側の数字は実行回数

13
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
14