web-dev-qa-db-fra.com

Exporter le chemin dans .profile sur mac

Je ne peux pas croire qu'il n'y ait pas de tutoriels à ce sujet après la recherche sur Google. Quelqu'un peut-il m'indiquer une direction ou expliquer ce que ces lignes et variables signifient dans .profile sur mac? Comment peut-on les configurer?

export PATH=/opt/local/bin:/opt/local/sbin:$PATH
# Finished adapting your PATH environment variable for use with MacPorts.
#export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"
export PATH=$PATH:/usr/local/mysql/bin
#export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"
#export PATH=/Applications/MAMP/Library/bin:/Applications/MAMP/bin/php5/bin:/Applications/MAMP/htdocs/cake/cake/console:/opt/local/bin:/opt/local/sbin:$PATH
export PATH=/Android-sdks/platform-tools:~/Android-sdks/tools:$PATH
export PATH=/Users/Android-sdks/platform-tools:/Users/Android-sdks/tools:$PATH
16
tipsywacky

Toute ligne commençant par # est un commentaire. PATH= définit la valeur de la variable PATH, $ PATH se développe à la valeur actuelle et export au début rend la valeur disponible pour les programmes que vous exécutez à partir du terminal.

Supposons que la valeur initiale de PATH soit /usr/bin:/bin.

export PATH=/opt/local/bin:/opt/local/sbin:$PATH

Remplacer $PATH avec la valeur précédente de $ PATH. Donc, ce qui précède définit PATH sur

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

Avancer,

export PATH=$PATH:/usr/local/mysql/bin

Encore une fois, remplacez $ PATH par la valeur précédente:

/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/local/mysql/bin

Après

export PATH=/Android-sdks/platform-tools:~/Android-sdks/tools:$PATH

on a

/Android-sdks/platform-tools:~/Android-sdks/tools:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/local/mysql/bin

(Le ~ est un jeton spécial qui sera remplacé par le chemin d'accès à votre répertoire personnel, mais vous devriez obtenir l'image.)

Et enfin, après

export PATH=/Users/Android-sdks/platform-tools:/Users/Android-sdks/tools:$PATH

on a

/Users/Android-sdks/platform-tools:/Users/Android-sdks/tools:/Android-sdks/platform-tools:~/Android-sdks/tools:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/local/mysql/bin

PATH est utilisé pour rechercher les commandes que vous entrez sur la ligne de commande. Donc, si vous tapez foo, le Shell recherchera les noms ci-dessous, dans l'ordre spécifié:

/Users/Android-sdks/platform-tools/foo
/Users/Android-sdks/tools/foo
/Android-sdks/platform-tools/foo
~/Android-sdks/tools/foo
/opt/local/bin/foo
/opt/local/sbin/foo
/usr/bin/foo
/bin/foo
/usr/local/mysql/bin/foo

Pour voir la valeur actuelle de PATH, exécutez

echo $PATH

Devez-vous ajouter de nouveaux répertoires au début de PATH, ou à la fin? Ce n'est pas toujours important, mais parfois c'est le cas. Cela dépend des emplacements que vous souhaitez que le système vérifie en premier.

Vous devez ajouter au début si le but est de rechercher d'autres répertoires avant de chercher dans les répertoires par défaut. Par exemple, git est un utilitaire utilisé pour gérer le code source. Si je voulais installer une version plus récente de git dans ~/git et utiliser that par défaut, je ferais:

export PATH=~/git/bin:$PATH

Cela signifie que ~/git/bin/git remplacerait/opt/local/bin/git.

D'un autre côté, je préférerais peut-être que l'administrateur installe git à l'échelle du système. Si je veux utiliser ma copie locale niquement jusqu'à ce que l'administrateur la rende disponible pour tout le monde, alors cela a plus de sens:

export PATH=$PATH:~/git/bin

Dans ce cas ~/git/bin/git ne serait utilisé que si /opt/local/bin/git n'existait pas déjà depuis /opt/local/bin est plus tôt dans le chemin.

De nombreuses commandes n'existeront pas à plus d'un endroit. Par exemple, vous pourriez écrire my-backup-script et le mettre sur une Apple Time Capsule à /Volumes/Capsule/scripts. Il est peu probable qu'il y ait une commande appelée my-backup-script dans tout autre endroit en conflit. Ainsi, l'une des commandes suivantes vous permet de taper my-backup-script et exécutez le bon script:

export PATH=/Volumes/Capsule/scripts:$PATH

ou

export PATH=$PATH:/Volumes/Capsule/scripts

Est-ce mieux? Mon conseil serait de faire ce dernier. N'oubliez pas que le système devra rechercher les répertoires dans $PATH, dans l'ordre, pour chaque commande qu'il doit trouver. La plupart des commandes seront sur le système local, il est donc plus judicieux de mettre un stockage réseau plus lent à la fin du chemin.

43
GargantuChet

Depuis la page man , export définit simplement une variable d'environnement.

La variable d'environnement PATH indique à votre Mac où chercher les commandes que vous tapez sur la ligne de commande, dans l'ordre où elles doivent apparaître. Il s'agit d'une liste de chemins, délimités par deux points.

La valeur $PATH est la valeur actuelle de la variable d'environnement PATH.

Ainsi, une ligne comme

export PATH=/foo:$PATH

précède /foo au PATH

et

export PATH=$PATH:/foo

ajoute /foo au PATH

7
Dancrumb

Exécutez man

Et puis répondez à la question par export

Vous pouvez voir la valeur PATH actuelle et observer qu'il y a plus d'un chemin d'accès présent.

(Le mien était /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin)

Observe ceci : représente la fin d'un seul chemin.

Vous pouvez récupérer cela en utilisant $PATH

Maintenant, lorsque vous souhaitez ajouter un chemin supplémentaire à cette liste, vous devez ajouter le chemin actuel au nouveau chemin comme /newPath:$PATH ou $PATH:/newPath.

Et enfin, pour l'enregistrer, vous devez utiliser export PATH=$PATH:/newPath.

Remarque: Cette réponse s'adresse aux développeurs novices.

1
Nikhil Manapure