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

Ich kann mein aktuelles Arbeitsverzeichnis wie folgt drucken:

myPrompt$ pwd /Users/me/myDir 

Ich möchte meine Shell so aussehen

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

Ist das möglich? Wie kann ich das machen?

Kommentare

  • Unter OS X lautet der Name der Datei .bash_profile und nicht nur .profile. Das wird für Sie automatisch geladen.
  • Nicht ganz. OSX startet standardmäßig Login-Shells und das bedeutet, dass bash nach ~/.bash_profile, ~/.bash_login und ~/.profile in dieser Reihenfolge und liest und führt Befehle von dem ersten aus, der vorhanden und lesbar ist. In jedem Fall ist dies wirklich ein Kommentar und keine Antwort, daher konvertiere ich ihn in einen.

Antwort

Sie können Escape-Sequenzen in Eingabeaufforderungsvariablen verwenden.

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

PS1="\w\$ " 

Kommentare

    anke. 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 nur den Teil anzeigen, der “ tmp für meine Eingabeaufforderung. Wie verstecke ich den Rest? Ich möchte den “ abramhandler “ und “ Abram s-MacBook-Air-3 “ Teile

  • @ akh2103 Verwenden Sie \W anstelle von \w. Unter dem Link, den Gilles Ihnen gegeben hat, finden Sie eine (kurze) Erklärung der Fluchtcodes.
  • @terdon Ich sehe dasselbe mit \ W und \ w. Ich verwende Unix unter OSX.
  • @ akh2103 Wenn Sie OSX ausführen und die Terminal-App verwenden, sollten Sie Änderungen an ~ / .profile und nicht .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 bearbeiten , um weitere Informationen hinzuzufügen. ‚ kann nicht verstehen, wonach Sie in Ihrem letzten Kommentar fragen .
  • @terdon Wenn ich source ~ / .profile ausführe, ändert sich der Pfad im aktuellen Terminal ordnungsgemäß. Aber wenn ich ein neues Terminal öffne, sehe ich immer noch “ abram ‚ s Macbook Air “ etc. Ich habe versucht, Source ~ / .profile sowohl zu den .profile- als auch zu den .bashrc-Dateien hinzuzufügen, aber immer noch kein Glück. Irgendwelche Ideen?

Antwort

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

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

Auf El Capitan möchten Sie

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

Antwort

Aus irgendeinem Grund hat "\w\$" bei mir nicht funktioniert, sondern bei mir hat: export PS1="$(pwd) \$" und es hat funktioniert.

Kommentare

  • Das funktioniert nicht so gut, wenn Sie Verzeichnisse ändern …

Antwort

Sieht aus wie ein alter Thread, aber die folgenden Schritte haben unter Betriebssystem für mich funktioniert X 10.9.5

  • Geben Sie PS1="\w\$ " in ~/.profile
  • ein, wenn Sie dies gemacht haben Alle Änderungen in ~/.bashrc entfernen Sie sie.
  • Schließen Sie das Terminal mit cmd + q
  • ffnen Sie das Terminal erneut.

Kommentare

  • In meinem Fall die Der vollständige Pfad ist wirklich groß, daher habe ich ein weiteres Flag für die nächste Zeile hinzugefügt, z. B. PS1 = ‚ \ w \ n \ $ ‚

Antwort

Einfache Lösung

Öffnen Sie ~/.bash_profile und fügen Sie den folgenden Inhalt hinzu

# \[\e[0m\] resets the color to default color reset_color="\[\e[0m\]" # \[\033[33m\] sets the color to yellow path_color="\[\033[33m\]" # \e[0;32m\ sets the color to green git_clean_color="\[\e[0;32m\]" # \e[0;31m\ sets the color to red git_dirty_color="\[\e[0;31m\]" # determines if the git branch you are on is clean or dirty git_prompt () { # Is this a git directory? if ! git rev-parse --git-dir > /dev/null 2>&1; then return 0 fi # Grab working branch name git_branch=$(git branch 2>/dev/null| sed -n "/^\*/s/^\* //p") # Clean or dirty branch if git diff --quiet 2>/dev/null >&2; then git_color="${git_clean_color}" else git_color="${git_dirty_color}" fi echo " [$git_color$git_branch${reset_color}]" } export PS1="${path_color}\w\[\e[0m\]$(git_prompt)\n" 

Dies sollte:

1) Prompt the path you"re in, in color: path_color. 2) Tell you which branch are you. 3) Color the name of the branch based on the status of the branch with git_clean_color for a clean work directory and git_dirty_color for a dirty one. 4) The brackets should stay in the default color you established in your computer. 5) Puts the prompt in the next line for readability. 

Mit dieser -Liste

Anspruchsvolle Lösung

Eine andere Option ist die Verwendung der Git Bash-Eingabeaufforderung, die mit this . Ich habe die Option über Homebrew unter Mac OS X verwendet.

git_prompt_list_themes, um die Themen anzuzeigen, aber ich mochte keines von ihnen.

git_prompt_color_samples, um verfügbare Farben anzuzeigen.

git_prompt_make_custom_theme [<Name of base theme>] Um ein neues benutzerdefiniertes Design zu erstellen, sollte ein .git erstellt werden -prompt-colors.sh-Datei.

subl ~/.git-prompt-colors.sh, um git-prompt-colors.sh zu öffnen und anzupassen:

Die .git- Die Datei prompt-colors.sh sollte mit meiner Anpassung

 override_git_prompt_colors() { GIT_PROMPT_THEME_NAME="Custom" # Clean or dirty branch if git diff --quiet 2>/dev/null >&2; then GIT_PROMPT_BRANCH="${Green}" else GIT_PROMPT_BRANCH="${Red}" fi } reload_git_prompt_colors "Custom" 

so aussehen. Diese Antwort basiert auf meiner SO-Antwort, die Sie unter hier . Hoffe das hilft, einen schönen Tag!

Kommentare

  • Ich denke, das OP wollte einfach die Shell ‚ s anzeigen Arbeitsverzeichnis. Als normaler Git-Benutzer verwende ich ‚ auch eine ausgefallene Git-fähige Eingabeaufforderung, aber das scheint hier übertrieben zu sein.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.