Ich habe einen Alias, den ich zu .bashrc hinzugefügt habe, und er wird erst im Terminal aktiviert, nachdem ich den Befehl 'bash' ausgeführt habe. Ich habe das Gefühl, ich sollte wissen, was hier passiert, aber ich weiß es nicht. :) :)
macos
mac
command-line
Chris Shattuck
quelle
quelle
Antworten:
Abhängig von der Version von OS X, die Sie verwenden, ist Ihre Standard-Shell möglicherweise nicht bash. Sie können dies überprüfen, indem Sie Folgendes eingeben (bevor Sie 'bash' ausführen):
Sie können Ihre Standard-Shell in bash ändern, damit Sie den Befehl nicht weiter ausführen müssen, indem Sie die folgenden Anweisungen befolgen:
/server/21044/how-do-i-change-a-users-default-shell-in-osx
Von @ chopper3
Um Ihre Frage weiter zu beantworten, wird .bashrc nur von der Bash-Shell verwendet. Wenn Sie möchten, können Sie herausfinden, welche Shell Sie verwenden, und den Alias zu .tcshrc oder .zshrc hinzufügen, anstatt alles zu ändern, um bash zu verwenden.
Weitere Informationen darüber, was eine Shell ist:
http://en.wikipedia.org/wiki/Shell_(computing)
und speziell schlagen:
http://en.wikipedia.org/wiki/Bash_(Unix_shell)
quelle
Von
man bash
:Hervorhebung von mir
Unter OS X werden in allen Terminalfenstern und Registerkarten Anmeldeshells ausgeführt. Dies entspricht der Ausführung
bash --login
anstelle vonbash
.~/.bashrc
wird daher ignoriert, es sei denn, explizitsource
d von z~/.bash_profile
.Erstellen
~/.bash_profile
Sie einfach, wenn es nicht vorhanden ist, und fügen Sie die folgende Zeile hinzu:Dann
.bashrc
wird auch für Anmeldesitzungen geladen.quelle
Der Alias funktioniert nach dem Ausführen nicht
bash
- er funktioniert während des Ausführensbash
.Grundsätzlich
~/.bashrc
handelt es sich um eine Datei, die Anweisungen enthält, die beibash
jedem Start ausgeführt werden. Die Standard-Shell für alle neueren Versionen von Mac OS X lautetbash
, sodass sie jedes Mal ausgeführt wird, wenn Sie ein Terminal öffnen.bash
weiß jedoch nicht auf magische Weise, dass die Konfigurationsdateien beim Bearbeiten erneut gelesen werden müssen, sodass der Alias beim Hinzufügen nicht sofort funktioniert~/.bashrc
. Was Sie tun , wenn Sie laufenbash
in Ihre bestehende Schale ist eine andere Instanz erstellenbash
(das wird die geänderte Konfigurationsdatei lesen, weil es beginnt nach oben). Beachten Sie, dass Ihre ursprüngliche Instanz vonbash
noch vorhanden ist und hinter derbash
manuell ausgeführten Instanz ausgeführt wird . Wenn Sie die Shell schließen (mit demexit
Befehl) kehren Sie zu Ihrer ursprünglichen Shell zurück (wenn Sie sie schließen, erhalten Sie vom Terminal die Meldung "Prozess abgeschlossen").Um auf Ihr Problem zurückzukommen: Ihr Alias funktioniert erst, wenn
bash
die Konfiguration erneut gelesen wurde. Sie können dies tun, indem Siebash
erneut starten (entweder indem Sie eine andere Shell in Ihrer vorhandenen Shell erstellen, indem Sie sie ausführenbash
, oder indem Sie Ihr Terminal schließen und öffnen) oder densource
Befehl verwenden, umbash
eine Datei erneut zu lesen. Also, nachdem Sie bearbeitet haben~/.bashrc
, funktioniert dersource ~/.bashrc
Alias, kein erneutes Startenbash
.quelle
.bashrc
wird nicht jedes Mal gelesen, wenn bash gestartet wird.