/usr/bin
/usr/bin/emacs
たとえば、に格納されているパッケージのカスタムバージョンをコンパイルするwhich emacs
とき/usr/bin/emacs
。/usr/local/bin/emacs
/usr/local/bin
PATH
新しいバイナリを表示するscreen
前に、サインインしてログアウトするか、新しいフレームを開く必要があります。which emacs
これは一部のキャッシュが原因であるか、または再ログインする前に既存のパスを参照できるようにするいくつかのセキュリティ機能がありますか?
編集する:
この質問が重複したり、次のような他の質問で回答されたと思う人のために -Bashの実行可能ファイルパスキャッシュを消去する方法は?、ハッシュコマンドの目的は何ですか?、この質問は主にシステムのデフォルトシェルであるにもかかわらず、a shell
、not about、bash
またはhash
組み込みコマンドbash
(私が知らない)について具体的に尋ねます。
zsh
私が使ったような他のケースもありfish
、ksh
まもなくリリースされるような新しいケースもたくさんありますeshell
。ksh
oilshell
だから私はこの質問が特定のシェルではなく独立した一般的なシェルに関連しているべきだと思います。
そうする理由がある場合、経験によると、これが賢明な選択であるか、他の回答で詳しく説明するよりも、経済やパフォーマンスに関連しています。
この編集内容をレビューで書いたかったのですが、長さが限られています。
答え1
はい、bashや他のシェルは、コマンドを見つけるためにPATH変数のすべてを試みる「ハッシュ」コマンドテーブルを保持しているため、毎回確認する必要はありません。あなたのように環境を変更する人は、このコマンドがhash -d NAME
役に立ちますhash -r
。これはbashコマンドであり、他のシェルは異なる動作をする可能性があります。
だから、
hash -d emacs
bashにemacsパスを忘れるように依頼します。
hash -r
忘れてもらいますみんな道。私は後者を使用する傾向があります。