每个命令都需要 export PATH="/usr/bin:$PATH"

每个命令都需要 export PATH="/usr/bin:$PATH"

所以我试图设置 JAVA_HOME 变量,但每次我想使用终端时都会遇到这个错误

Command 'poweroff' is available in the following places
* /sbin/poweroff
* /usr/sbin/poweroff
The command could not be located because '/sbin:/usr/sbin' is not included in the 
PATH environment variable.
This is most likely caused by the lack of administrative privileges associated with 
your user account.
poweroff: command not found

我可以用这个命令修复它:

export PATH="/usr/bin:$PATH"

但每次我打开新终端时都会再次遇到错误,并且必须再次使用此命令。

如果你能帮忙,我将不胜感激。顺便说一下,我用Ubuntu 22.04.1 LTS

答案1

虽然,既然你接受了问题,这可能是一个对你有用的权宜之计,更好的方法是修复错误的原因。不幸的是,在你的问题中,你没有表明如何你设置了JAVA_HOME变量。不知何故,你在某些地方做了一些更改,导致变量清空PATH

因此,请仔细检查您的.bashrc文件。任何更改 的内容PATH都是您自己添加的。默认情况下,PATH不再在 中修改.bashrc。请参阅/etc/skel/.bashrc默认.bashrc文件。

答案2

转到你的主目录,编辑 .bashrc

添加您的行:

导出 PATH="/usr/bin:$PATH"

现在,每次启动新的终端实例时,您的路径都会被导出。

当然,你可以在 $PATH 之前添加任何其他路径

祝你好运。

答案3

通常PATH设置在 中/etc/environment。这是我的版本:

$ cat /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"

现在,我不知道你做了什么来设置你的JAVA_HOME,但有一些例子https://stackoverflow.com/questions/47013303/ubuntu-java-environment-path-bash-etc-environment-permission-denied解释了如何将 添加JAVA_HOME/etc/environment。如果您按照此操作,但将 替换为>>>而不是添加到现有文件,则会覆盖它。这意味着PATH现在 已丢失。

重新添加PATH我的示例中的定义应该可以解决大多数问题,除非您安装了某个添加另一个路径组件的包。

/etc/environment在而不是.profile或中执行此操作的优点.bashrc是,它适用于所有用户,包括运行服务器进程的用户,而不仅仅是您。

相关内容