我已经export PATH="~/.composer/vendor/bin/lumen"
在导出之后.bashrc
命令不起作用, 但是如果在终端中输入命令则起作用,我只希望在终端中输入命令时与屏幕截图完全相同。我该如何解决这个问题?.bash_profile
lumen
Rasel Khan:~$ lumen
lumen: command not found
~/.composer/vendor/bin/lumen
lumen
查看屏幕截图
答案1
仅取消设置 PATH 并不能解决您的问题,因为您仍然没有包含必要系统目录的 PATH。设置自己的 PATH 时,大多数情况下,您需要将新条目附加到旧 PATH 变量中,而不是像您所做的那样将其完全替换。
通过键入以下内容将 PATH 变量恢复为系统默认值
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
然后编辑 .bashrc 和 .bash_profile 以获得正确的条目,如下所示
export PATH="$PATH:~/.composer/vendor/bin"
请注意,变量设置为以现有的 $PATH 开头。这样,您的 PATH 中仍将保留所有原始系统目录,而您添加的内容将位于末尾。另请注意,我已删除从示例末尾删除 lumen,因为 lumen 显然是您要执行的二进制文件的名称,并且您的 PATH 应该仅包含目录包含二进制文件,而不是二进制文件本身。
答案2
执行此命令以获取系统默认值:
grep _PATH /etc/login.defs
答案3
PATH 存储了终端查找应用程序/脚本等的所有位置...如果您将 PATH 设置为某些“不友好”的目录,系统将无法找到 /bin/sudo 和其他目录。您必须输入整个路径,如 /bin/sudo。解决此问题的最佳方法是打开 bash_profile 并插入以下行:export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games 我认为更改配置文件将在下次重新启动后立即生效,因此请执行此操作,然后使用该命令export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
为当前会话修复它。
“Protip :D :D”如果你想在目录“/home/username/foo/bin”中检查你自己的程序,只需将此方法添加到你的 PATH 中,你将能够通过其名称来调用存储在那里的程序
希望能帮助到你 :)
答案4
无法找到该命令,因为 PATH 环境变量中不包含“/bin”。
此错误意味着您使用上面添加的 PATH 变量覆盖了默认路径。
如何恢复旧的 PATH?
默认 PATH 变量在 /etc/environment 中定义。
要恢复默认 PATH,首先export PATH="~/.composer/vendor/bin/lumen"
从您的.bashrc
然后使用命令保存并获取:
source .bashrc
然后从中删除.bash_profile
并保存来源:
source .bash_profile
现在 source /etc/environment 恢复默认路径
source /etc/environment
现在你的默认 PATH 已恢复,你可以通过运行来检查echo $PATH
将新路径添加到 PATH 变量
现在添加新的 PATH 使用:
export PATH=$PATH:$HOME/.composer/vendor/bin/
编辑:这里出现错误是因为我们添加了二进制文件本身,因此请检查上面的行
添加以下行然后.bashrc
保存并获取:
source .bashrc
检查运行,$PATH
您应该会看到新添加的路径。