Come resettare Bash su Mac OSX, .bash_profile corrotto e bash non funziona più


17

Sono su un MacBook Pro, con l'ultima versione di Mountain Lion.

Ho davvero bisogno di aiuto, sono riuscito a capire come danneggiare il mio .bash_profile (penso) in modo che ogni volta che apro il terminale riceva l'errore elencato di seguito.

-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

Non sono sicuro di cosa sia successo, non ho sudo, cd o comandi normali. L'unico modo in cui sono stato in grado di accedere a una delle directory principali è tramite il comando vai alla cartella nel finder e provo a trovare il file senza risultati.

Per finire, penso di aver creato un file che potrebbe causare il problema, volevo modificare il .bash_profile così ho digitato

sudo nano ./bash_profile

Questo apre un nuovo file in nano che penso sia stato poi salvato. Dopo questo ho aperto il vero .bash_profile da aggiungere nel percorso per node.js.

Se riesco ad arrivare al .bash_profile penso di poterlo riavviare in pista ma non riesco a trovarlo, devo reinstallare bash? Se è così, come potrei farlo su un Mac, ho provato a usare

brew install bash

a cui arrivo

-bash: brew: command not found

La prima cosa che vorrei provare è passare a una shell diversa per essere in grado di risolvere il problema: vedere qui su come farlo support.apple.com/kb/TA27005 . Ciò dovrebbe consentire di modificare / rimuovere il file offensivo e riportare la shell in bash.
Gjallar,

Grazie, ho provato a reinstallare bash ma l'unica cosa che è cambiata è che -bash: export: '/Users/rob/Applications/sbt/bin:': not a valid identifierè andata. L'unica cosa con cui sto lottando è che la prima riga potrebbe essere memorizzata, ho guardato nel mio .bash_profile, .profile e .bashrc ma niente.
Strangeone,

Ok, quindi ho aggiunto /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/binal mio .bash_profile e sembra che abbia corretto la bash ma ho ancora questo errore -bash: export: '/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/bin': not a valid identifierQualche idea?
Strangeone,

Puoi provare quanto segue: PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/bin:$PATH" # Make sure to use double quotes not single quotesE su una nuova linea export PATH.
Gjallar,

Grazie, sembra aver funzionato. Per favore, posso solo chiedere perché hai pensato che avrebbe funzionato?
Strangeone,

Risposte:


12

Unendo tutti i miei commenti per una risposta:

La prima cosa che dovresti fare è cambiare la shell, in questo modo puoi impostare una shell che non caricherà gli script di script bash ( .bashrc, .bash_profile) - come farlo per l'app del terminale Mac OS X può essere visto qui: Supporto Apple

Ora dovresti essere in grado di riaprire un terminale e utilizzare il tuo editor di riga di comando preferito per aprire il .bash_profilefile (ad esempio nanoo vi):

In questo file è necessario ripristinare la PATHvariabile utilizzata dal terminale per trovare i programmi che può eseguire.

Questo può essere fatto con le seguenti due righe:

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

Questo prima imposterà le directory che vuoi avere sul tuo PERCORSO ed esporta questo PERCORSO per renderlo disponibile a tutti i programmi avviati da questa shell (tramite esportazione).


21

⇧⌘. mostra i file nascosti nelle finestre di dialogo dei file. Potresti provare ad aprire ~ / .bash_profile con TextEdit e renderlo temporaneamente vuoto.


+1 per l'utile scorciatoia da tastiera che non conoscevo :)
Michel,

nota: .bash_profile è nella tua home directory (Users / [username] /. bash_profile
Amos,

grazie @Lri, mi hai salvato la giornata!
Vicky_Vignesh,

4

Stavo correndo lo stesso problema e ho appena trovato una soluzione più semplice:

/usr/bin/nano .bash_profile

elimina tutto il tuo casino, quindi salva il file


Migliore risposta. Facile e garantito per funzionare.
Nikk Wong,

3

So che questo è un vecchio thread, ma volevo solo lasciare qui la mia soluzione nella speranza che qualcun altro abbia lo stesso problema.

Quando ho eseguito il terminale da MacOS era ok con il mio utente, ma quando cambiato in sudo non poteva funzionare (comando non trovato).

Ho finito per risolverlo con:

nano ~/.bashrc

Ho appena rimosso il percorso che ha causato l'errore. Riavviato il terminale e ora funziona tutto bene.


0

Ho scoperto di recente che i file in stile DOS causano problemi per entrambi gli script .bash * in OS-X. Devo usare le terminazioni dei file DOS per alcuni codici condivisi con gli utenti Windows, quindi se modifico .bash_profile mentre in quel repository git ricevo molti messaggi di errore quando eseguo lo script (al login). L'utilità dos2unix l'ha risolto.


-1

Oltre alla visualizzazione precedentemente menzionata di file nascosti e l'utilizzo di un editor di testo, esiste anche un modo più semplice per aprire una nuova shell senza modificare la shell predefinita. Puoi fare clic con il tasto Alt sull'app Terminal e selezionare "Nuovo comando ...". Quindi digitare "sh" nella finestra di dialogo ed eseguirlo. Questo aprirebbe una shell non bash e qui potresti modificare il file. In futuro sarebbe una buona idea tenere aperta una shell o testare il nuovo .bash_profile prima di uscire.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.