Come posso cambiare il mio prompt di bash per mostrare la mia directory di lavoro?

Posso stampare la mia directory di lavoro corrente in questo modo

myPrompt$ pwd /Users/me/myDir 

Voglio la mia shell in questo modo

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

È possibile? Come posso farlo?

Commenti

  • Su OS X il nome del file è .bash_profile non solo .profile. Questo verrà caricato automaticamente per te.
  • Non proprio. OSX avvia le shell di accesso per impostazione predefinita e ciò significa che bash cerca ~/.bash_profile, ~/.bash_login e ~/.profile, in questordine, e legge ed esegue i comandi dal primo esistente ed è leggibile. In ogni caso, questo è davvero un commento e non una risposta, quindi lo sto convertendo in uno.

Risposta

Puoi utilizzare sequenze di escape nelle variabili del prompt.

Inseriscilo nei tuoi ~/.bashrc:

PS1="\w\$ " 

Commenti

  • grazie. Ho fatto quella modifica. Ora vedo: Abrams-MacBook-Air-3: tmp abramhandler $ pwd; / Users / abramhandler / tmp Abrams-MacBook-Air-3: tmp abramhandler $ …. Voglio mostrare solo la parte che dice ” tmp ” per il mio prompt. Come nascondo il resto? Voglio nascondere ” abramhandler ” e ” Abram ‘ s-MacBook-Air-3 ” parti
  • @ akh2103 usa \W invece di \w. Vedi il link che Gilles ti ha dato per una (breve) spiegazione dei codici di escape.
  • @terdon Vedo la stessa cosa con \ W e \ w. Sto eseguendo Unix su OSX.
  • @ akh2103 se stai eseguendo OSX e utilizzi lapp del terminale, dovresti apportare modifiche a ~ / .profile e non .bashrc poiché il terminale esegue una shell di accesso per impostazione predefinita. Dovresti anche creare ~ / .profile o aprire un nuovo terminale affinché le modifiche abbiano effetto. Inoltre, modifica per aggiungere ulteriori informazioni, non posso ‘ capire cosa stai chiedendo dal tuo ultimo commento .
  • @terdon quando eseguo source ~ / .profile cambia il percorso correttamente nel terminale corrente. Ma quando apro un nuovo terminale, vedo ancora ” abram ‘ s mac book air ” ecc. Ho provato ad aggiungere source ~ / .profile a entrambi i file .profile e .bashrc ma senza fortuna. Qualche idea?

Risposta

Ecco “una riga per OSX. Aggiunge il prompt che desideri il file del profilo, quindi ricarica il profilo.

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

Su El Capitan “vorrai utilizzare

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

Risposta

Per qualche motivo "\w\$" non ha funzionato per me ma invece io ha fatto: export PS1="$(pwd) \$" e ha funzionato.

Commenti

  • Non funzionerà molto bene se cambia directory …

Risposta

Sembra un vecchio thread ma i passaggi seguenti hanno funzionato per me su OS X 10.9.5

  • inserisci PS1="\w\$ " in ~/.profile
  • se hai creato eventuali modifiche in ~/.bashrc rimuovile
  • chiudi il terminale con cmd+q
  • riaprire il terminale

Commenti

  • Nel mio caso il il PATH completo è molto grande, quindi ho aggiunto un altro flag per la riga successiva come PS1 = ‘ \ w \ n \ $ ‘

Risposta

Soluzione semplice

Apri ~/.bash_profile e aggiungi il seguente contenuto

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

Questo dovrebbe:

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. 

Puoi personalizzare i colori con questo elenco

Soluzione sofisticata

Unaltra opzione è utilizzare Git Bash Prompt, installare con questo . Ho utilizzato lopzione tramite Homebrew su Mac OS X.

git_prompt_list_themes per vedere i temi ma non mi è piaciuto nessuno di loro.

git_prompt_color_samples per vedere i colori disponibili.

git_prompt_make_custom_theme [<Name of base theme>] per creare un nuovo tema personalizzato, questo dovrebbe creare un .git -prompt-colors.sh file.

subl ~/.git-prompt-colors.sh per aprire git-prompt-colors.sh e personalizzare:

Il .git- Il file prompt-colors.sh dovrebbe essere simile a questo con la mia personalizzazione

 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" 

Questa risposta si basa sulla mia risposta SO che puoi vedere qui . Spero che questo aiuti, buona giornata!

Commenti

  • Penso che lOP intendesse semplicemente visualizzare la shell ‘ s directory di lavoro. Come utente Git normale, ‘ uso anche un prompt di fantasia Git-aware, ma qui sembra essere eccessivo.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *