![我的用户 ~/bin 文件夹不起作用](https://linux22.com/image/1041506/%E6%88%91%E7%9A%84%E7%94%A8%E6%88%B7%20~%2Fbin%20%E6%96%87%E4%BB%B6%E5%A4%B9%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我正在运行 12.04
我有两个文件
/usr/bin/uim-tomoe-gtk
~/bin/uim-tomoe-gtk
第一个是 tomoe kanji 程序,
第二个是运行 kanjipad 的脚本
#!/bin/bash
exec kanjipad $@
exit 0
我希望现在能够uim-tomoe-gtk
在终端中输入并启动我的 kanjipad 应用程序。但是却出现了 uim-tomoe-gtk 程序。
我做错了什么或者我需要提供什么信息?
答案1
你需要做两件事。
首先,如果 ~/bin/ 不存在,则登录时 shell 将无法将其添加到 $PATH 中。创建目录后,您必须注销并重新登录,或者使用以下命令启动新的登录 shell:
/bin/bash -l
或者使用以下命令手动将 ~/bin 添加到您的路径中:
export PATH=/home/user/bin:$PATH
其次,shell 会保留程序所在位置的缓存。如果您在 ~/bin/(或 /usr/local/)中创建了一个脚本,而该脚本会遮盖 /usr/ 中的某些内容,那么您必须手动更新缓存。您可以使用以下命令彻底清除缓存,该命令应该可以解决问题:
hash -r
答案2
问题可能是它在你的 PATH 中/usr/bin
处于领先地位,或者根本不在你的 PATH 中。~/bin
~/bin
要修复此问题,请将此行放在 .bash_profile 文件的末尾:
export PATH=~/bin:$PATH
但请注意,这将对 ~/bin 文件夹中的其他脚本执行相同的操作。例如,如果您有/usr/bin/example_command
和 ~/bin/example_command
,您的主目录中的命令将优先。
老实说,我只会重命名该脚本。