我重新启动了服务器,从那时起我无法再在 SSH 下运行任何命令。
任何命令都会返回类似以下内容:-bash: ls: command not found
我意识到我的 $PATH 一定以某种方式改变了,看起来/bin/ls
效果很好。
返回echo $PATH
:
/usr/local/sbin:/usr/sbin:/sbin:$PATH:/opt/jdk1.8.0_45/bin:/opt/jdk1.8.0_45/jre/bin:/root/bin
我认为 Java 是这里的罪魁祸首,但是我该如何重置我的 $PATH 变量呢?
答案1
您可以执行以下命令将 /bin 或您需要的任何目录添加到 PATH。
export PATH="$PATH:/bin"
然后,您可以将该行添加到 .profile 或 .bashrc(如果您使用 bash),以确保每次登录时该目录都包含在您的路径中。
答案2
当查看您的 时PATH
,似乎在您的启动脚本中的某个位置,应用程序尝试将自身添加到PATH
但执行不正确。原因是您PATH
包含 string $PATH
,它应该扩展到实际路径,但实际上被包含为 string $PATH
。
事实上,Java 路径$PATH
在您的路径中,这确实使其成为主要嫌疑对象。它可能会做类似的事情:
PATH='$PATH:/opt/jdk1.8.0_45/bin:/opt/jdk1.8.0_45/jre/bin'
代替:
PATH="$PATH:/opt/jdk1.8.0_45/bin:/opt/jdk1.8.0_45/jre/bin"
注意引用的区别。