Hoe kan ik mijn bash-prompt wijzigen om mijn werkdirectory weer te geven?

Ik kan mijn huidige werkmap als volgt afdrukken

myPrompt$ pwd /Users/me/myDir 

Ik wil mijn shell er zo uit te zien

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

Is dat mogelijk? Hoe kan ik het doen?

Opmerkingen

  • Op OS X is de naam van het bestand .bash_profile niet alleen .profile. Dat wordt automatisch voor je geladen.
  • Niet helemaal. OSX start standaard inlogshells en dat betekent dat bash zoekt naar ~/.bash_profile, ~/.bash_login, en ~/.profile, in die volgorde, en leest en voert commandos uit van de eerste die bestaat en leesbaar is. Dit is in ieder geval echt een opmerking en geen antwoord, dus ik converteer het naar een opmerking.

Antwoord

U kunt escape-reeksen gebruiken in de prompt variabelen .

Zet dit in uw ~/.bashrc:

PS1="\w\$ " 

Reacties

  • bedankt. Ik heb die wijziging aangebracht. Nu zie ik: Abrams-MacBook-Air-3: tmp abramhandler $ pwd; / Users / abramhandler / tmp Abrams-MacBook-Air-3: tmp abramhandler $ …. Ik wil alleen het gedeelte laten zien dat zegt ” tmp ” voor mijn prompt. Hoe verberg ik de rest? Ik wil de ” abramhandler ” en ” Abram s-MacBook-Air-3 ” onderdelen
  • @ akh2103 gebruik \W in plaats van \w. Zie de link die Gilles je gaf voor een (korte) uitleg van de escape-codes.
  • @terdon Ik zie hetzelfde met \ W en \ w. Ik draai Unix op OSX.
  • @ akh2103 als je OSX draait en de terminal-app gebruikt, moet je wijzigingen aanbrengen in ~ / .profile en niet in .bashrc, aangezien terminal standaard een login-shell uitvoert. U moet ook ~ / .profile zoeken of een nieuwe terminal openen om de wijzigingen door te voeren. bewerken om meer informatie toe te voegen. Ik kan ‘ niet begrijpen wat u vraagt uit uw laatste opmerking .
  • @terdon wanneer ik source ~ / .profile draai, verandert het het pad correct in de huidige terminal. Maar als ik een nieuwe terminal open, zie ik nog steeds ” abram ‘ s mac book air ” etc. Ik heb geprobeerd source ~ / .profile toe te voegen aan zowel de .profile- als .bashrc-bestanden, maar het lukte nog steeds niet. Enig idee?

Answer

Hier “is een one-liner voor OSX. Het voegt de prompt die u wilt toe aan het profielbestand en laadt het profiel vervolgens opnieuw.

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

Op El Capitan “wil je

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

Answer

Om de een of andere reden werkte "\w\$" niet voor mij, maar in plaats daarvan werkte ik deed: export PS1="$(pwd) \$" en het werkte.

Reacties

  • Dat zal niet zo goed werken als je verander mappen …

Antwoord

Ziet eruit als een oude thread, maar de onderstaande stappen werkten voor mij op OS X 10.9.5

  • plaats PS1="\w\$ " in ~/.profile
  • als je eventuele wijzigingen in ~/.bashrc verwijder ze
  • sluit de terminal met cmd+q
  • open de terminal opnieuw

Reacties

  • In mijn geval de complete PATH is erg groot, dus ik heb nog een vlag toegevoegd voor de volgende regel, zoals PS1 = ‘ \ w \ n \ $ ‘

Antwoord

Eenvoudige oplossing

Open ~/.bash_profile en voeg de volgende inhoud toe

# \[\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" 

Dit should:

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. 

U kunt de kleuren aanpassen met deze lijst

Geavanceerde oplossing

Een andere optie is om Git Bash Prompt te gebruiken, installeer met dit . Ik gebruikte de optie via Homebrew op Mac OS X.

git_prompt_list_themes om de themas te zien, maar ik vond ze niet leuk.

git_prompt_color_samples om beschikbare kleuren te zien.

git_prompt_make_custom_theme [<Name of base theme>] om een nieuw aangepast thema te maken, dit zou een .git moeten maken -prompt-colors.sh.

subl ~/.git-prompt-colors.sh om git-prompt-colors.sh te openen en aan te passen:

Het .git- prompt-colors.sh-bestand zou er als volgt uit moeten zien met mijn aanpassing

 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" 

Dit antwoord is gebaseerd op mijn SO-antwoord dat je kunt zien hier . Ik hoop dat dit helpt, nog een fijne dag verder!

Opmerkingen

  • Ik denk dat het OP van plan was om eenvoudig de shell ‘ s weer te geven werkmap. Als een gewone Git-gebruiker ‘ gebruik ik ook een of andere fraaie Git-bewuste prompt, maar dat lijkt hier overdreven.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *