web-dev-qa-db-fra.com

Comment réinitialiser Bash sur Mac OSX, le fichier .bash_profile est corrompu et bash ne fonctionne plus

Je suis sur un MacBook Pro, exécutant la dernière version de Mountain Lion.

J’ai vraiment besoin d’aide, j’ai réussi à endommager mon fichier .bash_profile (je pense) pour que chaque fois que j’ouvre le terminal, l’erreur indiquée ci-dessous soit corrigée.

-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

Je ne suis pas sûr de ce qui s'est passé, je n'ai pas de Sudo, de cd ou de commandes normales. La seule façon dont j'ai pu accéder aux répertoires principaux est d'utiliser la commande Aller à un dossier du Finder et d'essayer de trouver le fichier en vain.

Pour couronner le tout, je pense avoir créé un fichier pouvant être à l'origine du problème. Je souhaitais modifier le fichier .bash_profile. J'ai donc saisi

Sudo nano ./bash_profile

Cela ouvre un nouveau fichier dans nano qui, je pense, a ensuite été sauvegardé. Après cela, j'ai ouvert le véritable fichier .bash_profile à ajouter dans le chemin d'accès à node.js.

Si je peux obtenir le fichier .bash_profile, je pense pouvoir le remettre sur les rails, mais je ne le trouve pas. Dois-je réinstaller Bash? Si oui, comment ferais-je cela sur un mac, j'ai essayé d'utiliser

brew install bash

à quoi je reçois

-bash: brew: command not found
16
Strangeone

Il suffit de rassembler tous mes commentaires pour obtenir une réponse:

La première chose à faire est de changer de shell. Vous pouvez ainsi définir un shell qui ne chargera pas les scripts d’initialisation bash (.bashrc, .bash_profile). Voici comment procéder de cette manière pour l’application de terminal Mac OS X: Support Apple

Vous devriez maintenant pouvoir ouvrir à nouveau un terminal et utiliser votre éditeur de ligne de commande préféré pour ouvrir le fichier .bash_profile (par exemple, nano ou vi):

Dans ce fichier, vous devez réinitialiser votre variable PATH utilisée par le terminal pour rechercher les programmes qu'il peut exécuter.

Cela peut être fait avec les deux lignes suivantes:

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

Cela va d'abord définir les répertoires que vous voulez avoir sur votre PATH et exporter ce PATH pour le rendre disponible à tous les programmes lancés à partir de ce shell (via l'exportation).

12
Gjallar

⇧⌘. affiche les fichiers cachés dans les boîtes de dialogue de fichiers. Vous pouvez essayer d’ouvrir ~/.bash_profile avec TextEdit et de le rendre vide temporairement.

17
Lri

Je courais sur le même problème et je viens de trouver une solution plus simple:

/usr/bin/nano .bash_profile

supprimez tous vos dégâts, puis enregistrez le fichier

4
Fajar Ulin Nuha

Je sais que c'est un vieux fil, mais je voulais juste laisser ici ma solution dans l'espoir que quelqu'un d'autre ait le même problème.

Lorsque j'ai exécuté le terminal sous MacOS, mon propre utilisateur était correct, mais lorsqu'il est passé à Sudo, cela ne fonctionnait pas (commande introuvable).

J'ai fini par le réparer avec:

nano ~/.bashrc

Vient de supprimer le chemin qui causait l'erreur. Redémarrez le terminal et tout fonctionne bien maintenant.

3
mau

J'ai découvert récemment que les fichiers de style DOS posaient des problèmes pour les deux scripts .bash * sous OS-X. Je dois utiliser les fins de fichier DOS pour certains codes partagés avec des utilisateurs Windows. Par conséquent, si je modifie le fichier .bash_profile dans ce dépôt git, de nombreux messages d'erreur apparaissent lors de l'exécution du script (à la connexion). L'utilitaire dos2unix l'a corrigé.

0
Bill