Eliminó accidentalmente todos los comandos en el terminal

3

Estaba siguiendo un tutorial y puse la siguiente línea:

export PATH="~/.composer/vendor/bin/"

Ahora no funciona ningún comando, ni siquiera cosas como ls .

¿Qué hace el comando que copio y pegué y cómo lo arreglo?

    
pregunta John Mellor 25.09.2014 - 12:08

2 respuestas

7

Lo que hiciste

$PATH es la variable que le dice a su shell (bash por defecto) dónde buscar sus comandos. Contiene una lista de directorios, separados por dos puntos ( : ). Cuando escribe ls , el shell buscará todos los directorios listados dentro de $PATH ( /bin , /usr/bin , etc.) hasta que encuentre un archivo llamado ls , y lo ejecutará.

Normalmente, configuras una variable simplemente con

variable="foo bar baz"

... sin embargo, eso solo establece esa variable para el shell actual; esos cambios no se transferirán a las subshells, lo que puede ser importante en (por ejemplo) los scripts. Utilizando

export variable="foo bar baz"

... le permitirá utilizar la variable en subshells.

Entonces, cuando usas export PATH="~/.composer/vendor/bin/" , estás sobrescribiendo la variable $PATH - así que cuando intentas usar ls , el shell se ve en ~/.composer/vendor/bin/ , no encuentra ningún archivo llamado ls , y así falla. Lo que probablemente quieras hacer es agregar ~/.composer/vendor/bin/ a tu $PATH , lo que puedes hacer con:

export PATH="$PATH:~/.composer/vendor/bin/"

Puedes ver el contenido actual de tu $PATH con echo $PATH .

Cómo solucionarlo

Todo esto solo se aplica al shell actual (y todas sus subshells, ya que usaste export ), por lo que puedes solucionar el problema simplemente abriendo un nuevo terminal, como notas de la respuesta de Mateusz Szlosek .

Si do desea modificar su $ PATH permanentemente, puede poner esa línea al final de su ~/.bashrc , que se obtiene cada vez que abre una shell interactiva. Esta es una práctica estándar si desea escribir algunos de sus propios scripts (en Linux, usamos ~/bin para los scripts de usuario, pero pueden ir a cualquier parte).

    
respondido por el evilsoup 25.09.2014 - 17:18
3
El comando

export solo funciona en la sesión actual. Puede "arreglarlo" abriendo la nueva ventana / pestaña Terminal .

    
respondido por el Mateusz Szlosek 25.09.2014 - 12:14

Lea otras preguntas en las etiquetas