cow
我在下面放置了一个程序/opt
,然后通过添加来编辑 .bashrc
export PATH=“$PATH:/opt”
所以现在 $PATH 有/opt
但是当我想cow
直接运行时,我得到
$ cow
The program 'cow' is currently not installed. You can install it by typing:
sudo apt-get install fl-cow
我还需要跑/opt/cow
怎么了?
答案1
在我看来,您使用了错误类型的引号 (““) 与 (“”):
echo $PATH
/home/anon/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
sudo bash -c 'echo \$0 this is a test' >/opt/test.sh;sudo chmod +x /opt/test.sh
anon@masterbox:~$ export PATH=“$PATH:/opt”
anon@masterbox:~$ test.sh
bash: test.sh: command not found
anon@masterbox:~$ . .bashrc
anon@masterbox:~$ export PATH="$PATH:/opt"
anon@masterbox:~$ test.sh
/opt/test.sh this is a test
anon@masterbox:~$
编辑:为了进一步澄清这里的问题,看看当我按照你的方式做时会发生什么:
$ echo $PATH
# this is correct
/home/anon/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
$ export PATH=“$PATH:/opt”
$ echo $PATH
# this is incorrect
“/home/anon/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/opt”
$
Bash 无法以这种方式正确解释 PATH 变量。 Unicode 引号在 UNIX 系统上不能以这种方式工作。希望这能回答您的问题。
答案2
对我来说,有 2 组文件可以在其中定义 $PATH:
1. bash 文件,例如 ~/.profile、~/.bashrc 及其 /etc 等效文件
2. /etc/enviroment 和 ~/.pam_environment
这些位置有些对于所有用户来说是全局的,有些是特定于用户的。
我建议您编写在这些位置之一使用的命令,请记住带有~仅适用于使用放置文件的主目录的用户。
请记住,如果您在 ~/.bashrc 中写入路径,例如用户 Robertus,如果您更改为 root,则路径将更改为 root 1,遵循他自己的 ~/.bashrc 和公司。
我希望你觉得我的回答有用
答案3
如果你运行它,cow会工作吗:
/opt/cow
?如果不是,检查文件'cow'的模式;它需要设置可执行位。如果没有,请使用:chmod +x /opt/cow