.bashrc personalizado (colorido)

Se você é daqueles que não usa Linux por achar a “tela preta” (console/terminal) muito chata, complicada e sem vida, que tal deixar ela mais atraente aos olhos e claro, se empolgar para usar o Linux em modo console heim?

A dica de hoje é editar o .bashrc deixando ele colorido e colocando algumas novas funções. Não vou aprofundar e explicar o que é o arquivo .bashrc, o máximo que vou dizer é que esse arquivo fica na sua pasta de usuário ou seja

/home/usuário/.bashrc

ou simplesmente

~/.bashrc

. O Arquivo traz um ponto antes de seu nome, por ser um arquivo oculto. Dizendo a grosso modo, quando você se “loga” no sistema pelo console (ou mesmo o gnome-terminal) ele executa esse arquivo para ver suas variáveis de usuários, assim com alias de comandos, e várias outras definições, é nele que podemos editar a variável PS1, ela é a responsável por mostrar no seu terminal:

thiago@hostname:~ >

Essa variável pode ser editável, deixando ela colorida, mostrar ou ocultar opções, entre outras coisas, para saber mais sobre o .bashrc recomendo uma pesquisa no google, me limitarei aqui a mostrar como configurar ele, e deixa-lo colorido:

– Nas imagens abaixo estou usando o gnome-terminal como exemplo. Repare como esta sem graça, tudo branco.


Vamos deixar ele colorido, com a PS1 padrão que vem no Ubuntu 12.04, para isso abra seu arquivo .bashrc

$ vi ~/.bashrc

procure pela linha “force_color_prompt” descomente ela e marque como yes. Salve e saia do arquivo com <esc> :wq

Você pode deslogar (fechar o terminal) e logar novamente ou simplesmente abrir uma nova sessão do bash para ver como ficou usando o comando $ bash

As cores padrões são o verde para nome de usuário e hostname e o azul para pastas.
Para não perder muito tempo, eu criei um arquivo novo chamado bashrcNew, fiz um bashrc novinho, criando algumas variáveis para cores, e alguns aliases para os comandos que uso mais, segue o fonte de meu arquivo bashrc:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# *********************************************
# * ~/.bashrc Personalizado para Ubuntu       *
# * System: Ubuntu 12.04 – Precise Pangolin   *
# * local: /home/user/.bashrc                 *
# *                                           *
# * Author: Thiago Nalli Valentim             *
# * E-Mail: [email protected]            *
# * Date: 2012-05-24                          *
# *********************************************
# ======================================================================
# Adaptado do original de Edinaldo P. Silva para Arch Linux
# ======================================================================
#-----------------------------------------------
# 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 vim /etc/apt/sources.list'
# atualizar o apt-get
alias upd='sudo apt-get update'
# Reparar o apt-get
alias aptrepair='sudo apt-get -f install'
# Reparar o dpkg
alias dpkgrepair='sudo dpkg --configure -a'
#==============================================
# Aliases para uso no dia-a-dia e testes
#==============================================
# Testar conexão com ping
alias google='ping -t 3 www.google.com.br' # Ping ao google a cada 3 segundos
alias uol='ping -t 3 www.uol.com.br' # Ping ao UOL a cada 3 segundos

após criar o seu novo, faça o backup do antigo e substitua pelo novo arquivo que criou. Pode se usar o comando cp (copy) ficando assim:

$ cp .bashrc .bashrc.old
$ cp bashrcNew .bashrc

não esqueça do ponto antes do nome.

As cores que você pode usar são essas:

Cores no bash

Esse é como ficou o meu, e um amigo de trabalho disse que é um “bash Restart” referencia aquela bandinha EMO toda colorida sabe. 🙂

Deixei o usário comum, com cores diferente do usuário root, o mesmo arquivo .bashrc copiei para a pasta /root e para minha home de usuário /home/thiago por isso no meu código você encontra a linha que verifica se é o usuário root

if [ $UID -eq "0" ]; then
Rolar para cima