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


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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.