Cómo restablecer Bash en Mac OSX, .bash_profile está dañado y bash ya no funciona

17

Estoy en una MacBook Pro, ejecutando la última versión de Mountain Lion.

Realmente necesito ayuda, me las he arreglado para dañar mi .bash_profile (creo) para que cada vez que abra el terminal aparezca el error que se detalla a continuación.

-bash: export: `/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/bin': not a valid identifier
-bash: export: `/Users/rob/Applications/sbt/bin:': not a valid identifier
env: bash: No such file or directory
env: bash: No such file or directory
env: bash: No such file or directory
env: bash: No such file or directory
env: bash: No such file or directory
-bash: tar: command not found
-bash: grep: command not found
-bash: cat: command not found
-bash: find: command not found

No estoy seguro de lo que ha sucedido, no tengo sudo, cd ni ningún comando normal. La única forma en que he podido acceder a cualquiera de los directorios principales es a través del comando ir a la carpeta en el buscador e intentar encontrar el archivo en vano.

Para colmo, creo que creé un archivo que podría estar causando el problema, quería editar el .bash_profile, así que escribí

sudo nano ./bash_profile

Esto abre un nuevo archivo en nano que creo que luego se guardó. Después de esto, abrí el .bash_profile real para agregar la ruta para node.js.

Si puedo acceder al .bash_profile, creo que puedo volver a encarrilarlo pero no puedo encontrarlo, ¿debo reinstalar bash? Si es así, ¿cómo haría eso en una Mac? Intenté usar

brew install bash

a lo que llego

-bash: brew: command not found
Extraño
fuente
Lo primero que intentaría es cambiar a un shell diferente para poder resolver el problema: vea aquí cómo hacerlo support.apple.com/kb/TA27005 . Esto debería permitirle modificar / eliminar el archivo ofensivo y volver a cambiar el shell a bash.
Gjallar
Gracias, he intentado reinstalar bash pero lo único que ha cambiado es que se -bash: export: '/Users/rob/Applications/sbt/bin:': not a valid identifierha ido. Lo único con lo que estoy luchando es si la primera línea podría estar almacenada, he buscado en mi .bash_profile, .profile y .bashrc pero nada.
Strangeone el
Ok, así que agregué /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/bina mi .bash_profile y parece haber solucionado bash, pero aún recibo este error ¿ -bash: export: '/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/bin': not a valid identifierAlguna idea?
Strangeone el
¿Puedes probar lo siguiente? PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/bin:$PATH" # Make sure to use double quotes not single quotesY en una nueva línea export PATH.
Gjallar
Gracias, eso parece haber funcionado. Por favor, ¿puedo preguntar por qué pensaste que funcionaría?
Strangeone el

Respuestas:

12

Solo pongo todos mis comentarios juntos para obtener una respuesta:

Lo primero que debe hacer es cambiar el shell, de esta manera puede configurar un shell que no cargue los scripts de inicio bash ( .bashrc, .bash_profile). Aquí puede ver cómo hacer esto para la aplicación de terminal Mac OS X: Soporte de Apple

Ahora debería poder abrir una terminal nuevamente y usar su editor de línea de comandos favorito para abrir el .bash_profilearchivo (por ejemplo, nanoo vi):

En este archivo, debe restablecer la PATHvariable que utiliza el terminal para buscar los programas que puede ejecutar.

Esto se puede hacer con las siguientes dos líneas:

PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:$PATH" # Make sure to use double quotes not single quotes And on a new line 
export PATH

Esto establecerá primero los directorios que desea tener en su RUTA y exportará esta RUTA para que esté disponible para todos los programas iniciados desde este shell (a través de la exportación).

Gjallar
fuente
21

⇧⌘. muestra archivos ocultos en cuadros de diálogo de archivos. Puede intentar abrir ~ / .bash_profile con TextEdit y dejarlo en blanco temporalmente.

Lri
fuente
+1 para el atajo de teclado útil que no sabía :)
Michel
nota: .bash_profile está en su directorio personal (Usuarios / [nombre de usuario] /. bash_profile
Amós
gracias @Lri, me salvó el día!
Vicky_Vignesh
4

Estaba ejecutando el mismo problema, y ​​acabo de encontrar una solución más simple:

/usr/bin/nano .bash_profile

borra todo tu desorden, luego guarda el archivo

Fajar Ulin Nuha
fuente
La mejor respuesta. Fácil y garantizado para trabajar.
Nikk Wong
3

Sé que este es un hilo viejo, pero solo quería dejar aquí mi solución con la esperanza de que alguien más tenga el mismo problema.

Cuando ejecuté el terminal desde MacOS, estaba bien con mi propio usuario, pero cuando lo cambié a sudo no podía funcionar (comando no encontrado).

Terminé arreglándolo con:

nano ~/.bashrc

Acabo de eliminar la ruta que estaba causando el error. Reinicié la terminal y todo está funcionando bien ahora.

mau
fuente
0

Recientemente descubrí que los archivos de estilo DOS causan problemas para ambos scripts .bash * en OS-X. Tengo que usar las terminaciones de archivos de DOS para algunos códigos compartidos con usuarios de Windows, por lo que si edito .bash_profile mientras estoy en ese repositorio de git, recibo muchos mensajes de error al ejecutar el script (al iniciar sesión). La utilidad dos2unix lo arregló.

Cuenta
fuente
-1

Además de mostrar archivos ocultos anteriormente y usar un editor de texto, también hay una manera más fácil de abrir un nuevo shell sin cambiar el shell predeterminado. Puede hacer clic en la aplicación Terminal y elegir "Nuevo comando ...". Luego escriba "sh" en el diálogo y ejecútelo. Esto abriría un shell no bash y podría editar el archivo allí. En el futuro sería una buena idea mantener abierto un shell o probar la ejecución del nuevo .bash_profile antes de salir.

CortexCompiler
fuente