Como posso mudar meu prompt do bash para mostrar meu diretório de trabalho?

Posso imprimir meu diretório de trabalho atual assim

myPrompt$ pwd /Users/me/myDir 

Quero meu shell ficar assim

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

Isso é possível? Como posso fazer isso?

Comentários

  • No OS X, o nome do arquivo é .bash_profile e não apenas .profile. Isso será carregado automaticamente para você.
  • Não exatamente. OSX inicia shells de login por padrão e isso significa que o bash procura por ~/.bash_profile, ~/.bash_login, e ~/.profile, nessa ordem, e lê e executa os comandos do primeiro que existe e é legível. Em qualquer caso, este é realmente um comentário e não uma resposta, então estou convertendo em um.

Resposta

Você pode usar sequências de escape no prompt variáveis .

Coloque isso em seus ~/.bashrc:

PS1="\w\$ " 

Comentários

  • obrigado. Eu fiz essa mudança. Agora vejo: Abrams-MacBook-Air-3: tmp abramhandler $ pwd; / Users / abramhandler / tmp Abrams-MacBook-Air-3: tmp abramhandler $ …. Quero mostrar apenas a parte que diz ” tmp ” para o meu prompt. Como escondo o resto? Quero ocultar o ” abramhandler ” e ” Abram ‘ s-MacBook-Air-3 ” peças
  • @ akh2103 use \W em vez de \w. Veja o link que Gilles deu a você para uma (breve) explicação dos códigos de escape.
  • @terdon Vejo a mesma coisa com \ W e \ w. Estou executando o Unix no OSX.
  • @ akh2103 se você estiver executando o OSX e usando o aplicativo de terminal, deve fazer alterações em ~ / .profile e não em .bashrc, pois o terminal executa um shell de login por padrão. Você também deve fornecer ~ / .profile ou abrir um novo terminal para que as alterações tenham efeito. Além disso, edite para adicionar mais informações, não posso ‘ não entender o que você está pedindo em seu último comentário .
  • @terdon quando executo o source ~ / .profile, ele muda o caminho corretamente no terminal atual. Mas, quando abro um novo terminal, ainda vejo ” abram ‘ s mac book air ” etc. Tentei adicionar source ~ / .profile aos arquivos .profile e .bashrc, mas ainda não tive sorte. Alguma ideia?

Resposta

Aqui “uma linha única para OSX. Ela anexa o prompt que você deseja o arquivo de perfil e, em seguida, recarrega o perfil.

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

No El Capitan, você “desejará usar

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

Resposta

Por algum motivo, "\w\$" não funcionou para mim, mas eu fez: export PS1="$(pwd) \$" e funcionou.

Comentários

  • Isso não funcionará muito bem quando você mudar de diretório …

Resposta

Parece um tópico antigo, mas as etapas abaixo funcionaram para mim no sistema operacional X 10.9.5

  • coloque PS1="\w\$ " em ~/.profile
  • se você fez quaisquer alterações em ~/.bashrc remova-as
  • feche o terminal com cmd+q
  • reabra o terminal

Comentários

  • No meu caso, o PATH completo é realmente grande, então adicionei mais um sinalizador para a próxima linha como PS1 = ‘ \ w \ n \ $ ‘

Resposta

Solução simples

Abra ~/.bash_profile e adicione o seguinte conteúdo

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

Este deve:

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. 

Você pode personalizar as cores com esta lista

Solução sofisticada

Outra opção é usar o prompt Git Bash, instalar com isso . Usei a opção via Homebrew no Mac OS X.

git_prompt_list_themes para ver os temas, mas não gostei de nenhum deles.

git_prompt_color_samples para ver as cores disponíveis.

git_prompt_make_custom_theme [<Name of base theme>] para criar um novo tema personalizado, isso deve criar um .git arquivo -prompt-colors.sh.

subl ~/.git-prompt-colors.sh para abrir git-prompt-colors.sh e personalizar:

O .git- O arquivo prompt-colors.sh deve ter a seguinte aparência com minha personalização

 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" 

Esta resposta é baseada na minha resposta SO que você pode ver aqui . Espero que isso ajude, tenha um ótimo dia!

Comentários

  • Acho que o OP pretendia simplesmente exibir o shell ‘ s diretório de trabalho. Como um usuário regular do Git, eu ‘ também estou usando algum prompt sofisticado que reconheça o Git, mas isso parece um exagero aqui.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *