terça-feira, 17 de agosto de 2021

Terminal Colorido para Debian e derivados

Neste post iremos ver como deixar o terminal com um visual mais colorido do que por padrão. Onde o segredo está nas configurações dos arquivos /etc/bash.bashrc e /home/$USER/.bashrc. Essa operação deixa o terminal mais legal de ser manipulado para realizar as diversas atividades possíveis.
Vamos criar o arquivo bash.bashrc

sudo nano bash.bashrc

Copiamos o seguinte conteúdo abaixo que está na cor azul e colamos no terminal com nano aberto e salvamos:


# *********************************************
# * ~/.bashrc Personalizado para Debian       *
# * System: Debian 12 bookworm                *
# * local: /home/user/.bashrc                 *
# *********************************************
# ======================================================================
# Adaptado para o Debian GNU/Linux
# URL: https://dagoland.blogspot.com
# ======================================================================

#-----------------------------------------------
# Configurações Gerais
#-----------------------------------------------

# Se não estiver rodando interativamente, não fazer nada
[ -z "$PS1" ] && return

# Não armazenar as linhas duplicadas ou linhas que começam com espaço no historico
HISTCONTROL=ignoreboth

# Adicionar ao Historico e não substitui-lo
shopt -s histappend

# Definições do comprimento e tamnho do historico.
HISTSIZE=1000
HISTFILESIZE=2000

#===========================================
# Váriavies com as Cores
#===========================================
NONE="\[\033[0m\]" # Eliminar as Cores, deixar padrão)

## Cores de Fonte
K="\[\033[0;30m\]" # Black (Preto)
R="\[\033[0;31m\]" # Red (Vermelho)
G="\[\033[0;32m\]" # Green (Verde)
Y="\[\033[0;33m\]" # Yellow (Amarelo)
B="\[\033[0;34m\]" # Blue (Azul)
M="\[\033[0;35m\]" # Magenta (Vermelho Claro)
C="\[\033[0;36m\]" # Cyan (Ciano - Azul Claro)
W="\[\033[0;37m\]" # White (Branco)

## Efeito Negrito (bold) e cores
BK="\[\033[1;30m\]" # Bold+Black (Negrito+Preto)
BR="\[\033[1;31m\]" # Bold+Red (Negrito+Vermelho)
BG="\[\033[1;32m\]" # Bold+Green (Negrito+Verde)
BY="\[\033[1;33m\]" # Bold+Yellow (Negrito+Amarelo)
BB="\[\033[1;34m\]" # Bold+Blue (Negrito+Azul)
BM="\[\033[1;35m\]" # Bold+Magenta (Negrito+Vermelho Claro)
BC="\[\033[1;36m\]" # Bold+Cyan (Negrito+Ciano - Azul Claro)
BW="\[\033[1;37m\]" # Bold+White (Negrito+Branco)

## Cores de fundo (backgroud)
BGK="\[\033[40m\]" # Black (Preto)
BGR="\[\033[41m\]" # Red (Vermelho)
BGG="\[\033[42m\]" # Green (Verde)
BGY="\[\033[43m\]" # Yellow (Amarelo)
BGB="\[\033[44m\]" # Blue (Azul)
BGM="\[\033[45m\]" # Magenta (Vermelho Claro)
BGC="\[\033[46m\]" # Cyan (Ciano - Azul Claro)
BGW="\[\033[47m\]" # White (Branco)

#=============================================
# Configurações referentes ao usuário
#=============================================

## Verifica se é usuário root (UUID=0) ou usuário comum
if [ $UID -eq "0" ]; then

## Cores e efeitos do Usuario root

PS1="$G╭─[$BR\u$G]$BY@$G[$BW${HOSTNAME%%.*}$G]$B:\w\n$G╰──>$BR \\$ $NONE"

else

## Cores e efeitos do usuário comum

PS1="$BR╭─[$BG\u$BR]$BY@$BR[$BW${HOSTNAME%%.*}$BR]$B:\w\n$BR╰──>$BG \\$ $NONE"

fi # Fim da condição if

## Exemplos de PS1

# PS1="\e[01;31m╭─[\e[01;35m\u\e[01;31m]──[\e[00;37m${HOSTNAME%%.*}\e[01;32m]:\w$\e[01;31m\n\e[01;31m╰──\e[01;36m>>\e[00m"

# PS1='\[\e[m\n\e[1;30m\][$$:$PPID \j:\!\[\e[1;30m\]]\[\e[0;36m\] \T \d \[\e[1;30m\][\[\e[1;34m\]\u@\H\[\e[1;30m\]:\[\e[0;37m\]${SSH_TTY} \[\e[0;32m\]+${SHLVL}\[\e[1;30m\]] \[\e[1;37m\]\w\[\e[0;37m\] \n($SHLVL:\!)\$ '}

# PS1="\e[01;31m╭─[\e[01;35m\u\e[01;31m]──[\e[00;37m${HOSTNAME%%.*}\e[01;32m]:\w$\e[01;31m\n\e[01;31m╰──\e[01;36m>>\e[00m"

# PS1="╭─[\[\e[34m\]\h\[\e[0m\]][\[\e[32m\]\w\[\e[0m\]]\n╰─╼ "

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

#==========================
# DIVERSOS
#==========================

## Habilitando suporte a cores para o ls e outros aliases
## Vê se o arquivo existe
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"

## Aliases (apelidos) para comandos
alias ls='ls --color=auto'
alias dir='dir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi # Fim do if do dircolor

## Aliases (apelidos) diversos

# Editar sources.list
alias lists='sudo nano /etc/apt/sources.list'

# atualizar o apt-get
alias upd='sudo apt update'

# Reparar o apt-get
alias aptrepair='sudo apt install -f'

# Reparar o dpkg
alias dpkgrepair='sudo dpkg --configure -a'

# Copiar e mover com barra de progresso:
if [ -x /usr/local/bin/cp ]; then
    alias cp='/usr/local/bin/cp -g'
fi

if [ -x /usr/local/bin/mv ]; then
    alias mv='/usr/local/bin/mv -g'
fi

# Usar nala como apt caso instalado
sudo() {
  if [ "$1" = "apt" ] && [ "$2" = "autoclean" ]; then
    shift 2
    command sudo apt autoclean "$@"
  elif [ "$1" = "apt" ] && [ "$2" = "autoremove" ]; then
    shift 2
    command sudo apt autoremove "$@"
  elif [ "$1" = "apt" ] && [ "$2" = "dist-upgrade" ]; then
    shift 2
    command sudo apt dist-upgrade "$@"
  elif [ "$1" = "apt" ] && [ "$2" = "edit-sources" ]; then
    shift 2
    command sudo apt edit-sources "$@"
  elif [ "$1" = "apt" ] && [ "$2" = "--fix-broken" ]; then
    shift 2
    command sudo apt --fix-broken "$@"
  elif [ "$1" = "apt" ] && [ "$2" = "full-upgrade" ]; then
    shift 2
    command sudo apt full-upgrade "$@"
  elif [ "$1" = "apt" ] && [ "$2" = "-h" ]; then
    shift 2
    command sudo apt -h "$@"
  elif [ "$1" = "apt" ] && [ "$2" = "--help" ]; then
    shift 2
    command sudo apt --help "$@"
  elif [ "$1" = "apt" ] && [ "$2" = "policy" ]; then
    shift 2
    command sudo apt policy "$@"
  elif [ "$1" = "apt" ] && [ "$2" = "--purge" ]; then
    shift 2
    command sudo apt --purge "$@"
  elif [ "$1" = "apt" ] && [[ "$@" == *"--purge"* ]]; then
    shift 
    command sudo apt "$@"
  elif [ "$1" = "apt" ] && [ "$2" = "reinstall" ]; then
    shift 2
    command sudo apt reinstall "$@"
  elif [ "$1" = "apt" ] && [ "$2" = "satisfy" ]; then
    shift 2
    command sudo apt satisfy "$@"
  elif [ "$1" = "apt" ] && [ "$2" = "install" ] && [ "$3" = "-t" ]; then
    shift 3
    command sudo apt install -t "$@"
  elif [ "$1" = "apt" ] && [ "$2" = "--version" ]; then
    shift 2
    command sudo apt --version "$@"
  elif [ "$1" = "apt" ] && [[ "$@" == *"--yes"* ]]; then
    shift 
    command sudo apt "$@"    
  elif [ "$1" = "apt" ] && [[ "$@" == *"*"* ]]; then
    shift
    command sudo apt "$@"
  elif [ "$1" = "apt" ]; then
    if command -v nala &> /dev/null; then
      shift
      command sudo nala "$@"
    else
      shift
      command sudo apt "$@"
    fi
  else
    command sudo "$@"
  fi
}

# Adiciona diretórios extras ao PATH para executáveis do sistema
export PATH=$PATH:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin

#==============================================
# Aliases para uso no dia-a-dia e testes
#==============================================

# Testar conexão com ping
alias google='tput cuu1 && tput el && echo -e "\033[1;31m╰──> \033[1;32m$\033[0m \033[1;34mG\033[1;31mo\033[1;33mo\033[1;34mg\033[1;32ml\033[1;31me\033[1;37m" && ping -c 3 www.google.com.br' # Ping ao Google a cada 3 segundos

Para salvar no nano, pressione Ctrl + O e depois Enter. E para sair, pressione Ctrl + X.

Como o arquivo bash.bashrc salvo, agora basta executar os seguintes comandos:

Fazemos o backup do arquivo original:

sudo mv /etc/bash.bashrc /etc/bash.bashrc-backup

Copiamos o arquivo criado para /etc:

sudo cp -a /home/$USER/bash.bashrc /etc

E movemos o arquivo criado para o diretório /home/$USER com a devida renomeação:

sudo mv /home/$USER/bash.bashrc /home/$USER/.bashrc

Pronto. Assim que fechar e abrir o terminal, ele estará colorido.



Nenhum comentário:

Postar um comentário