J'ai Ubuntu 14.04.2. Je souhaite que tous les utilisateurs aient automatiquement un ensemble d'alias spécifique. Mes alias sont définis dans mon .bashrc personnel, mais je ne veux pas avoir à les copier manuellement dans les autres utilisateurs. Idéalement, il devrait également les définir automatiquement pour les utilisateurs nouvellement créé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 de fantaisie) dans /etc/profile.d
:
gksu gedit /etc/profile.d/00-aliases.sh
Mettez vous alias dans ce fichier. Exemple:
alias foo='bar --baz'
alias baz='foo --bar'
Sauvegarder le fichier
Quelques notes:
/etc/profile
est un fichier global qui s'exécute avant ~/.profile
./etc/profile.d/
est un dossier contenant des scripts appelés par /etc/profile
Lorsque /etc/profile
est appelé (lorsque vous démarrez/connectez-vous à un shell), il recherche tous les fichiers se terminant par .sh
dans /etc/profile.d/
et les exécute avec l'une des commandes suivantes:
source /etc/profile.d/myfile.sh
. /etc/profile.d/myfile.sh
00-
avant le nom du fichier pour le faire exécuter avant le reste des scripts./etc/profile
, mais cela n'est pas recommandé.Un alias ne fonctionnera que dans un shell. Si vous voulez quelque chose d'aussi accessible qu'un exécutable, vous pouvez ajouter un petit script de raccourci à /usr/bin
, par exemple:
#!/bin/sh
ls -l "$@"
"$@"
transmet tous les arguments à l'exécutable. Le nom du script sera le nom de l'exécutable.
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 de /etc/profile.d
peuvent être ignorés pour certains shells (non connectés). Il m'a fallu des heures pour comprendre pourquoi /etc/profile.d
ne fonctionnait pas.
Voir par exemple https://askubuntu.com/a/606882/ et comprenant .bashrc et .bash_profile pour la distinction entre les shells.