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?
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?
$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
.
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).
export
solo funciona en la sesión actual. Puede "arreglarlo" abriendo la nueva ventana / pestaña Terminal .