Pendant mon travail, j'ai constamment besoin d'ajouter des commandes d'alias à .bashrc, la plupart de ces commandes doivent être exécutées par d'autres utilisateurs. Y a-t-il un moyen d'ajouter des commandes d'alias à un .bashrc à partir d'une source externe ?
Réponses
Trop de publicités?De nombreux fichiers de configuration dans le répertoire personnel des utilisateurs remplacent ou ajoutent simplement à ceux dans le répertoire /etc
- par exemple, les paramètres pour GIMP dans le répertoire personnel des utilisateurs se trouvent dans ~/.gimp-2.*
, ce qui s'ajoute à la configuration système /etc/gimp/2.0
.
Donc pour ~/.bashrc
, vous pourriez éditer les fichiers de configuration système /etc/bash.bashrc
(pour les fonctions/alias) ou /etc/profile
(pour les paramètres d'environnement) - vous pouvez trouver la liste complète avec man bash
:
FICHIERS
/bin/bash
L'exécutable bash
/etc/profile
Le fichier d'initialisation système, exécuté pour les shells de connexion
/etc/bash.bash_logout
Le fichier de nettoyage du shell de connexion système, exécuté lorsqu'un shell de connexion se termine
~/.bash_profile
Le fichier d'initialisation personnel, exécuté pour les shells de connexion
~/.bashrc
Le fichier de démarrage individuel par shell interactif
~/.bash_logout
Le fichier de nettoyage de shell de connexion individuel, exécuté lorsqu'un shell de connexion se termine
~/.inputrc
Fichier d'initialisation individuel de readline
Cette mise en garde est donnée pour quelques systèmes Linux dans les fichiers:
# Ce n'est PAS une bonne idée de modifier ce fichier à moins que vous ne sachiez ce que vous
# faites. Il est beaucoup mieux 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 les mises à jour futures.
Donc vous pourriez éditer ces fichiers, vous voudrez peut-être les sauvegarder d'abord (cp /etc/bash.bashrc /etc/bash.bashrc-backup
par exemple), ou créer un script shell dans /etc/profile.d
- par exemple vous pouvez en créer un avec ces commandes (avec sudo/en tant que root):
touch /etc/profile.d/custom.sh
chmod +x /etc/profile.d/custom.sh
Ensuite l'ouvrir avec nano /etc/profile.d/custom.sh
#!/bin/sh
alias ls='ls -lah'
Et vérifiez s'il fonctionne en voyant s'il apparaît dans la sortie de alias
- Notez que vous devrez peut-être vous déconnecter/reconnecter ou redémarrer pour voir les changements (si vous ne voulez pas, exécuter source /etc/profile
après tout changement pourrait fonctionner)
Allez à /etc/bash.bashrc
vim /etc/bash.bashrc
et créez votre alias là-bas.
ajoutez votre alias à la dernière ligne.
alias abc="quelquechose"
Cet alias deviendra global pour tous les utilisateurs.
Mais pour des raisons de sécurité, nous ne vous le recommandons pas.
il y a un répertoire profile.d
qui contient des fichiers d'environnement utilisateur
allez à
cd /etc/profile.d/
vim aliases
et ajoutez vos alias ici.
sans affecter vos fichiers système. C'est sûr et la bonne façon de travailler avec vos fichiers d'environnement.
Il y a déjà une réponse acceptée ici, mais vous pourriez envisager d'utiliser une forme de modules d'environnement pour gérer la configuration globale des environnements utilisateur plutôt que de manipuler les fichiers dans /etc/profile.d, etc. Cela est particulièrement vrai si vous souhaitez gérer ce contrôle en un seul endroit à travers de nombreux shells. Lmod (en développement très actif), modules C/TCL (la solution classique) ou Cmod (léger).
Je ne sais pas si je le fais correctement, mais cela fonctionne pour moi de garder un répertoire /home/ComunAtodos (en majuscules et en espagnol pour montrer qu'il ne s'agit pas d'un répertoire natif de Linux) et d'y placer .bashrc, .nanorc et .bash_aliases. Ensuite, je fais référence à ceux-ci dans /etc/skel/.profile afin que les nouveaux utilisateurs les pointent, et n'ajoute des extras qu'aux utilisateurs spécifiques qui en ont besoin.
J'ai une question similaire
#!/bin/bashX='$( cat etc/passwd | cut -f1 -d: )' #All-users
For X in /export/home/*/.bashrc ; do
echo "$HOME/.profile'" >> $X
$X 2>/dev/null
done
source $X
exit 0
mais je suis confronté à une erreur et cela ne imprime pas ce que je veux
./
ja1.sh: ligne 3: erreur de syntaxe près du jeton inattendu `do'
./ja1.sh: ligne 3: `For X in /export/home/*/.bashrc ; do '
Le but principal de l'utilisation de ce script est d'imprimer $HOME/.profile sur le fichier .bashrc pour tous les utilisateurs en une seule fois en utilisant le script sur l'utilisateur root. J'ai essayé un script qui fonctionne uniquement pour un utilisateur
echo "$HOME/.profile" >> /export/home/test/.bashrc
- Réponses précédentes
- Plus de réponses