【问题标题】:Can't execute any basic command in linux console [closed]无法在linux控制台中执行任何基本命令[关闭]
【发布时间】:2012-02-24 19:49:04
【问题描述】:

我知道问题是如何产生的,但真的不知道如何恢复服务器命令执行。

问题是,我在我的 Ubuntu 服务器中配置 Glassfish 的环境变量,我从 root 修改了 .bashrc 文件并添加了一个 export 子句(带有 GLASSFISH_HOME 变量)和一个 PATH 子句(指向$GLASSFISH_HOME/bin)。

在我关闭控制台并再次打开它以使更改生效之后,(BAM!)一旦我启动新的控制台会话,则没有任何基本命令(dir、find、nano、 ifconfig,任何东西)现在工作,我只能使用cd 移动目录,我正在尝试再次编辑.bashrc 文件以撤消更改但也无法编辑它,没有一个编辑器打开!在命令行中我只得到-bash: dir: command not found。

如果您对此有任何解决方案,请提供;我知道这似乎微不足道,但我有点盲目,无法查看或找到命令/应用程序所在的文件和文件夹。

【问题讨论】:

  • echo $PATH 的输出是什么?
  • 我知道它开始是一项开发任务,但我认为更适合 askubuntu.com
  • 它是 /home/newuser/glassfish3/glassfish/bin。有什么想法吗?

标签: linux bash


【解决方案1】:

导出二进制路径:

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

之后,您就可以再次操作并撤销您的更改。

否则,只需使用您喜欢的编辑器进行编辑,同时给出编辑器二进制文件的完整路径:

/usr/bin/emacs -nw /root/.bashrc

【讨论】:

  • 唷!谢谢兄弟,解决了这个问题。我再次控制了服务器。非常感谢。
【解决方案2】:

您已经覆盖了您的$PATH,而不是附加到它,您的.bashrc 中可能有类似的内容:

export PATH=$GLASSFISH_HOME/bin

或类似的,但您需要将当前的$PATH 附加到它的末尾:

export PATH=$GLASSFISH_HOME/bin:$PATH

要在终端中编辑此内容,您必须将/usr/bin 附加到您的编辑器(例如/usr/bin/vim ~/.bashrc),直到您更正问题为止。

您不妨read more about the $PATH variable。

【讨论】:

  • 感谢 Andrew,您的解决方案也有效。
【解决方案3】:

可能您在更改环境变量时删除了路径;这将阻止大多数命令被发现。

幸运的是,您可以在指定命令时使用完整路径名来解决此问题。

vim 不工作?使用 /usr/bin/vim

ls 不工作?使用 /usr/bin/ls

您要使用的大多数命令都在 /usr/bin 中;如果在那里找不到,您可以检查 /bin 或 /usr/sbin

通过访问编辑器,您应该能够修复启动脚本以恢复您的路径。

【讨论】:

  • 您好 antlersoft,感谢您的回答,但已经尝试过了。我去了/usr/bin,除了java之外什么都没有。你知道 vim 或 nano 的其他位置吗?
  • @JoeAlmore 现在您的路径已修复,您可以使用type -a vim 查找。我猜是/bin。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-04
  • 2016-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多