Tema e personalizações para bash

Encontro de cantos da parede de um quarto

Bash

Resultado:   Ver imagem do resultado
TLDR:   Por a mão na massa, configurar

GNU Bash ou simplesmente Bash é um interpretador de comandos, um entre os diversos tradutores entre o usuário e o sistema operacional conhecidos como shell.

-- Wikipedia: Bash

Na utilização do Linux em geral é bem comum termos que utilizar o bash para fazer instalação ou manutenção de algum tipo no sistema. Mesmo para usuários(as) com uso mais focado em aplicativos com interface gráfica.

Em sua versão padrão/default no ArchLinux que é o sistema operacional que costumo mais utilizar esse é o modo como se apresenta:

Bash padrão Archlinux

Na imagem acima vemos em ordem respectiva

  • Usuário: marcmatias
  • Nome da máquina: avalon
  • Símbolo diretório home: ~
    • Que refere a pasta /home/nome-do-usuário-logado

Como podemos ver não tem cores sendo aplicadas nas letras e estão todas envoltas em colchetes. Isso é o que vamos mudar com as personalizações a seguir visando tornar esse texto mais interessante e fácil de interpretar.

Configuração

Vamos adicionar o código abaixo no arquivo ~/.bashrc

git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)\ /'
}

PS1='\[\e[1;34m\]\W\[\e[0m\]\[\e[1;33m\] $(git_branch)\[\e[1;30m\]\$\[\e[0m\] '

Para melhor compreensão do que foi digitado acima:

  • PS1 significa: Prompt String 1 é um dos prompts disponíveis no Linux
  • \W faz com que apenas o nome da pasta atual seja exibido
  • $(git_brach) exibe o resultado da função de mesmo nome logo acima
    • Essa função exibe o nome da branch atual se estivermos em uma pasta de um repositório
  • $ faz com que esse símbolo seja exibido ao final da linha do PS1
  • Demais elementos são configurações de cores e tipos de fonte

Abaixo, uma lista de cores que podemos utilizar com fontes Bold e Regulares

txtblk='\e[0;30m' # Black - Regular
txtred='\e[0;31m' # Red
txtgrn='\e[0;32m' # Green
txtylw='\e[0;33m' # Yellow
txtblu='\e[0;34m' # Blue
txtpur='\e[0;35m' # Purple
txtcyn='\e[0;36m' # Cyan
txtwht='\e[0;37m' # White
bldblk='\e[1;30m' # Black - Bold
bldred='\e[1;31m' # Red
bldgrn='\e[1;32m' # Green
bldylw='\e[1;33m' # Yellow
bldblu='\e[1;34m' # Blue
bldpur='\e[1;35m' # Purple
bldcyn='\e[1;36m' # Cyan
bldwht='\e[1;37m' # White

-- Change linux shell prompt with different colors

Resultado

Agora vamos ver o resultado obtido. Acessei a pasta de um projeto para que possamos ver além do nome da pasta o nome da branch atual

Bash padrão Archlinux 2

Deixei apenas o nome da pasta e do branch atual (quando estamos em uma pasta de projeto git) fiquem sendo exibidos nas cores azul (para pastas) e amarelo (para repositórios).

Costumo utilizar os comandos

  • pwd para ver qual o caminho completo para a pasta em que estou
  • whoami para ver qual o usuário atual que estou logado

Por isso opto por só exibir o que é essencial na linha de comando deixando mais espaço em tela para escrita e retorno de resultados dos comandos e programas executados.

Meu arquivo .bashrc completo pode ser encontrado no repositório dot-files com outras configurações de outros aplicativos que costumo utilizar.

Author img

@marcmatias