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


Atualmente é:

michael@Castle2012-Ubuntu-laptop01:~/Dropnot/webs/rails_v3/linker/spec/controllers$

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

Como eu poderia fazer isso ser algo mais parecido com:

michael:controllers$

148
2018-06-02 18:48


origem


askubuntu.com/questions/816068/… - nazar2sfive


Respostas:


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

Basta entrar PS1='\u:\W\$ ' e pressione enter.


Para alterá-lo "permanentemente"

Na tua ~/.bashrc, encontre a seguinte seção:

if ["$ color_prompt" = sim]; então
    PS1 = '$ {debian_chroot: + ($ debian_chroot)} \ [\ 033 [01; 32m \] \ u003 \ h \ [\ 033 [00m \]: \ [\ 033 [01; 34m \] \ w \ [\ 033 [00m \] \ $ '
outro
    PS1 = '$ {debian_chroot: + ($ debian_chroot)} \ u @ \ h: \ w \ $'
fi

Remova o @\he substitua o \w com uma maiúscula \W, de modo que se torne:

if ["$ color_prompt" = sim]; então
    PS1 = '$ {debian_chroot: + ($ debian_chroot)} \ [\ 033 [01; 32m \] \ u \ [\ 033 [00m \]: \ [\ 033 [01; 34m \] \ W \ [\ 033 [00m \] \ $ '
outro
    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!

  • Vejo Aqui para um howto mais extenso, com muito mais opções
  • Vejo esta resposta para usar um pequeno script Python para definir o prompt para que o encurtamento só ocorra quando você estiver no fundo de uma estrutura de diretórios.

213
2018-06-02 19:04



Você também pode ter muita informação ... e, em seguida, um retorno de carro no final como em unix.stackexchange.com/q/88780/10043 - Michael Durrant
Existe uma maneira de tornar isso global? Em outras palavras, se eu sudo para outro usuário, essa configuração será transferida, mas apenas para mim (ou seja, não para o usuário quando ele normalmente usa sua conta)? - ctote
A fim de ter um .bashrc compartilhado que funcione no Linux e OSX eu já mudei para unix.stackexchange.com/a/127800/10043 - Michael Durrant
isto é HOST='\033[02;36m\]\h' HOST=' '$HOST parse_git_branch () { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'; } TIME='\033[01;31m\]\t \033[01;32m\]' LOCATION=' \033[01;34m\]pwd | seds # (/ [^ /] \ {1, \} / [^ /] \ {1, \} / [^ /] \ {1, \} /). * (/ [^ /] \ { 1, \} / [^ /] \ {1, \}) / \ {0,1 \} # \ 1_ \ 2 # g "' BRANCH=' \033[00;33m\]$(parse_git_branch)\[\033[00m\]\n\$ ' PS1=$TIME$USER$HOST$LOCATION$BRANCH PS2='\[\033[01;36m\]>' - Michael Durrant
mas veja a resposta para o código real a ser usado. - Michael Durrant


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 torná-lo permanentemente, adicione a seguinte linha para ~/.bashrc no início:

PROMPT_DIRTRIM=3

ou outro número maior que zero.


83
2018-05-02 06:49



Apenas um sidenote: Isso requer Bash 4. - Stefan Lasiewski
Bom ... eu adicionei um bach_alias para isso (com uma função) promptdir() { PROMPT_DIRTRIM=$1; } só para facilitar a vida ... - dgoosens


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

adicionado em ~/.bashrc 

PS1='[\u@\h \W]\$ '    

Se parece com isso:

[user@hostname dirname]$

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


15
2017-10-10 03:08



Como eu adicionaria um espaço entre cada palavra? Além disso, posso colorir? - Dani Springer


Pessoalmente eu 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.


6
2018-05-20 11:01





Eu percebo que isso é muito antigo, mas como ninguém sugeriu criar um apelido, eu pensei em postar. Usando Bash Prompt Escape Sequences Eu fiz um alias shorten 

Dentro ~/.bash_aliases aqui você vai notar o $ Blue var para definir a cor de aviso que você pode omitir ou alterar com base na preferência também limpar o terminal ao chamar encurtar.

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 cores definidas em ~/.bashrccopiar e colado de https://wiki.archlinux.org/index.php/Color_Bash_Prompt. Em uma nota lateral o que é com as cores do código ansi? Estou confuso apenas olhando para ele.

Blue='\e[0;34m'         # Blue

1
2017-10-26 21:03



Um guia passo a passo para isso seria tão útil quanto eu não tenho idéia de como chegar a .bash_aliases. obrigado - Kayote
"" prefixo indica um diretório ou arquivo oculto. O til "~" é uma forma abreviada da variável $ HOME. Então, "~ / .bash_aliases" é apenas uma abreviação de "/home/$USER/.bash_aliases". Para abrir ".bash_aliases" você pode abrir um terminal e digitar "gedit /home/$USER/.bash_aliases" ou "gedit ~ / .bash_aliases" ou no seu diretório home digite ctrl-h para mostrar os arquivos ocultos e abrir o arquivo diretamente . Espero que ajude. Você também pode querer pesquisar no Google por aliases úteis. - Allie Carver