Rompí mi PATH editando mi ~/.bash_profile y Bash no reconocerá la mayoría de los comandos

en .bash_profile accidentalmente configuré la ruta a:

PATH="~/Tools/apache-maven-3.3.3/bin"

y ahora la ruta predeterminada se ha ido. Ya nada en la Terminal funciona:

Korays-MacBook-Pro:~ koraytugay$ ls
-bash: ls: command not found
Korays-MacBook-Pro:~ koraytugay$ mkdir test
-bash: mkdir: command not found

No puedo ver archivos ocultos en Finder, así que tampoco puedo modificar .bash_profile desde Finder.

¿Cómo puedo solucionar esta situación?

Es posible que esto no funcione en un sistema BSD-ish: intente restaurar una ruta predeterminada con PATH=$(getconf PATH), de lo contrario, hagaPATH=/bin:/usr/bin
La sugerencia "getconf PATH" sí funciona bien, al menos en 10.10.
Dado que el PATH está destrozado, la sugerencia de Glenn funcionará conPATH=$(/usr/bin/getconf PATH)

Respuestas (6)

La forma más sencilla es restaurar desde una copia de seguridad, por ejemplo, desde Time Machine
. Sin embargo, si la última copia de seguridad es hace tanto tiempo que hay otros cambios que desea conservar, puede editar .bash_profile

en la terminal

En una terminal, puede usar la ruta completa a los editores ( /usr/bin/emacs /usr/bin/vi o /usr/bin/nano) para editar ~/.bash_profile

p.ej

/usr/bin/nano ~/.bash_profile

O puede abrirlo con el editor de texto predeterminado (por defecto TextEdit) a través de:

/usr/bin/open ~/.bash_profile

En GUI - desde Dock o Finder

Pero también puede hacer esto desde TextEdit (u otros editores de GUI) mediante Archivo->Abrir e ir a su directorio de inicio. Dependiendo de si ha configurado el Finder para que muestre todos los archivos o no los ocultos (predeterminado), verá .bash_profile en la lista o puede presionar ⌘ CMD++ ⇧ SHIFT, .que revela los archivos ocultos en los cuadros de diálogo Abrir/Guardar. (el atajo es de esta respuesta )

Los usuarios que no pueden solucionar el problema descrito por sí mismos probablemente sean mejores usando nanoen lugar de emacs/ vipara editar ~/.bash_profile.
@nohillside: ¿Cómo ayuda el uso de nano a prevenir tales problemas?
@lelouch no lo hace. Pero nano es útil incluso para personas que no están acostumbradas a Terminal, emacs/vi no lo es.

Recuperar un PATH mínimo

Ingrese el siguiente comando para restablecer una RUTA mínima:

PATH=/bin:/usr/bin

Arreglar~/.bash_profile

Edite su ~/.bash_profilecon su editor de texto preferido vi, emacso TextEdit. Siempre prefiera una construcción PATH relativa:

PATH=${PATH}:...my_personal_added_pathes...
export PATH

Pruébalo

Antes de proceder como hacen muchos principiantes reiniciando su sesión, para descubrir que ya no pueden iniciar un shell. Pruebe su ~/.bash_profile: abra otra Terminalventana y compruebe que funciona bien:

. ~/.bash_profile
ls
uptime
date
...
No hay necesidad de exportsu mínimo PATH. Cualquier proceso iniciado por el shell actual heredará el mínimo PATH. Sin embargo, lo usaría export PATHen un archivo de configuración de shell.
¡Derecho! Estoy tan acostumbrado a escribirlo de esta manera en entornos donde hay scripts de shell en prueba.

Me encontré con este error que me llevó toda una tarde superar. ls, git, mkdir, etc. Los comandos de bash dejaron de ser válidos e informaron un error: "-bash: xx: no se pueden encontrar archivos o directorios" porque modifiqué .bash_profile al instalar zsh. ingrese el siguiente comando para restaurar su ~/.bash_profile

  1. en la terminal de mac, ingrese:

    export PATH=/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    
  2. puede usar sus comandos bash temporalmente, ingrese:

    vim ~/.bash_profile
    
  3. restaurar los parámetros de PATH modificando

    export PATH=/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    
  4. guarde vim y salga, luego ingrese:

    source ~/.bash_profile
    

OK, mi computadora funciona de nuevo!

Podría valer la pena agregar que uno debe tener cuidado en el paso 3 para no destruir otro contenido en el archivo.
el .bash_profile fue destruido por mis pedidos incorrectos, no queda nada excepto "export PATH =" vacío, por lo que esta es la única forma en que tuve que volver a respaldar mi mac

Es porque sobrescribe la RUTA del sistema existente.

Puede solucionarlo agregando "$PATH" delante de cada línea.

Ejemplo:

PATH=$PATH:/my/path/here
PATH=$PATH:/my/other/path/here
export PATH
  1. Abra su bash_profile ejecutando /usr/bin/vim ~/.bash_profile. (vim ~/.bash_profile ya no funcionará porque la ruta no es correcta).
  2. Deshazte de la ruta que acabas de agregar que arruinó todo.
  3. Salga y reinicie la terminal para que source ~/.bash_profile se ejecute automáticamente. (Una vez más, no funcionará como está, porque la ruta no es correcta).

Abra su .bash_profile, vaya a la línea con su comando de error y coloque un # antes como primer carácter de la línea. Reinicie (para estar seguro).

¿Cómo abre su .bash_profile?