Home

技術系のメモと日々の雑感

bash も使ってる hash

ハッシュ聞くと最初に思いつくのは perl の連想配列だけど。
こないだから再読しているオライリーの「入門 bash」によると、コマンドの検索速度を上げるために bash もハッシュを使っているんだとか。
コマンドを初めて実行するときよりも2回目以降の方が速いのは、てっきり Linux のキャッシュの処理が優秀なだけかと思ってたけど、bash も工夫してるんだね。
ハッシュテーブルに登録されているコマンドは hash コマンドで確認することができる。

$ hash
hits    command
   1    /bin/grep
   1    /usr/X11R6/bin/startx
   1    /bin/rm
   3    /bin/vi
   1    /usr/bin/man
   2    /usr/bin/find

コマンドごとに何回実行したか(hits)というのも分かって面白い。
でも、これって何の順番で並んでるんだろ。
ハッシュテーブルに追加された順番でもないし、謎だ。
このハッシュの機能は PATH(環境変数)をたどって外部コマンドを探すためのものなので、当然ながら bash の組み込みコマンドは表示されない。
で、kill も組み込みコマンドだったのか、なんて驚いてる自分がちょっと情けなかったり。
ちなみに、組み込みコマンドについて調べたいときは bash の man ページよりも help の方がよくまとまってるみたいだ。

この記事に対するトラックバック

この記事のトラックバックURL

-

管理人の承認後に表示されます

  • From: |
  • 2013/08/24(土) 12:52:54

この記事に対するコメント

この記事にコメントする

管理者にだけ表示を許可する