Quelles sont les valeurs par défaut de $ PATH?

13

Sous Mac OS X, les $PATHvaleurs par défaut sont:

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

Quelles sont les valeurs par défaut sous Linux?

sonnuforevis
la source
le chemin par défaut est défini dans config-top.h
bac0n

Réponses:

18

Sur une installation de bureau Ubuntu par défaut $PATHest:

$ echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

Mais dans un environnement chroot minimal créé par debootstrap, $PATHne contient que:

# echo $PATH
/usr/sbin:/usr/bin:/sbin:/bin
andrewsomething
la source
4

Les valeurs de chemin d'environnement sont stockées dans le fichier .bashrc dans ubuntu.

La variable PATH à l'échelle du système est définie dans /etc/environment

Avinash Raj
la source
3

Il y a un chemin construit dans les coquilles qui est

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Ensuite, le chemin par défaut pour Ubuntu est:

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Braiam
la source
3

Il existe un moyen simple de découvrir:

printenv

Ou, plus directement:

echo $PATH

Mais, si vous cherchez juste des informations rapides, Ubuntu définit généralement le chemin vers:

/ usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / bin / X11: / usr / jeux:

Pour des questions comme celle-ci, vous pouvez généralement trouver la réponse en lisant la Bible .

Brian Grogan Jr.
la source
2

Selon le Linux que vous utilisez, cela peut être différent. Si vous avez déjà une connexion à Linux, tapez simplement 'env' pour voir vos variables d'environnement.

Si vous voulez savoir comment la variable env PATH est construite, jetez un œil à .bashrc et .bash_profile dans votre répertoire personnel. Si vous êtes plus curieux, vous pouvez également consulter / etc / profile, /etc/profile.d/* (s'il existe) et le manuel de bash (man bash).

Jason
la source
2

bashprendra PATHune valeur par défaut codée en dur si elle n'est pas définie dans l'environnement:

$ env -i bash -c 'echo $PATH'
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:.

Nous pouvons vérifier que cette valeur est bien codée en dur, et non lue depuis l'environnement ou un fichier, en utilisant l' stringsutilitaire:

$ strings /bin/bash | grep /usr/sbin
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:.

Cependant, j'obtiens un résultat différent sur ma machine Arch Linux:

$ env -i bash -c 'echo $PATH'
/usr/local/sbin:/usr/local/bin:/usr/bin

Il semble donc que cette valeur par défaut soit choisie au moment de la construction du bashbinaire, ce qui dépend de la distribution Linux utilisée.

Vladimir Panteleev
la source
C'est la seule réponse qui mentionne le shell et les distributions. Je suis tombé sur la question parce que je trie les problèmes de CHEMIN dans les conteneurs Ubuntu. Et le "chemin par défaut" dépendra du shell (bash, sh, etc.) et s'il est chargé interactivement ou non, et s'il s'agit d'un shell de connexion. Ce n'est pas une réponse simple. Félicitations pour avoir mentionné les chaînes codées en dur dans le binaire.
init_js
1

Pour voir le chemin par défaut, utilisez ce que les autres ont mentionné dans les réponses:

echo $PATH

Pour modifier l'utilisation:

gedit ~/.bashrc

Cette PATHvariable par défaut est définie sous /etc/enviroment.

Sukupa91
la source