Mudou o PATH, agora estou recebendo "comando não encontrado" para tudo

26

Amazon Linux Server, conectado ao SSH:

Tentei alterar o PATH para o usuário apache fazendo algumas alterações em / etc / environment ( PATH=$PATH:/opt/openoffice4/program) e / etc / sysconfig / httpd ( export PATH = ${PATH:$PATH:}/opt/openoffice4/program).

Então eu reiniciei.

Agora, eu não posso fazer nada, até ls -lleva a-bash: ls: command not found

O que posso fazer para recuperar o controle?

Ferenjito
fonte
4
Você pode executar comandos diretamente? Por exemplo /bin/ls?
DavidPostill
sim, eu posso rodar / bin / ls #
Ferenjito
13
Em seguida, você poderá executar /bin/vie corrigir os arquivos onde quebrou o caminho.
DavidPostill

Respostas:

49

O que posso fazer para recuperar o controle?

Execute /bin/vie reverta as alterações feitas em /etc/environmente /etc/sysconfig/httpd.

DavidPostill
fonte
32

Você pode definir seu PATHsem um editor. Basta digitar isso no shell:

export PATH=/usr/local/bin:/usr/bin:/bin:$HOME/bin
Tom Zych
fonte
1
E remova os espaços! PATH=something, NÃOPATH = something
waltinator
4
Isso deve ser citado, ou $HOMEestará sujeito a globbing e a divisão de palavras. IOW, ele será interrompido se $HOMEhouver um espaço (plausível) ou qualquer caractere glob (menos provável).
Kevin
@ Kevin eu tentei e os espaços e globs foram apenas copiados. (Escrita export PATH=/path to home/binnão funciona, é claro.)
Neil
2
@ Kevin É assim que se comporta em implementações estritamente conformes, mas pelo menos o bash fornece exportregras de sintaxe personalizadas que não têm esse problema. (As regras personalizadas sintaxe já foram requeridos por outras razões, por exemplo, para permitir export array=(1 2 3).)
HVD
-1

Talvez isso ajude:

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

O comando 'export' não é usado em / usr / bin, por isso ainda funciona!

Felix Weber
fonte
1
Esta resposta já foi sugerida.
Xenoid