Wie kann ich meine Bash-Eingabeaufforderung ändern, um mein Arbeitsverzeichnis anzuzeigen?


33

Ich kann mein aktuelles Arbeitsverzeichnis so ausdrucken

myPrompt$ pwd
/Users/me/myDir

Ich möchte, dass meine Muschel so aussieht

/Users/me/myDir$ pwd
/Users/me/myDir

Ist das möglich? Wie kann ich es tun?


Unter OS X lautet der Name der Datei .bash_profile und nicht nur .profile. Das wird automatisch für Sie geladen.

Nicht ganz. OSX beginnt Login - Shells standardmäßig , und das bedeutet , dass bash sieht für ~/.bash_profile, ~/.bash_login, und ~/.profile, in dieser Reihenfolge, und liest und führt Befehle von der ersten, der existiert und lesbar ist . In jedem Fall ist dies wirklich ein Kommentar und keine Antwort, daher konvertiere ich ihn in einen.
Terdon

Antworten:


39

Sie können mit Escape - Sequenzen in Prompt Variablen .

Fügen Sie dies in Ihre ~/.bashrc:

PS1='\w\$ '

2
Vielen Dank. Ich habe diese Änderung vorgenommen. Jetzt sehe ich: Abrams-MacBook-Air-3: tmp abramhandler $ pwd; / Users / abramhandler / tmp Abrams-MacBook-Air-3: tmp abramhandler $ .... Ich möchte für meine Eingabeaufforderung nur den Teil anzeigen, der "tmp" sagt. Wie verstecke ich den Rest? Ich möchte die Teile "Abramhandler" und "Abram's-MacBook-Air-3"
verstecken

7
@ akh2103 \Wanstelle von verwenden \w. Unter dem Link, den Gilles Ihnen gegeben hat, finden Sie eine (kurze) Erklärung der Escape-Codes.
terdon

@terdon Ich sehe das gleiche mit \ W und \ w. Ich verwende Unix unter OSX.
Bernie2436

2
@ akh2103 Wenn Sie OSX ausführen und die Terminal-App verwenden, sollten Sie Änderungen an ~ / .profile und nicht an .bashrc vornehmen, da das Terminal standardmäßig eine Anmeldeshell ausführt. Sie sollten auch ~ / .profile als Quelle angeben oder ein neues Terminal öffnen, damit die Änderungen wirksam werden. Bitte ändern Sie auch , um weitere Informationen hinzuzufügen. Ich kann nicht verstehen, wonach Sie in Ihrem letzten Kommentar fragen.
Terdon

@terdon Wenn ich source ~ / .profile ausführe, wird der Pfad im aktuellen Terminal korrekt geändert. Aber wenn ich ein neues Terminal öffne, sehe ich immer noch "abram's mac book air" usw. Ich habe versucht, die Dateien .profile und .bashrc mit source ~ / .profile zu versehen, aber immer noch kein Glück. Irgendwelche Ideen?
Bernie2436

4

Hier ist ein Einzeiler für OSX. Es hängt die gewünschte Eingabeaufforderung an die Profildatei an und lädt dann das Profil neu.

echo "PS1='\w\$ '" >> ~/.bash_profile; source ~/.bash_profile

Auf El Capitan möchten Sie verwenden

echo "PS1='\w\$ '" >> ~/.profile; source ~/.profile

1

Aus irgendeinem Grund '\w\$'hat es bei mir nicht funktioniert, aber ich habe export PS1="$(pwd) \$"es getan: und es hat funktioniert.


4
Das wird nicht gut funktionieren, wenn Sie Verzeichnisse wechseln ...
Stephen Kitt

0

Sieht aus wie ein alter Thread, aber die folgenden Schritte haben unter OS X 10.9.5 funktioniert

  • setzen PS1='\w\$ 'in~/.profile
  • Wenn Sie Änderungen vorgenommen haben, ~/.bashrcentfernen Sie diese
  • Schließen Sie das Terminal mit cmd+q
  • Öffnen Sie das Terminal erneut

1
In meinem Fall ist der vollständige Pfad wirklich groß , so ich noch eine Flagge für die nächste Zeile wie PS1 hinzugefügt = ‚\ w \ n \ $‘
Sieger
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.