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


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

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


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

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 .


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).


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.


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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.