J'ai Ubuntu 14.04.2. Je veux faire en sorte que tous les utilisateurs aient automatiquement un ensemble spécifique d'alias. J'ai mes alias définis dans mon .bashrc personnel, mais je ne veux pas avoir à les copier manuellement dans les autres utilisateurs. Idéalement, cela devrait les configurer automatiquement pour les utilisateurs nouvellement créés également.
Réponses
Trop de publicités?Vous pouvez créer un script dans /etc/profile.d/
pour créer des alias pour tous les utilisateurs :
-
Créez un fichier appelé
00-aliases.sh
(ou tout autre nom fantaisiste) dans/etc/profile.d
:gksu gedit /etc/profile.d/00-aliases.sh
-
Placez vos alias dans ce fichier. Exemple :
alias foo='bar --baz' alias baz='foo --bar'
-
Enregistrez le fichier
-
Redémarrez toutes les terminales ouvertes pour appliquer les changements.
-
Profitez-en!
Quelques notes :
-
/etc/profile
est un fichier global qui est exécuté avant~/.profile
. -
/etc/profile.d/
est un dossier qui contient des scripts appelés par/etc/profile
-
Lorsque
/etc/profile
est appelé (lorsque vous démarrez/connectez un shell), il cherche tous les fichiers se terminant par.sh
dans/etc/profile.d/
et les exécute avec l'une de ces commandes :source /etc/profile.d/myfile.sh
. /etc/profile.d/myfile.sh
-
Je mets
00-
devant le nom du fichier pour le faire exécuter avant le reste des scripts. -
Vous pouvez également ajouter vos alias dans
/etc/profile
, mais ce n'est pas recommandé.
Comme indiqué ici, il est probablement préférable d'ajouter des alias globaux dans /etc/bash.bashrc
:
alias foo='bar --baz'
alias baz='foo --bar'
, car les scripts dans /etc/profile.d
peuvent être ignorés pour certains shells (non interactifs). Il m'a fallu des heures pour comprendre pourquoi /etc/profile.d
ne fonctionnait pas.
Voir par exemple https://askubuntu.com/a/606882/ et Comprendre .bashrc et .bash_profile pour la distinction entre les shells.
Un alias ne fonctionnera que dans un shell. Si vous voulez quelque chose aussi largement accessible qu'un exécutable, vous pouvez ajouter un petit script de raccourci à /usr/bin
, par exemple :
#!/bin/sh
ls -l "$@"
Le "$@"
transmet tous les arguments à l'exécutable. Le nom du script sera le nom de l'exécutable.
/etc/bashrc
- Fonctions et alias de niveau système
- Les configurations d'environnement vont dans /etc/profile
Il n'est PAS recommandé de modifier ce fichier à moins que vous ne sachiez exactement ce que vous faites. Il est bien plus judicieux de créer un script shell custom.sh dans /etc/profile.d/ pour apporter des modifications personnalisées à votre environnement, car cela évitera la nécessité de fusionner lors des futures mises à jour.