Antworten:
Bash gibt entweder .bash_profile oder .bashrc aus, je nachdem, wie es aufgerufen wird. Wenn es sich um eine Anmeldeshell handelt, sucht Bash in dieser Reihenfolge nach ~ / .bash_profile, ~ / .bash_login oder ~ / .profile und gibt die erste Quelle an, die er findet (und nur diese). Wenn es keine Anmeldeshell ist, aber interaktiv (wie die meisten Terminalsitzungen), gibt Bash ~ / .bashrc aus.
Wahrscheinlich sucht iTerm nach ~ / .bashrc. Wenn es so konfiguriert ist, dass es als Anmeldeshell gestartet wird, sucht es nach ~ / .bash_profile. Es ist mit ziemlicher Sicherheit ein Fehler in der Konfigurationsdatei, anstatt dass die Shell ihn nicht bezieht.
Ich würde am Anfang jeder Datei eine Zeile einfügen. Oben in ~ / .bash_profile:
export BASH_CONF="bash_profile"
Und oben in ~ / .bashrc:
export BASH_CONF="bashrc"
Dann öffne ein neues iTerm und tippe
$ echo $BASH_CONF
Das sollte bestätigen, dass die Datei bezogen wird, und Sie können die Syntax der Datei überprüfen.
In iTerm2 hat keine dieser Lösungen für mich funktioniert. Ich konnte meine .bashrc-Datei ordnungsgemäß lesen, indem ich den Befehl hinzufügte
source ~/.bashrc
zum Feld Text beim Start senden: in Einstellungen / Allgemein für mein iTerm-Profil.
~/.bashrc
. Bearbeitet es.
Ich frage mich nur, ob du Bash wirklich benutzt? echo $SHELL
Möglicherweise können Sie verwenden , es ist durchaus möglich, dass Sie zsh verwenden . Haben Sie on-my-zh installiert ?
Tatsächlich stoße ich auf dasselbe Problem wie Sie. Ich behebe es, indem ich stattdessen ~ / .zshrc entweder ~ / .bash_profile für die Anmeldeshell oder ~ / .bashrc für die Nicht-Anmeldeshell konfiguriere .
Vielleicht kannst du es versuchen
Auf meinem 10.6 Rechner ~/.profile
ist Sourcing. Also sollte ein source .bashrc
Eintrag in ~/.profile
den Job erledigen.
Einfache Lösung.
1. Öffnen Sie Ihre ~/.zshrc
Datei
2. Fügen Sie am Ende der Datei die folgende Zeile hinzu.
source ~/.bash_profile
Fügen Sie Ihre Alias-Definitionen in die Bash-Profildatei ein. Sie müssen die Datei erstellen, sie wird jedoch automatisch bezogen. Ich erstelle eine separate Datei mit dem Namen alias.configuration und füge sie in .bash_profile ein, nur weil ich einen anderen Benutzer definiert habe und denselben Alias festlegen möchte.
.bashrc
noch .bash_profile
beschafft.
Hinzufügen
set -x
zum anfang von /etc/profile
. Dies gibt Ihnen ein Zeile- für -Zeile - Konto von allem, was ausgeführt wird , wenn bash
startet, einschließlich Dateien aus Quellen innerhalb /etc/profile
, ~/.bash_profile
etc. Es ist ein bisschen entmutigend , wenn Sie nicht verstehen , bash
Scripting sehr gut, aber man kann in der Lage sein zu sehen , ob In einer Startdatei ist ein Fehler aufgetreten, und die Ausgabe ist hilfreich bash
, damit Sie Ihr Problem leichter finden können.
Sie können die set -x
Leitung entfernen , wenn Sie mit der Fehlerbehebung fertig sind.
Auf 10.10 und iTerm2 2.0 angepasstes Profil
Ich kombinierte paar Lösungen, um es wie erwartet zu funktionieren.
.bash_profile
quelle und laufe auf zsh.
Preferences -> Profiles -> General
.
Wählen Sie Befehl unter Befehl.
Und in das Textfeld hinzufügen /bin/bash --login
.
Dann in .bash_profile Zeile hinzufügen
/bin/zsh --login
Das ist es.
bash
immer gelaufen zsh
sind, ist das nicht das, was irgendjemand erwartet.
source ~/.bash_profile
manuell laufen muss. @Scott Nachdem ich die oben genannten Dinge getan habe, habe ich zsh in der erforderlichen Weise.
zsh
vielleicht das ist, was Sie wünschen , aber es wird von dieser Frage, die mit [bash] markiert ist und nichts darüber sagt, nicht verlangt oder verlangt zsh
. (2) Wenn Sie in Ihrem .bashrc
und / oder Aliase und Shell-Funktionen definieren und Variablen setzen (ohne sie zu exportieren) .bash_profile
, stehen sie Ihnen in Ihrer zsh
Shell zur Verfügung?
~/.bash_profile
, zuerst von der Bash aufgerufen zu werden, was bedeutet, dass die Anweisungen, die Sie haben, kurzgeschlossen werden~/.bashrc
. Dieses Problem kann unerwartet auftreten, wenn ein betrügerisches Programm Ihrer~/.bash_profile
zuvor nicht vorhandenen Datei Anweisungen hinzufügt und Sie alle Ihre bash-Befehle eingegeben haben~/.bashrc
. Die Lösung besteht darin, entweder Ihr ~ / .bash_profile zu löschen oder ~ / .bash_profile als Quelle für Ihr ~ / .bashrc zu verwenden. Dies kann durchgeführt werden, indem der Befehl hinzugefügt wird:source ~/.bashrc
am Ende von~/.bash_profile
und das Terminal neu gestartet wird.