Como posso encurtar o meu prompt de linha de comando (bash)?

142

Atualmente é:

[email protected]:~/Dropnot/webs/rails_v3/linker/spec/controllers$

Fora de renomear minha máquina e estrutura de diretórios ...

Como eu poderia ser algo mais como:

michael:controllers$
    
por Michael Durrant 02.06.2012 / 20:48

5 respostas

206

Para alterá-lo apenas para a instância atual do terminal

Basta digitar PS1='\u:\W$ ' e pressionar Enter.

Para alterar "permanentemente"

No seu ~/.bashrc , encontre a seguinte seção:

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[3[01;32m\]\[email protected]\h\[3[00m\]:\[3[01;34m\]\w\[3[00m\]$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\[email protected]\h:\w$ '
fi

Remova o @\h e substitua o \w por um maiúscula \W , para que ele se torne:

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[3[01;32m\]\u\[3[00m\]:\[3[01;34m\]\W\[3[00m\]$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u:\W$ '
fi

Salve, saia, feche o terminal e inicie o outro para ver o resultado.

Toneladas mais opções!

  • Veja aqui para um tutorial mais abrangente, com muito mais opções
  • Veja esta resposta para usar um pequeno script Python para definir o prompt para que o encurtamento só ocorra quando você estiver profundamente em uma estrutura de diretórios.
por ish 02.06.2012 / 21:04
80

Execute este código no terminal atual

PROMPT_DIRTRIM=3

Agora, o prompt do bash mostrará apenas os últimos 3 nomes de diretório. Você pode escolher 1 para mostrar apenas o diretório atual. Mais informações estão disponíveis na documentação do GNU .

O efeito:

/var/lib/apt/lists# PROMPT_DIRTRIM=3
/.../lib/apt/lists# 

Se você quiser fazer isso permanentemente, adicione a seguinte linha a ~/.bashrc no começo:

PROMPT_DIRTRIM=3

ou outro número maior que zero.

    
por santosh Mahto 02.05.2014 / 08:49
15

Esta é a minha configuração de prompt preferida:

adicionado em ~/.bashrc

PS1='[\[email protected]\h \W]$ '    

parece com isso:

[[email protected] dirname]$

(com um espaço após o sinal $ )

    
por unwastable 10.10.2014 / 05:08
6

Pessoalmente, prefiro ver apenas a pasta atual no prompt do bash. Eu posso fazer isso com o seguinte comando:

PS1='\W$ '

Se você quer que ele tenha efeito após cada partida, adicione o comando acima em seu ~ / .bashrc.

    
por Rajeev Jayaswal 20.05.2017 / 13:01
1

Eu sei que isso é muito antigo, mas como ninguém sugeriu criar um alias, eu pensei em postar. Usando Seqüências de escape do prompt do Bash Eu fiz um alias shorten

Em ~/.bash_aliases aqui você notará o $ Blue var para definir a cor do prompt que você pode omitir ou alterar com base na preferência. Eu também limpo o terminal ao chamar o short.

alias c='clear'

alias shorten='PS1="$Blue$USER:\W$ "&& c'

Para obter a string de prompt desejada do OP:

alias shorten='PS1="$USER:\W$ "'

Eu tenho as cores definidas em ~/.bashrc , copiadas e coladas no link . Em uma nota lateral o que é com as cores do código ansi? Estou confuso apenas olhando para ele.

Blue='\e[0;34m'         # Blue
    
por Allie Carver 26.10.2015 / 22:03