Wie kann ich meine Shell immer in einem bestimmten Verzeichnis starten lassen, das nicht mein Ausgangsverzeichnis ist?

20

Ich habe versucht zu setzen

cd /Users/my_name/my_directory/structure

sowohl in .bashrcund .bash_loginaber auch Werke, das heißt , wenn ich ein neues Terminal - Fenster öffne ich in meinem Haus bin (/ Users / my_name /) Verzeichnis.

Keine Fehlermeldungen, nur nicht wie beim Starten eines neuen Terminalfensters erhofft ins Verzeichnis cd.

Michael Durrant
quelle

Antworten:

5

Wie Gerry schon erwähnte, .bashrcwird von Login-Shells nicht gelesen. Neue Registerkarten sind standardmäßig Anmeldeshells in Terminal und iTerm 2. .bash_loginwird nur gelesen, wenn es keine gibt .bash_profile.

Sie können auch einen cdBefehl hinzufügen .bash_profile.

Lri
quelle
38

Wenn Sie iTerm2 noch nicht verwenden, empfehlen wir Ihnen, diese kostenlose Software als Ersatz für Terminal.app herunterzuladen.

Neben vielen anderen zusätzlichen Funktionen können Sie in den iTerm-Einstellungen das Standardarbeitsverzeichnis für neue Shells konfigurieren. Sie finden diese Einstellungen unter Profile - Allgemein.

iTerm Default Working Directory

Der Vorteil hierbei ist, dass Sie andere Verhaltensweisen für das Öffnen eines neuen Fensters festlegen können als für das Öffnen einer neuen Registerkarte oder das Erstellen eines neuen geteilten Bereichs. Ich persönlich mag es, im aktuellen Arbeitsverzeichnis zu bleiben, wenn ich zum Beispiel einen geteilten Bereich hinzufüge.

Sie könnten es auch in Ihrem Startskript tun (obwohl ich die iTerm-Lösung als sauberer oder zumindest flexibler empfinde), aber dann rate ich Ihnen, ~/.bash_profilestattdessen zu verwenden .

~/.bashrcwird beim Öffnen eines neuen Shell-Fensters nicht automatisch bezogen und ~/.bash_loginwird nur bezogen, wenn keine ~/.bash_profilevorhanden ist.

Gerry
quelle
1
Ich beziehe meine .bashrc-Datei immer aus meinem .bash_profile, damit ich mir nicht merken muss, welche von wo aufgerufen wird.
CajunLuke
@CajunLuke Ich mache etwas ganz Ähnliches: github.com/gerryvdm/dotfiles
Gerry
Wenn das Ändern des Felds "Verzeichnis" in Working Directory keine Auswirkung hat, müssen Sie Command wahrscheinlich von "Command" auf "Login-Shell" ( Quelle ) ändern .
Duozmo