Qu'est-ce que $PATH
?
Comment puis-je avoir des commandes/programmes qui ne sont disponibles que pour moi?
J'ai déjà vu ce chemin, ~/bin
, mais à quoi sert-il et comment l'utiliser?
$ PATH est une variable d'environnement utilisée pour rechercher des commandes. Le ~ est votre répertoire personnel, donc ~/bin sera/home/utilisateur/bin; c'est un répertoire normal.
Lorsque vous exécutez "ls" dans un shell, par exemple, vous exécutez le programme/bin/ls; l'emplacement exact peut varier en fonction de la configuration de votre système. Cela se produit parce que/bin est dans votre $ PATH.
Pour voir le chemin et trouver où se trouve une commande particulière:
$ echo $PATH
/home/user/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:...
$ which ls # searches $PATH for an executable named "ls"
/bin/ls
$ ls # runs /bin/ls
bin desktop documents downloads examples.desktop music pictures ...
$ /bin/ls # can also run directly
bin desktop documents downloads examples.desktop music pictures ...
Pour avoir votre propre répertoire bin privé, il vous suffit de l'ajouter au chemin. Faites ceci en éditant ~/.profile (un fichier caché) pour inclure les lignes ci-dessous. Si les lignes sont commentées, il vous suffit de les décommenter; s'ils sont déjà là, vous êtes tous ensemble!
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ]; then
PATH="$HOME/bin:$PATH"
fi
Vous devez maintenant créer votre répertoire ~/bin et, comme .profile est exécuté lors de la connexion et n’ajoute que ~/bin s’il existe à ce moment-là, vous devez vous reconnecter pour voir le PATH mis à jour.
Testons-le:
$ ln -s $(which ls) ~/bin/my-ls # symlink
$ which my-ls
/home/user/bin/my-ls
$ my-ls -l ~/bin/my-ls
lrwxrwxrwx 1 user user 7 2010-10-27 18:56 my-ls -> /bin/ls
$ my-ls # lookup through $PATH
bin desktop documents downloads examples.desktop music pictures ...
$ ~/bin/my-ls # doesn't use $PATH to lookup
bin desktop documents downloads examples.desktop music pictures ...
Concernant ~/bin
et les commandes/programmes disponibles uniquement pour votre utilisateur
Les versions récentes d'Ubuntu incluent le répertoire ~/bin
dans votre $PATH
, mais uniquement si le répertoire ~/bin
existe.
Si ça n'existe pas:
Assurez-vous que votre ~/.profile
contient la strophe suivante (le ~/.profile
par défaut le contient déjà):
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
Créez le répertoire ~/bin
:
mkdir -p ~/bin
Redémarrez votre ordinateur ou forcez bash à relire ~/.profile
:
exec -l bash