User Tools

Site Tools


wikiv2:bashrc_custom

Conteúdo do .bashrc Customizado

Os códigos de escape ANSI

Os códigos de escape ANSI são sequências de caracteres usadas para controlar a formatação, a cor e outras opções de saída em terminais de texto. Esses códigos são amplamente utilizados em interfaces de linha de comando (CLI) para adicionar cores, movimento e outras formas de feedback visual que melhoram a usabilidade e a estética.

Origem e Uso

Os códigos de escape ANSI são baseados no padrão ANSI (American National Standards Institute) que foi desenvolvido para padronizar as sequências de controle usadas em terminais de vídeo e impressoras de texto. Embora denominados “ANSI”, muitos dos códigos utilizados hoje são tecnicamente parte do padrão ECMA-48, adotado pela primeira vez em 1976.

Estrutura do Código

Um código de escape ANSI típico começa com a sequência de escape (ESC), que é um caractere ASCII de escape seguido por [. Isso é conhecido como o “CSI” (Control Sequence Introducer) para códigos de escape ANSI. Após o CSI, os códigos podem incluir vários parâmetros numéricos separados por ponto e vírgula, e terminam com uma letra que indica a ação a ser tomada. Por exemplo, em \033[1;34m:

  • \033 é o código ASCII para ESC (escape), representado também por \e em algumas linguagens.
  • [ indica o início do código de controle.
  • 1;34 são os parâmetros que definem o estilo e a cor (neste caso, texto brilhante em azul).
  • m finaliza o código, indicando que é uma operação de cor/texto.

Códigos Comuns

  • Reset: 0 - Retorna todas as configurações ao padrão.
  • Brilhante/Bold: 1 - Torna o texto brilhante ou negrito.
  • Dim/Faint: 2 - Torna o texto menos brilhante.
  • Itálico: 3 - Aplica itálico ao texto.
  • Sublinhado: 4 - Aplica sublinhado ao texto.
  • Cores do Texto: 30 a 37 - Define a cor do texto.
  • Cores de Fundo: 40 a 47 - Define a cor de fundo.

Aplicações

Os códigos de escape ANSI são usados para:

  • Melhorar a legibilidade e a organização da saída do terminal, utilizando diferentes cores para diferentes tipos de informação.
  • Indicar status, como sucesso (verde), aviso (amarelo), erro (vermelho).
  • Personalizar prompts de shell para incluir informações úteis, mantendo uma apresentação clara e visualmente distintiva.
  • Animações simples em texto, movendo o cursor ou limpando partes da tela.

Considerações

Embora poderosos, o uso excessivo de cores e formatações pode tornar a interface confusa e menos legível, especialmente em ambientes com telas com poucas cores ou dispositivos que não suportam códigos de escape ANSI. Além disso, é importante garantir que scripts e programas que utilizam esses códigos verifiquem se o terminal de destino suporta ANSI, para evitar a saída de caracteres de escape como texto simples.

Arquivo .bashrc

O arquivo .bashrc é um script de configuração executado sempre que uma nova instância do shell Bash é iniciada. Este arquivo é crucial para personalizar o ambiente do shell, definindo variáveis de ambiente, aliases, funções e outras configurações que melhoram a eficiência e a personalização do terminal.

Origem e Função

O arquivo .bashrc está localizado no diretório home do usuário (~/.bashrc) e é específico para cada usuário no sistema. Esse arquivo é lido automaticamente pelo shell Bash sempre que é iniciado de forma interativa e não-login. Isso inclui a abertura de um novo terminal ou a execução de um shell script que inicia uma nova sessão Bash.

Principais Usos do .bashrc

  1. Definir Aliases: Aliases são atalhos para comandos mais longos que são frequentemente usados. Por exemplo, você pode definir alias ll='ls -lah' para expandir o comando ll para ls -lah, tornando-o mais rápido e mais fácil de digitar.
  2. Configurações de Prompt: O .bashrc é frequentemente usado para personalizar a aparência do prompt de comando. Utilizando variáveis e códigos de escape ANSI, os usuários podem incluir cores, informações de git, e muito mais no seu prompt.
  3. Variáveis de Ambiente: Variáveis como PATH, EDITOR, e LANG podem ser definidas ou modificadas no `.bashrc` para controlar o comportamento de programas no sistema.
  4. Funções Personalizadas: Funções definidas no .bashrc permitem aos usuários criar comandos complexos que podem ser reutilizados com facilidade, simplificando processos repetitivos.
  5. Configurações de Comportamento do Bash: Opções como shopt e set podem ser usadas para alterar o comportamento do Bash, como a maneira como ele lida com coringas, histórico de comandos, e conclusão de tabulação.

Considerações de Uso

  • Performance: É importante não sobrecarregar o .bashrc com operações pesadas ou que demandem muitos recursos, pois isso pode atrasar o tempo de inicialização de cada shell.
  • Compatibilidade: Embora as configurações no .bashrc sejam muito poderosas, elas devem ser usadas com cautela para não interferir no funcionamento de scripts Bash que dependem de um ambiente específico.
  • Segurança: Cuidado ao incluir scripts ou comandos de fontes externas. Configurações inseguras ou maliciosas no .bashrc podem comprometer a segurança do usuário.

Dicas Práticas

  • Organização: Mantenha o arquivo .bashrc bem organizado e comente as seções para facilitar a manutenção e o entendimento das configurações.
  • Testar Mudanças: Sempre teste novas configurações em uma sessão separada para evitar erros que possam impedir o login ou a utilização do terminal.
  • Backup: Faça backups regulares do seu .bashrc, especialmente antes de fazer alterações significativas.

Em resumo, o arquivo .bashrc é uma ferramenta essencial para qualquer usuário do Bash, oferecendo amplas possibilidades para a personalização e otimização do ambiente do terminal.

.bashrc
# vim ~/.bashrc
# Melhorar a funcionalidade básica do bash
export HISTSIZE=5000                    # Aumentar o tamanho do histórico de comandos
export HISTFILESIZE=10000               # Aumentar o tamanho do arquivo de histórico
shopt -s histappend                     # Anexar ao histórico, não sobrescrever
export HISTCONTROL=ignoredups:erasedups # Ignorar duplicatas, apagar duplicatas antigas
export HISTTIMEFORMAT='%d-%m-%Y %H:%M- ' # Formatar data e hora no histórico de comandos
 
# Opções de LS e suporte a cores
export LS_OPTIONS='--color=auto'
eval "$(dircolors)"
alias ls='ls $LS_OPTIONS'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
 
# Comandos interativos para evitar operações indesejadas
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
 
# Aliases e configurações para edição de arquivos
alias vi='vim'
alias editor='vi'
export VISUAL='vim'
export EDITOR="$VISUAL"
 
# Atalhos para navegação e listagem de diretórios
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias .....='cd ../../../..'
alias ll='ls -lahF'
alias la='ls -A'
alias l='ls -CF'
 
# Configurações de rede e monitoramento
alias ping='grc ping -c3'
alias ports='netstat -tulanp'
alias ipinfo='curl http://ipinfo.io/ip'
 
# Funções úteis para administração do sistema
srestart() {
    sudo systemctl restart "$1"
    sudo systemctl status "$1"
}
openfiles() {
    lsof -i | grep "$1"
}
diskuse() {
    df -h | grep "$1" || df -h
}
pingserver() {
    ping -c 5 "$1"
}
sshc() {
    ssh -i ~/.ssh/mykey.pem "$@"
}
 
# Comandos de atualização e limpeza do sistema
alias sysup='sudo apt-get update && sudo apt-get upgrade && sudo apt-get autoclean && sudo apt-get autoremove'
 
# Monitoramento de recursos e rastreamento de logs com coloração
alias cpu='top -o %CPU'
alias mem='top -o %MEM'
alias logs='journalctl -f'
alias syslog='tail -f /var/log/syslog'
alias tail='grc tail'
alias ps='grc ps'
 
# Personalizações do prompt
# Checa se está em um ambiente chroot
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi
 
export PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u\[\033[01;34m\]@\[\033[01;33m\]\h\[\033[01;34m\][\[\033[00m\]\[\033[01;37m\]\w\[\033[01;34m\]]\[\033[01;31m\]\$\[\033[00m\] '
 
# Mudar para projetos específicos rapidamente
proj() {
    cd ~/Projects/"$1"
}

Explicações das Adições

  • Suporte a Cores: Melhorias para o comando `ls` e ferramentas como `grep`, `egrep`, e `fgrep` com opções de cores automáticas para facilitar a leitura e o destaque de informações.
  • Aliases de Comandos Interativos: Aliases para `rm`, `cp`, e `mv` com o flag `-i` para promover a confirmação antes de realizar operações potencialmente destrutivas.
  • Edição de Arquivos: Configuração do `vim` como o editor padrão para o terminal.
  • Ping e Monitoramento com grc: Uso de `grc` (Generic Colouriser) para adicionar cor e facilitar a leitura de comandos comuns de monitoramento como `ping`, `tail`, e `ps`.
  • Histórico de Comandos: Aumenta os limites de armazenamento do histórico de comandos e melhora o gerenciamento de entradas duplicadas.
  • Atalhos de Navegação: Fornece aliases rápidos para navegar entre diretórios com menos digitação.
  • Aliases de Listagem: Melhora a visibilidade e detalhes ao listar arquivos e diretórios.
  • Gerenciamento de Redes: Inclui comandos para ver portas abertas e a própria IP pública, útil para diagnósticos rápidos de rede.
  • Funções de Administração de Sistema: Conjunto de funções para reiniciar serviços, verificar uso de disco, e outras tarefas administrativas comuns.
  • Atualizações e Limpezas do Sistema: Automatiza a atualização e limpeza de pacotes para manter o sistema atualizado e limpo.
  • Monitoramento de Recursos: Aliases para monitorar o uso de CPU e memória facilmente.
  • Facilidades para Logs: Aliases para acompanhar logs de sistema em tempo real.
  • Prompt Customizado: Personaliza o prompt do terminal para mostrar informações relevantes em cores.

Explicação da Personalização do prompt

1. Checagem de Chroot:

  1. O prompt inclui uma checagem para debian_chroot, que é utilizado principalmente em sistemas Debian para indicar que o shell está operando dentro de um ambiente chroot. Esta checagem é feita para exibir essa informação no prompt, se aplicável.
  2. O script verifica se a variável `debian_chroot` está vazia e se o arquivo /etc/debian_chroot existe e é legível. Se verdadeiro, ele lê o conteúdo desse arquivo para a variável `debian_chroot`.

2. Cores e Formato do Prompt:

  1. \[\033[01;31m\] e similares são códigos de escape ANSI para colorir o texto. Cada sequência de \[\033[X;Ym\] define uma cor ou estilo diferente onde X e Y são códigos que determinam a cor e o estilo do texto.
  2. ${debian_chroot:+($debian_chroot)}: Exibe o conteúdo de debian_chroot se ele não estiver vazio.
  3. \u: Mostra o nome de usuário do usuário atual.
  4. \h: Exibe o nome do host até o primeiro ponto.
  5. \w: Mostra o diretório de trabalho atual.
  6. \[\033[00m\]: Reseta a cor para o padrão do terminal, garantindo que a cor não afete outros elementos na tela que não fazem parte do prompt.

Uso Universal

  • Este prompt foi modificado para verificar se a variável debian_chroot é usada, que é específica do Debian, mas ao fazer isso de forma condicional, ele não interferirá no funcionamento em outras distribuições onde essa variável não é definida.
  • Ele mantém a funcionalidade visual rica e informativa do prompt original do Debian, tornando-o prático e esteticamente agradável em qualquer distribuição Linux.

Personalizando o prompt do terminal com diferentes esquemas de cores.

Versão Azul e Verde

export PS1='${debian_chroot:+($debian_chroot)}\[\033[01;34m\]\u\[\033[01;32m\]@\[\033[01;36m\]\h\[\033[01;34m\][\[\033[00m\]\[\033[01;37m\]\w\[\033[01;34m\]]\[\033[01;32m\]\$\[\033[00m\] '
  • Usuário: Azul claro
  • Host: Verde claro
  • Caminho: Branco
  • Símbolo do terminal (`$`): Verde claro

Versão Vermelho e Amarelo

export PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u\[\033[01;33m\]@\[\033[01;35m\]\h\[\033[01;31m\][\[\033[00m\]\[\033[01;33m\]\w\[\033[01;31m\]]\[\033[01;35m\]\$\[\033[00m\] '
  • Usuário: Vermelho
  • Host: Magenta
  • Caminho: Amarelo
  • Símbolo do terminal (`$`): Magenta

Versão Ciano e Branco

export PS1='${debian_chroot:+($debian_chroot)}\[\033[01;36m\]\u\[\033[01;37m\]@\[\033[01;34m\]\h\[\033[01;36m\][\[\033[00m\]\[\033[01;37m\]\w\[\033[01;36m\]]\[\033[01;34m\]\$\[\033[00m\] '
  • Usuário: Ciano
  • Host: Azul
  • Caminho: Branco
  • Símbolo do terminal (`$`): Azul

Explicação das Cores As cores no prompt são configuradas usando códigos de escape ANSI:

  • \[\033[01;34m\]: Azul claro
  • \[\033[01;32m\]: Verde claro
  • \[\033[01;36m\]: Ciano
  • \[\033[01;31m\]: Vermelho
  • \[\033[01;33m\]: Amarelo
  • \[\033[01;35m\]: Magenta
  • \[\033[01;37m\]: Branco

Como Alterar as Cores Para criar suas próprias versões coloridas, basta substituir os códigos de cores nos lugares adequados. Os códigos seguem o padrão \[\033[01;XXm\], onde XX é o código da cor desejada. Aqui estão alguns códigos comuns de cores:

  • 30: Preto
  • 31: Vermelho
  • 32: Verde
  • 33: Amarelo
  • 34: Azul
  • 35: Magenta
  • 36: Ciano
  • 37: Branco
wikiv2/bashrc_custom.txt · Last modified: by 127.0.0.1