Chaque commande échoue avec "commande introuvable" après la modification de .bash_profile?

32

Je mettais à jour mon fichier .bash_profile, et malheureusement j'ai fait quelques mises à jour et maintenant je reçois:

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
-bash: dirname: command not found
-bash: /preexec.sh.lib: No such file or directory
-bash: preexec_install: command not found
-bash: sed: command not found
-bash: git: command not found

Mon fichier bash_profile extrait d’autres fichiers .sh (sources), donc je ne suis pas sûr de la modification qui a provoqué cela.

Maintenant, si j'essaie même de faire une liste de fichiers, j'obtiens:

>ls
-bash: ls: command not found
-bash: sed: command not found
-bash: git: command not found

Des conseils sur la manière de détecter la source de l’erreur et sur la manière d’utiliser le terminal pour des opérations élémentaires telles que la création de fichiers, etc.?

    
posée Blankman 12.09.2012 - 04:08
la source

9 réponses

49

Il me semble qu'à un moment ou à un autre, vous écrasez la variable d'environnement PATH par défaut. Le type d'erreurs que vous avez, indique que PATH ne contient pas /bin , où résident les commandes ci-dessus (y compris bash ).

Par exemple, si vous le faites

PATH=/home/user/bin

au lieu de

PATH="$PATH":/home/user/bin
    
réponse donnée January 12.09.2012 - 04:34
la source
14

Une façon de déboguer votre script bash serait de démarrer un sous-shell avec l'option -x:

$ bash --login -x

Cela vous montrera toutes les commandes et leurs arguments, qui sont exécutés au démarrage de ce shell.

L'option --login est spécifiée car .bash_profile est lu par les shells de connexion. De plus amples informations sur le débogage des scripts bash sont disponibles ici: lien .

En fin de compte, je pense que la suggestion de janvier fonctionnera pour vous, mais ce lien vaut la peine d'être lu pour de futurs problèmes.

    
réponse donnée K. P. MacGregor 12.09.2012 - 05:23
la source
9

J'ai peut-être trouvé le problème. Cela a fonctionné pour moi et cela pourrait fonctionner pour vous ...

J'étais en défaut avec mon éditeur pour Windows (LF / CR) enregistre. Comme j'utilise les deux systèmes, cela semblait logique. Quand j'ai eu besoin de jouer avec mon .bash_profile , j'ai réalisé après avoir commenté et essayé des choses que rien ne fonctionnait. J'ai changé mes sauvegardes au format OS X (CR uniquement) et voilà! Plus de "commande introuvable" dans le terminal!

C'est peut-être aussi simple que cela!

    
réponse donnée cyphire 07.01.2014 - 23:14
la source
6

Après je n'ai pas pu relancer. ~ / .bash_profile ou toute commande habituelle comme whoami, grep, etc. J'ai trouvé un moyen de réexporter les chemins requis:

export PATH=/usr/local/jdk/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/cpanel/composer/bin:/usr/local/easy/bin:/usr/local/bin:/usr/X11R6/bin:/root/bin

Cela devrait fonctionner dans la plupart des systèmes, bien que certains de ces chemins ne soient pas présents dans tous les paquets Linux. Cela a fonctionné pour moi.

    
réponse donnée Ananth 03.10.2016 - 21:06
la source
3

Je pense que j'ai peut-être trouvé la réponse au problème, sinon pour vous, alors pour les autres qui ont un problème similaire. Ma réponse à cela est que je n'ai pas de .bash_profile .

Je cherchais donc partout sur le Web et j'ai trouvé la solution. Ce qui ouvre essentiellement le terminal, tapez touch ~/.bash_profile et appuyez sur Enter . Cela a corrigé mes problèmes. J'espère que ça fait la même chose pour vous

    
réponse donnée Paul 30.04.2014 - 17:28
la source
2

J'ai le même problème que toi. Je ne peux pas utiliser beaucoup de commandes populaires ( ls , vi/vim , ..) et je ne peux pas éditer /root/.bashrc lorsque je me connecte avec su dans root.

Enfin. J'ai trouvé la solution à ce problème. Connectez-vous simplement avec la commande:

su -m

Après cela, vous pouvez utiliser

vim /root/.bashrc

pour éditer PATH.

Goodluck!

    
réponse donnée MrReS 08.11.2012 - 08:40
la source
1

J'ai eu exactement le même problème:

Si je mets en lxterminal:

set | grep "jerom/bash"
PATH=/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/jerom/bash/

si je suis entré exactement la même commande dans tty2, j'ai eu:

set | grep "jerom/bash"
PATH=/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/jerom/bash\r

\ r signifie fin de ligne DOS, j'ai donc ouvert le fichier ~/.bashrc et changé les extrémités des lignes dans Krusader en style unix. Et ça marche déjà !!! : -)

Les fichiers EOL DOS posent également des problèmes épineux dans les scripts bash.

    
réponse donnée xerostomus 31.03.2014 - 02:27
la source
1

J'ai eu le même problème. Vous avez peut-être manqué un $ en exportant PATH. Vous devez ouvrir le fichier .bash_profile dans TextEdit. Si vous ne trouvez pas le fichier dans le répertoire, appuyez sur Commande + Maj + & gt; pour afficher les fichiers cachés.

Ensuite, corrigez le PATH, puis enregistrez.

Dans le répertoire du terminal, tapez: source .bash_profile.

Cela devrait résoudre le problème.

    
réponse donnée Kensam 06.08.2016 - 05:04
la source
0

J'ai eu le même problème tout à l'heure après avoir changé le .bash_profile . Et je veux le changer mais maintenant je ne peux pas, car j'ai perdu toutes les commandes, en particulier la commande nano et la commande vim, donc je ne peux pas ouvrir le fichier .bash_profile avec la commande. Et le .bash_profile est un fichier caché que je ne peux pas l'ouvrir avec le Finder.

Je dois donc trouver un moyen d’ouvrir le fichier .bash_profile. Après avoir essayé de nombreuses manières, j'ai découvert que je pouvais utiliser Atom , car Atom pouvait lire tous les fichiers d’un dossier de projet, y compris les fichiers cachés. Il suffit donc d'ouvrir Atom et de sélectionner File -> Open , choisissez le dossier <yourusername> , puis tous les fichiers masqués s'affichent dans l'arborescence de l'Atom, incluez .bash_profile !! Après avoir retiré la dernière modification et rouvert le terminal, toutes les commandes sont revenues! :)

    
réponse donnée backslash112 06.02.2017 - 04:57
la source

Lire d'autres questions sur les étiquettes