忘记 bash 交互式 shell 中的哈希可执行文件位置

忘记 bash 交互式 shell 中的哈希可执行文件位置

我经常遇到这样的情况:我在 Python virtualenv 中工作,并且我想运行可执行的 Python 程序(例如 bpython)。我运行它,忘记了我还没有将它安装在我的 virtualenv 中,所以它不会做正确的事情。然后,我在 virtualenv 中安装 bpython,但如果我尝试运行新版本,bash 会“记住”旧版本并调用它。

更具体地说:

(venv)$ bpython
       (whoops, system-level bpython!)
(venv)$ which bpython
/usr/local/bin/bpython
(venv)$ type bpython
bpython is hashed (/usr/local/bin/bpython)
(venv)$ pip install bpython 
(venv)$ which bpython
/Users/lorin/.virtualenvs/venv/bin/bpython
(venv)$ type bpython
bpython is hashed (/usr/local/bin/bpython)

如何告诉 bash 提示符“忘记”bpython 的位置是/usr/local/bin/bpython该会话的位置?

答案1

你可以告诉 bash 重新散列:

hash -r

答案2

重置PATH变量即可:

export PATH=$PATH

相关内容