64 votes

Comment puis-je prédéfinir des alias pour tous les utilisateurs ?

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.

80voto

0x2b3bfa0 Points 7873

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 fantaisiste) dans /etc/profile.d :

    gksu gedit /etc/profile.d/00-aliases.sh
  2. Placez vos alias dans ce fichier. Exemple :

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

  4. Redémarrez toutes les terminales ouvertes pour appliquer les changements.

  5. 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é.

23voto

tinlyx Points 2767

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.

9voto

jtpereyda Points 1875

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.

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

1voto

CentoS Points 11

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X