.bashrc wird nicht ausgeführt

10

Ich habe einen Benutzer (nicht root), der eine ~/.bashrcDatei mit einigen Aliasnamen enthält.

Es sieht jedoch nicht so aus, als würde die Datei zum Zeitpunkt der Anmeldung ausgeführt. Wenn ich das tue source ~/.bashrc, macht es das, was es soll. Aber soll nicht ~/.bashrcjedes Mal ausgeführt werden, wenn ich mich anmelde?

Die Berechtigungen sind auf 644 festgelegt (genau wie bei meinem Root .bashrc, was gut funktioniert). Die Datei gehört dem betreffenden Benutzer.

NullUser
quelle
Dies ist einer der vielen Ärger, die ksh-Benutzer beim Umgang mit Bash haben. ksh gibt automatisch .kshrc in einer Login-Shell an, aber bash gibt .bashrc nicht im selben Kontext ab. Sie müssen es explizit tun.
Jlliagre

Antworten:

18

~/.bashrcist für nicht angemeldete interaktive Shells. Login schält Quelle ~/.bash_profile(oder ~/.bash_loginoder ~/.profile). Wenn Sie Ihre ~/.bashrcdort beschaffen, können Sie gemeinsame Einstellungen vornehmen.

Ein Programmierer
quelle
1
Oder Quelle .bash_profilevon.bashrc , was sinnvoll sein kann, wenn Sie hauptsächlich interaktive Shells verwenden.
Janmoesen
Ich hatte das Bedürfnis, Dinge für Login-Shells zu tun, die nicht für interaktive Nicht-Login-Shells gemacht wurden, niemals umgekehrt.
AProgrammer
Daher " könnte Sinn machen": Ich weiß, dass es rückwärts wirken kann. :-)
Janmoesen
Ist es möglich, ein Redhat-System so zu konfigurieren, dass .bashrc ignoriert wird, wenn nicht interaktive Jobs ausgeführt werden? Ich verwende einen Cluster, der tatsächlich das .bash_profile zu verwenden scheint (meins lädt dann das .bashrc). Ohne das .bash_profile können die Jobs das Material, das ich dem PATH hinzugefügt habe, nicht in der RC-Datei finden
user632657