A maneira como meu prompt do bash está configurado atualmente, mostra todo o caminho para o diretório atual. Isso é irritante quando estou dentro de uma árvore de diretórios, pois o prompt se torna tão longo que todos os comandos passam para a próxima linha. Como faço para mostrar apenas a última parte do caminho?
Isto é o que eu tenho no meu .bashrc
:
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"'
;;
*)
;;
esac
fonte
case
declaração a substitui quando estou em um xterm, e o problema parece estar comPWD
aPROMPT_COMMAND
linha. Você sabe o que devo colocar lá?\w
(minúscula) define como caminho completo,\W
(maiúscula) apara o bit final. o PROMPT_COMMAND está definindo o título da janela em um xterm. verifique sua variável TERM; se não começar com "xterm" ou "rxvt", PROMPT_COMMAND nem será executado.O comando simples substituir bash é
Para mostrar o último diretório, você pode simplesmente fazer
${PWD/*\//}
, ou seja, encontrar qualquer coisa antes e incluindo o último '/
' e substituí-lo por nada.Na minha máquina ubuntu eu uso:
fonte
Minha solução é mostrar os três primeiros e os dois últimos diretórios quando houver mais de 5
Portanto, meu prompt (que também tem outras informações) se parece com:
quando meu pwd é realmente
Meu prompt do PS1 está configurado da seguinte maneira:
git_branch
é uma função que mostra o ramo git atual, eu o mantenho em meus arquivos de ponto, é:fonte
Minha solução para isso é um pouco diferente no que diz respeito à exportação, então pensei em compartilhá-lo aqui:
Crie outra variável de string de prompt; PS5 e exporte a seguinte string no seu arquivo
.profile
/.bash_profile
:Agora, sempre que precisar usar o PS abreviado, basta executar:
eval $PS5
Ou melhor ainda, crie um alias no seu
.bash_aliases
arquivo: (graças a @muru )source
novamente e agora você pode apenas digitarPS5
para alternar.fonte
A maioria das outras soluções não funcionou para mim em todos os meus SOs que compartilham meus arquivos de ponto: AIX, Windoze e Linux. As portas festança eram versões antigas que não suportam certas construções e eu não queria desembolsar outro processo (ou seja
sed
,awk
, etc.), que é visivelmente caro sob cygwin.O seguinte é longo, mas com bom desempenho:
Eu quero cuspir:
Observe a falta de uma barra na última linha, que é como eu gosto. Além disso, você pode cuspir os 3 últimos diretórios alterando o argumento para
DIR_LAST
.Além disso, tentei fazer isso com um regex,
BASH_REMATCH
mas o bash v3 não parecia gostar dos parênteses e não conseguia descobrir como escapar deles adequadamente. Suspiro.fonte
Eu acredito que esta opção é muito mais fácil, simplesmente fazendo:
Portanto, atribua isso à variável PS1 no seu arquivo .bashrc:
fonte
adicione o seguinte código ao final do seu ~ / .bashrc
fonte