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:
Códigos Comuns
Aplicações
Os códigos de escape ANSI são usados para:
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.
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
alias ll='ls -lah' para expandir o comando ll para ls -lah, tornando-o mais rápido e mais fácil de digitar..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..bashrc permitem aos usuários criar comandos complexos que podem ser reutilizados com facilidade, simplificando processos repetitivos.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
.bashrc com operações pesadas ou que demandem muitos recursos, pois isso pode atrasar o tempo de inicialização de cada shell..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..bashrc podem comprometer a segurança do usuário.Dicas Práticas
.bashrc bem organizado e comente as seções para facilitar a manutenção e o entendimento das configurações..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.
# 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
Explicação da Personalização do prompt
1. Checagem de Chroot:
2. Cores e Formato do Prompt:
Uso Universal
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\] '
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\] '
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\] '
Explicação das Cores As cores no prompt são configuradas usando códigos de escape ANSI:
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: