.bashrc n'est pas exécuté

10

J'ai un utilisateur (non root) qui a un ~/.bashrcfichier avec quelques alias.

Mais il ne semble pas que le fichier soit exécuté au moment de la connexion. Si je le fais, source ~/.bashrcil fait ce qu'il est censé faire. Mais n'est-il pas ~/.bashrccensé être exécuté à chaque fois que je me connecte?

Les autorisations sont définies sur 644 (identiques à celles de ma racine .bashrc, ce qui fonctionne bien). Le fichier appartient à l'utilisateur en question.

NullUser
la source
C'est l'un des nombreux désagréments rencontrés par les utilisateurs de ksh lorsqu'ils traitent avec bash. ksh source automatiquement .kshrc dans un shell de connexion mais bash ne source pas .bashrc dans le même contexte. Vous devez le faire explicitement.
jlliagre

Réponses:

18

~/.bashrcest pour les shells interactifs sans connexion . Connectez-vous à la source des shells ~/.bash_profile(ou ~/.bash_loginou ~/.profile). Votre sourcing vous ~/.bashrcpermettra d'avoir des paramètres communs.

AProgrammer
la source
1
Ou source à .bash_profilepartir de.bashrc , ce qui peut avoir un sens lorsque vous utilisez principalement des shells interactifs.
janmoesen
J'ai ressenti le besoin de faire des choses pour les shells de connexion qui n'étaient pas faites pour un shell non connecté interactif, jamais l'inverse.
AProgrammer
D'où « pourrait avoir du sens»: je sais que cela peut apparaître comme à l'envers. :-)
janmoesen
Est-il possible de configurer un système redhat pour ignorer .bashrc lors de l'exécution de travaux non interactifs? J'utilise un cluster qui semble réellement utiliser le .bash_profile (le mien charge ensuite le .bashrc). Sans le .bash_profile, les travaux ne peuvent pas trouver les éléments que j'ai ajoutés au PATH dans le fichier rc
user632657