centos 7:找不到所有命令,除了 cd

centos 7:找不到所有命令,除了 cd

我曾经在 Centos 7 上使用 oracle jdk 8 运行 Minecraft 服务器。

有时系统会崩溃并且大多数命令都找不到,除了cd您可以在此图中看到的命令

(我必须按选项卡 选项卡去看他们): 在此输入图像描述

我必须重新启动才能再次使用所有命令。

是什么导致我的系统崩溃并丢失命令?

可能是java的原因吗?

答案1

路径变量包含 shell 和其他程序查找命令的目录列表。此列表由用冒号 ( ) 连接在一起的项目表示:。例如,一个简单的 PATH 是/usr/local/bin:/usr/bin:/bin,使用 shell 命令设置

PATH=/usr/local/bin:/usr/bin:bin

然后,当您键入命令 时ls,shell 会先查找/usr/local/bin/ls,然后查找 for /usr/bin/ls,然后/bin/ls执行找到的第一个命令。

显然,您最终会得到损坏或丢失的 PATH 变量。这不可能是由于 Java 程序崩溃造成的,并且需要极其复杂的情况才能导致 Java 程序行为不当。

相反,合理的解释是您的脚本之一(也许是启动 Minecraft 服务器的脚本)正在破坏该变量。检查那些脚本。特别是,不要PATH在脚本中用作局部变量!有一个约定,即脚本中的变量使用全小写,环境变量使用全大写,这可以避免这种冲突。

相关内容