Les retours de terminaux sont introuvables pour la plupart des commandes Mac OSX

15

Je suis vraiment nouveau sur les systèmes Mac OSX et UNIX. Je voulais exécuter quelques jeux Windows sur mon Mac Mini et j'ai donc commencé à installer Wine et MacPorts.

Cela fait, j'ai tapé sudo port install wine et le terminal a renvoyé une erreur introuvable. J'ai essayé d'autres commandes de base comme say et clear et tous renvoient l'erreur non trouvée. J'ai googlé cela et tout ce que j'ai compris jusqu'à présent, c'est que le chemin d'accès peut être mal défini. J'ai donc lancé cette commande: echo $PATH et il est retourné ceci:

/ opt / local / bin: / opt / local / sbin: / opt / local / bin: / opt / local / sbin: / opt / local / bin

Quelqu'un peut-il me dire comment définir ce chemin correctement? Je suis un débutant sur mac et je ne sais pas du tout. Si cela peut aider, j'ai également installé Xcode et les outils de ligne de commande pour Xcode. Je cours Mountain Lion.

Jack Copeland
la source
3
Malheureusement, je pense que vous avez besoin d’un tutoriel sur Unix car, bien que nous puissions répondre à la question, nous ne pourrons probablement pas vous fournir suffisamment de fond pour vous aider à le comprendre. En ce qui concerne Wine - le plus simple est d'essayer Crossover (coûts) ou Wineskin (gratuit) qui ne nécessitent pas d'utilisation de terminal
Mark

Réponses:

11

$ PATH devrait contenir ces dossiers: /usr/bin:/usr/sbin:/bin:/sbin.

Essayez l'édition ~/.bash_profile, ~/.profile, ou ~/.bash_login (avec par exemple /usr/bin/open ~/.bash_profile -a TextEdit ) et en commentant les lignes qui modifient le chemin.

Si cela fonctionne, vous pouvez ajouter une ligne comme export PATH=/opt/local/bin:/opt/local/sbin:$PATH à ~/.bash_profile.

Lri
la source
J'ai essayé d'exporter PATH = / usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin et cela fonctionne, mais une fois que je ferme et rouvre le terminal, la même erreur se produit. Je suis un noob complet et je ne sais pas où se trouve ~ / .bash_profile ni aucun de ces fichiers. Je suppose qu'ils sont cachés?
Jack Copeland
~/ est le dossier de départ ( /Users/username/ ). Les fichiers commençant par un point sont masqués, mais vous pouvez les afficher avec par exemple ls -la.
Lri
2

Un problème similaire m'arrivait, alors ce que j'ai fait était:

1) dactylographie export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" dans le terminal afin de le faire fonctionner temporairement

2) Éditer bash_profile en tapant /usr/bin/open ~/.bash_profile -a TextEdit

3) Lorsque j’ai ouvert mon fichier bash_profile, j’ai réalisé que la dernière exportation semblait vraiment compliquée par des symboles étranges. J’ai donc complètement changé en export PATH=/opt/local/bin:/opt/local/sbin:$PATH

Je suis un débutant dans ce domaine, mais j’ai réussi à franchir ces étapes en lisant des morceaux de solutions de différentes questions sur la SE, alors espérons que cela pourrait aider quelqu'un d’autre.

Paula Hasstenteufel
la source
1

On dirait que vous écrasez votre chemin plutôt que d’y ajouter quelque chose.

Assurez-vous d'inclure dans votre PATH "${PATH}" d'inclure votre chemin existant aussi

Par défaut, $ PATH est défini dans quelques fichiers. Techniquement, vous devez ajouter à votre $ PATH dans le fichier .bash_profile de votre répertoire personnel.

Une suggestion est de vérifier si certains dossiers existent avant de les ajouter à votre PATH.

Par exemple j'ai:

if [ -d /usr/local/bin ] ; then
    PATH=/usr/local/bin:"${PATH}"
fi

if [ -d /usr/local/mysql/bin ] ; then
    PATH=/usr/local/mysql/bin:"${PATH}"
fi

if [ -d /opt/local/bin ] ; then
    PATH=/opt/local/bin:"${PATH}"
fi

if [ -d /opt/local/sbin ] ; then
    PATH=/opt/local/sbin:"${PATH}"
fi

if [ -d ~/bin ] ; then
    PATH=~/bin:"${PATH}"
fi

( Le -d directory commande pour voir si le répertoire existe)

sdmeyers
la source
0

En plus du correctif auquel il répond, j'aimerais aussi appeler une chose à tester.

Si votre fenêtre actuelle a simplement une mauvaise variable PATH et que votre système n'est pas plus endommagé, vous pouvez corriger le chemin facilement:

echo $PATH
/usr/libexec/path_helper

Comparez la sortie des deux commandes ci-dessus. Si vous voulez revenir à un chemin "sûr", copiez et collez la ligne que le path_helper fournit dans ce terminal. Sur un système Mac 10.11 non modifié, vous devriez avoir cette sortie de l'outil d'aide:

PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"; export PATH;

Si votre chemin doit être personnalisé, consultez les excellentes réponses également à cette question.

bmike
la source
1
Ou vous pourriez émettre PATH=$(/usr/bin/getconf PATH) pour obtenir un PATH utilisable dans le shell actuel. /usr/local n'existe pas sur un système non modifié.
fd0
Excellent @fdo - Je ne suis pas au courant de ce qui pourrait gâcher getconf, cela pourrait donc être aussi bon que de coder en dur. Il est également plus court que mon correctif de "force brute".
bmike
path_helper construit le PATH à partir du PATH actuel, le /etc/paths fichier, et tous les fichiers dans /etc/paths.d. Il peut également être influencé par les paramètres PATH de /etc/launchd.conf. getconf imprime le système PATH en dur dans le noyau sysctl user.cs_path.
fd0
0

Le fichier ./bash_profile de votre terminal a peut-être été écrasé.

Utilisation export PATH=/usr/bin:/bin:/usr/sbin:/sbin/usr/local/bin dans le terminal pour réécrire temporairement les paramètres PATH actuels. Cela devrait vous donner accès à sudo et nano que vous utiliserez ensuite nano .bash_profile. Pour moi, tout supprimer dans le fichier a fonctionné.

Nugenrules
la source
0

Pour moi, j’ai eu ce problème lorsque j’ai essayé d’ajouter un nouveau répertoire à PATH en utilisant une commande d’exportation incorrecte dans mon répertoire. ~/.bash_profile. Les deux exemples ci-dessous.

export PATH=/some/new/path:PATH (incorrect, note missing $)

contre

export PATH=/some/new/path:$PATH (correct)
rd2
la source