Cum pot să îmi schimb promptul bash pentru a afișa directorul meu de lucru?

Îmi pot imprima directorul de lucru curent astfel

myPrompt$ pwd /Users/me/myDir 

Îmi doresc shell-ul să arate așa

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

Este posibil? Cum o pot face?

Comentarii

  • Pe OS X numele fișierului este .bash_profile nu doar .profile. Aceasta se va încărca automat pentru dvs.
  • Nu chiar. OSX pornește în mod implicit shell-uri de conectare și asta înseamnă că bash caută ~/.bash_profile, ~/.bash_login și ~/.profile, în această ordine, și citește și execută comenzi din prima care există și este lizibilă. În orice caz, acesta este într-adevăr un comentariu și nu un răspuns, așa că îl convertesc într-unul singur.

Răspuns

Puteți utiliza secvențe de evacuare în prompt variabile .

Puneți acest lucru în ~/.bashrc:

PS1="\w\$ " 

Comentarii

  • mulțumesc. Am făcut această schimbare. Acum văd: Abrams-MacBook-Air-3: tmp abramhandler $ pwd; / Users / abramhandler / tmp Abrams-MacBook-Air-3: tmp abramhandler $ …. Vreau să arăt doar partea care spune ” tmp ” pentru promptul meu. Cum ascund restul? Vreau să ascund ” abramhandler ” și ” Abram ‘ s-MacBook-Air-3 ” piese
  • @ akh2103 utilizați \W în loc de \w. Vedeți linkul pe care vi l-a dat Gilles pentru o explicație (scurtă) a codurilor de evadare.
  • @terdon Văd același lucru cu \ W și \ w. Execut Unix pe OSX.
  • @ akh2103 dacă rulați OSX și utilizați aplicația terminal, ar trebui să faceți modificări la ~ / .profile nu .bashrc, deoarece terminalul execută implicit un shell de conectare. De asemenea, ar trebui să obțineți ~ / .profile sau să deschideți un terminal nou pentru ca modificările să aibă efect. De asemenea, vă rugăm să editați pentru a adăuga mai multe informații, nu pot ‘ să înțeleg ce solicitați din ultimul dvs. comentariu .
  • @terdon când rulez sursa ~ / .profile schimbă calea corect în terminalul curent. Dar când deschid un terminal nou, încă văd ” abram ‘ s mac book air ” etc. Am încercat să adaug sursa ~ / .profile atât la fișierele .profile cât și la .bashrc, dar totuși nu am avut noroc. Aveți idei?

Răspuns

Aici „este un singur liner pentru OSX. Acesta adaugă solicitarea în care doriți fișierul de profil și apoi reîncarcă profilul.

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

Pe El Capitan veți dori să utilizați

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

Răspuns

Din anumite motive "\w\$" nu a funcționat pentru mine, dar în schimb eu a făcut: export PS1="$(pwd) \$" și a funcționat.

Comentarii

  • Asta nu va funcționa prea bine atunci când schimbă directoare …

Răspuns

Arată ca un fir vechi, dar pașii de mai jos au funcționat pentru mine pe sistemul de operare X 10.9.5

  • puneți PS1="\w\$ " în ~/.profile
  • dacă ați făcut orice modificări din ~/.bashrc eliminați-le
  • închideți terminalul cu cmd+q
  • redeschide terminalul

Comentarii

  • În cazul meu, PATH complet este foarte mare, așa că am adăugat încă un semnal pentru următoarea linie, cum ar fi PS1 = ‘ \ w \ n \ $ ‘

Răspuns

Soluție simplă

Deschideți ~/.bash_profile și adăugați următorul conținut

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

Aceasta ar trebui:

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. 

Puteți personaliza culorile cu această listă

Soluție sofisticată

O altă opțiune este de a utiliza Git Bash Prompt, instalați cu aceasta . Am folosit opțiunea prin Homebrew pe Mac OS X.

git_prompt_list_themes pentru a vedea temele, dar nu mi-a plăcut niciuna dintre ele.

git_prompt_color_samples pentru a vedea culorile disponibile.

git_prompt_make_custom_theme [<Name of base theme>] pentru a crea o nouă temă personalizată, aceasta ar trebui să creeze un .git -prompt-colors.sh fișier.

subl ~/.git-prompt-colors.sh pentru a deschide git-prompt-colors.sh și a personaliza:

.git- fișierul prompt-colors.sh ar trebui să arate astfel cu personalizarea mea

 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" 

Acest răspuns se bazează pe răspunsul meu SO pe care îl puteți vedea aici . Sper că acest lucru vă va ajuta, să aveți o zi minunată!

Comentarii

  • Cred că OP intenționa să afișeze pur și simplu shell ‘ director de lucru. Ca utilizator obișnuit de Git, ‘ mă folosesc și de o solicitare fantezie conștientă de Git, dar acest lucru pare a fi exagerat aici.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *