Lo que hizo
$PATH
es la variable que le dice a su shell (bash por defecto) dónde buscar para usted comandos. Contiene una lista de directorios separados por dos puntos (:
). Cuando escriba ls
, el shell va a buscar en todos los directorios listados en $PATH
(/bin
, /usr/bin
, y así sucesivamente) hasta que encuentra un archivo llamado ls
, y se ejecutará.
Normalmente se establece una variable simplemente con
variable="foo bar baz"
...sin embargo, que sólo los conjuntos de variables de la shell actual -- los cambios no se llevan a subshells, que puede ser importante en, por ejemplo, secuencias de comandos. El uso de
export variable="foo bar baz"
...va a permitir el uso de la variable en subshells.
Así, cuando se utiliza export PATH="~/.composer/vendor/bin/"
, que son sobre-escritura de la $PATH
variable, así que cuando intenta utilizar ls
, el shell busca en ~/.composer/vendor/bin/
, no encuentra ningún archivo de nombre ls
, y así se produce un error. Probablemente lo que quiero hacer es agregar ~/.composer/vendor/bin/
su $PATH
, que se puede hacer con:
export PATH="$PATH:~/.composer/vendor/bin/"
Usted puede ver el contenido actual de su $PATH
con echo $PATH
.
Cómo solucionarlo
Todo esto sólo se aplica a la shell actual (y todos sus subshells, ya que usted usó export
), por lo que usted puede solucionar el problema de forma más sencilla mediante la apertura de una nueva terminal, como Mateusz Szlosek la respuesta de notas.
Si ¿ desea alterar su $PATH permenantly, usted puede poner esa línea al final de su ~/.bashrc
, los cuales se obtienen cada vez que abra un shell interactivo. Esta es una práctica estándar si desea escribir un par de sus propias secuencias de comandos (en Linux utilizamos ~/bin
para los scripts de usuario, pero se puede ir a cualquier lugar).