Ich verwende iTerm unter Mac OS X 10.6. Wenn ich iTerm öffne, scheint es, dass weder eine Quelle .bashrc
noch eine Quelle vorhanden .bash_profile
ist. Ich kann sagen, weil die in definierten Aliase .bashrc
nicht gesetzt sind. Wie repariert man?
62
~/.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.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:
Und oben in ~ / .bashrc:
Dann öffne ein neues iTerm und tippe
Das sollte bestätigen, dass die Datei bezogen wird, und Sie können die Syntax der Datei überprüfen.
quelle
In iTerm2 hat keine dieser Lösungen für mich funktioniert. Ich konnte meine .bashrc-Datei ordnungsgemäß lesen, indem ich den Befehl hinzufügte
zum Feld Text beim Start senden: in Einstellungen / Allgemein für mein iTerm-Profil.
quelle
~/.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
quelle
Auf meinem 10.6 Rechner
~/.profile
ist Sourcing. Also sollte einsource .bashrc
Eintrag in~/.profile
den Job erledigen.quelle
Einfache Lösung.
1. Öffnen Sie Ihre
~/.zshrc
Datei2. Fügen Sie am Ende der Datei die folgende Zeile hinzu.
quelle
Auf meinem 10.9-Rechner wurde ~ / .bash_profile bezogen. Daher sollte ein .bashrc-Quelleneintrag in ~ / .bash_profile die Aufgabe übernehmen.
quelle
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.
quelle
.bashrc
noch.bash_profile
beschafft.Hinzufügen
zum anfang von
/etc/profile
. Dies gibt Ihnen ein Zeile- für -Zeile - Konto von allem, was ausgeführt wird , wennbash
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 hilfreichbash
, damit Sie Ihr Problem leichter finden können.Sie können die
set -x
Leitung entfernen , wenn Sie mit der Fehlerbehebung fertig sind.quelle
Auf 10.10 und iTerm2 2.0 angepasstes Profil
quelle
Stellen Sie in iTerm2 sicher, dass Sie "login shell" anstelle eines benutzerdefinierten Befehls einschließlich "login" verwenden, der nicht das tut, was Sie erwarten.
quelle
Nehmen Sie die folgende Änderung vor und iTerm wird bashrc beziehen
iTerm> Einstellungen> Allgemein> [x] Befehl: / bin / bash
quelle
Das Problem kann behoben werden, indem die folgende Zeile in / etc / bashrc eingefügt wird
quelle
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.
quelle
bash
immer gelaufenzsh
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 verlangtzsh
. (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 Ihrerzsh
Shell zur Verfügung?