Cambié la RUTA, ahora recibo "comando no encontrado" para todo

26

Servidor Amazon Linux, conectado con SSH:

Traté de cambiar la RUTA para el usuario de apache haciendo algunos cambios en / etc / environment ( PATH=$PATH:/opt/openoffice4/program) y / etc / sysconfig / httpd ( export PATH = ${PATH:$PATH:}/opt/openoffice4/program).

Luego reinicié.

Ahora, no puedo hacer nada, incluso me ls -llleva a-bash: ls: command not found

¿Qué puedo hacer para recuperar el control?

Ferenjito
fuente
44
¿Puedes ejecutar comandos directamente? Por ejemplo /bin/ls?
DavidPostill
sí, puedo correr / bin / ls
Ferenjito
13
Entonces deberías poder ejecutar /bin/viy arreglar los archivos donde rompiste el camino.
DavidPostill

Respuestas:

49

¿Qué puedo hacer para recuperar el control?

Ejecute /bin/viy revierta los cambios que realizó en /etc/environmenty /etc/sysconfig/httpd.

DavidPostill
fuente
32

Puede configurar su PATHsin un editor. Simplemente escriba esto en el shell:

export PATH=/usr/local/bin:/usr/bin:/bin:$HOME/bin
Tom Zych
fuente
1
¡Y quita los espacios! PATH=something, NOPATH = something
waltinator
44
Eso debería ser citado, o de lo contrario $HOMEestará sujeto a peleas y división de palabras. IOW, se romperá si $HOMEtiene un espacio (plausible) o algún personaje glob (menos probable).
Kevin
@Kevin Lo intenté y los espacios y los globos se copiaron. (Escribir export PATH=/path to home/binno funciona, por supuesto.)
Neil
2
@ Kevin Así es como se comporta en implementaciones estrictamente conformes, pero al menos bash proporciona exportreglas de sintaxis personalizadas que no tienen ese problema. (Ya se requieren reglas de sintaxis personalizados por otras razones, por ejemplo, para permitir export array=(1 2 3).)
HVD
-1

Quizás esto ayude:

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

El comando 'exportar' no se usa desde / usr / bin, ¡por eso todavía funciona!

Felix Weber
fuente
1
Esta respuesta ya ha sido sugerida.
xenoid