web-dev-qa-db-fra.com

Comment puis-je prérégler des alias pour tous les utilisateurs?

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.

35
Brian Sizemore

Vous pouvez créer un script dans /etc/profile.d/ pour créer des alias pour tous les utilisateurs:

  1. 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
    
  2. Mettez vous alias dans ce fichier. Exemple:

    alias foo='bar --baz'
    alias baz='foo --bar'
    
  3. Sauvegarder le fichier

  4. Redémarrez les terminaux ouverts pour appliquer les modifications.
  5. Prendre plaisir!

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
    
  • Je mets 00- avant le nom du fichier pour le faire exécuter avant le reste des scripts.
  • Vous pouvez également ajouter vos alias dans /etc/profile, mais cela n'est pas recommandé.
48
Helio

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.

Source: https://unix.stackexchange.com/a/52509/15954

4
jtpereyda

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.

3
tinlyx