~/.profile, ~/.bashrc und ~/.bash_profile werden beim Start eines neuen Terminals nicht ausgeführt
-
21-12-2019 - |
Frage
Ich versuche, einen permanenten Alias für mein Terminal zu erstellen.Ich habe den Alias in meine zuvor leeren Dateien ~/.profile, ~/.bashrc und ~/.bash_profile eingefügt.Wenn ich ein neues Terminal starte, erkennt Bash den Alias nicht, aber wenn ich einen davon beziehe, erkennt er ihn.Warum werden diese nicht ausgeführt, wenn ich ein Terminal öffne?Ich verwende OSX.
Lösung
Bei der Verwendung müssen hier zwei Dinge passieren iTerm
damit das Laden von Dotfiles funktioniert.
Zuerst sollten Sie Folgendes zu Ihrem hinzufügen .bash_profile
[[ -s ~/.bashrc ]] && source ~/.bashrc
Zweitens müssen Sie dies sicherstellen iTerm
In den Einstellungen ist Ihr Terminal so eingestellt, dass eine Login-Shell gestartet wird.
Hoffe das hilft!
Andere Tipps
Verwenden des Standard-Mac-Terminals, was für mich funktionierte, war, dass ein Befehl hinzugefügt wurde, um auf dem Start zu starten, um meine .bash_profile auszuführen.
Voreinstellungen> Profil> Startup> Befehl hinzufügen 'Quelle ~ / .bash_profile'
Mac Terminal-Voreinstellungen Fenster Screenshot
könnte als ein bisschen hacky angesehen werden, aber es tut der Trick.
Wie bei hoher Sierra, sowohl terminal als auch Iterm, möchten Sie zuerst ~ / ..profile laden.Ich schlage vor, dass Sie eine Zeile in Ihre .profile legen, um Ihre Mac-Arbeit wie andere Unixe zu machen:
Quelle ~ / .bash_profile
Wenn Sie diese eine Datei bearbeiten, müssen Sie nicht durch die Menüs mehrerer Apps suchen, um das bizarre Verhalten von Apples in jedem zu überschreiben.
Hinzufügen source ~/.profile
zu meinem .bash_profile
hat bei mir funktioniert.
Warum werden die Initialisierungsdateien Ihrer Shell nicht geladen?
Wie bei den meisten Dingen hängt es von ™ ab.
Ich habe kürzlich das gleiche Phänomen erlebt und durch die folgende Übung ging, um sie aufzulösen:
Ich verwende Iterm. Iterm führt standardmäßig eine Login-Shell aus. Überprüfen Sie in Iterm-Voreinstellungen> Allgemein> Befehl> (*) Login-Shell Daher weiß ich, dass ~ / .bash_profile immer aufgerufen wird.
zu wissen, dass ich in meiner ~ / .bash_profile-Datei folgendes lege:
generasacodicetagpre.Beachten Sie, dass ich separate Dateien für .bashrc, .bash_exports usw. verwende, hält die Dinge getrennt und einfach.
Note Hinweis Auch das / Profil wird zuerst geladen, aber da ich noch nie diese systemweite Init-Datei verwendet habe, wusste ich, dass dies nicht mein Problem war. Für Details Check Out $ man bash
Ich habe also mit meiner Datei ~ / .bash_profile angefangen.
Ich habe festgestellt, dass, wenn ich canopy express , dass das Installationsprogramm den Inhalt meiner ~ / ersetzt hat .bash_profile-Datei mit dem folgenden Inhalt:
generasacodicetagpre.p.s. Baldachin ist eine ausgezeichnete, kostenlose Python-IDE, die ich dringend empfehle.
Glücklicherweise birufe ich meine ~ / .bash * -Dateien, also wiederherstellen, das war einfach und schnell mein Problem behoben.
Mein Rat könnte sein, die Reihenfolge der Anrufe auf Ihre Initialisierungsdateien zu verstehen, und beginnt mit dem ersten und arbeiten Sie durch sie, bis Sie das Problem finden.
oh, und Sie möchten möglicherweise überprüfen, welche Shell Sie verwenden (ich verwende Bash):
generasacodicetagpre.Ich vermute, Sie verwenden möglicherweise eine andere Shell, z. B. Bash, tcsh, sh, zsh usw.
Setzen source .bash_profile
in Ihre entsprechende „bashrc“-Datei wird das automatische Laden wiederhergestellt, d. h.
.login für tcsh, .bash_profile für bash, .zshrc für zsh