Perfil bash no OS X
Um amigo meu sugeriu que eu escrevesse um artigo sobre como organizo meu perfil bash no Mac OS X. Eis aqui!
No OS X, assim como em qualquer sistema Unix-like, o bash lê o perfil basicamente de dois arquivos: /etc/profile e ~/.bash_profile (em muitos sistemas o /etc/profile carrega todos os scripts executáveis em /etc/profile.d/).
Só que deixar todas as configurações em um único arquivo pode torná-lo confuso. Para resolver esse problema, fiz o seguinte: criei um diretório ~/bin/profile e coloquei um código no ~/.bash_profile que carrega todos os scripts executáveis desse diretório.
O trecho de código é o seguinte:
for script in $HOME/bin/profile/*.sh
do
if [[ -x "$script" ]]
then
. "$script"
fi
doneExemplo
Como exemplo, um de meus arquivos é o que ajusta as cores do terminal.
No OS X, o
LSCOLORS é uma string de onze pares de caracteres. O primeiro carácter do par é a cor de frente (foreground) e o segundo a cor de fundo (background).Os onze pares são em ordem:
- cores para diretório
- cores para ligação simbólica (symlink)
- cores para soquete
- cores para pipe
- cores para arquivo executável
- cores para arquivo especial de bloco
- cores para arquivo especial de carácter
- cores para executável com o bit
setuidajustado - cores para executável com o bit
setgidajustado - diretório gravável por outros, com stick bit ajustado
- diretório gravável por outros, sem stick bit ajustado
Os caracteres usados para ajustas as cores de cada parte (frente e fundo) de cada par são:
xo valor pré-definidoapretobvermelhocverdedmarromeazulfmagentagcianohcinza
As mesmas letras em maiúsculas significam negrito.
Por exemplo, meu
LSCOLORS é assim:LSCOLORS=ExGxFxFxCxegedabagacadTraduzindo:
- Diretório
Ex: frente azul em negrito, fundo padrão - Ligação simbólica
Gx: frente ciano em negrito, fundo padrão - Soquete
Fx: frente magenta em negrito, fundo padrão - Pipe
Fx: idem ao anterior - Executável
Cx: frente verde em negrito, fundo padrão - Especial de bloco
eg: frente azul, fundo ciano - Especial de carácter
edfrente azul, fundo marrom - Executável com
setuidab: frente preta, fundo vermelho - Executável com
setgidag: frente preta, fundo ciano - Diretório gravável por outros com stick bit
ac: frente preta, fundo verde - Diretório gravável por outros sem stick bit
ad: frente preta, fundo marrom
Mas é preciso ajustar também a variável de ambiente
CLICOLOR e exportar tudo.No final fica assim:
#-----------#
# LS colors #
#-----------#
LSCOLORS=ExGxFxFxCxegedabagacad
CLICOLOR=1
export CLICOLOR LSCOLORS
alias l='ls -lh -G'Fazendo funcionar
Para fazer funcionar, o arquivo precisa ser executável. Meu arquivo de cores chama
~/bin/profile/colors.sh, portanto:bash$ chmod +x ~/bin/profile/colors.shOutro exemplo
Outro exemplo é o arquivo que torna o Vim o editor padrão:
#-----#
# Vim #
#-----#
if [[ -z "$DISPLAY" ]]
then
EDITOR='/Applications/MacVim.app/Contents/MacOS/Vim'
else
EDITOR='/Applications/MacVim.app/Contents/MacOS/Vim -g --nofork'
fi
export EDITORVeja que a graça da brincadeira é a modularização, que deixa configurações de coisas diferentes em arquivos diferentes e configurações da mesma coisa encapsuladas.
**
Fica então mais esta dica!
[]’s
Cacilhας, La Batalema
