更改了PATH,现在所有内容都“找不到命令”


26

与SSH连接的Amazon Linux服务器:

我试图通过在/ etc / environment(PATH=$PATH:/opt/openoffice4/program)和/ etc / sysconfig / httpd(export PATH = ${PATH:$PATH:}/opt/openoffice4/program)中进行一些更改来更改apache用户的PATH 。

然后我重新启动。

现在,我什么也做不了,甚至ls -l导致-bash: ls: command not found

我该怎么做才能重新获得控制权?


4
您可以直接运行命令吗?例如/bin/ls
DavidPostill

是的,我可以运行/ bin / ls
Ferenjito,2015年

13
然后,您应该能够运行/bin/vi和修复断开路径的文件。
DavidPostill

Answers:


49

我该怎么做才能重新获得控制权?

运行/bin/vi并恢复您所做的更改/etc/environment/etc/sysconfig/httpd


32

您可以PATH不使用编辑器进行设置。只需在外壳中输入:

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

1
并删除空间!PATH=something,不是PATH = something
waltinator

4
应该将其引用,否则$HOME将受到环球和单词拆分的影响。IOW,如果其中$HOME有空格(合理)或任何全局字符(不太可能),它将中断。
凯文

@Kevin我尝试过,只是复制了空格和glob。(export PATH=/path to home/bin当然,写作是行不通的。)
Neil

2
@Kevin这就是严格遵守实现的方式,但是至少bash给出了export没有此问题的自定义语法规则。(出于其他原因,例如,允许,已经需要自定义语法规则export array=(1 2 3)。)
hvd 2015年

-1

也许这会有所帮助:

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

/ usr / bin中未使用'export'命令,因此这仍然有效!


1
已经提出了这个答案。
xenoid
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.