BASH
*******************************************************************************
Configurar o bash no Debian 4.0 (Etch)
Criado por: Alessandro C. M. Kuramoto
Data: 15/08/2009
Modificado em: 10/04/2010-08:00
v.20100410-08:00
Por favor, matenham o nome do autor deste arquivo.
*******************************************************************************
###############################################################################
# Avisos!!!
###############################################################################
http://memovirtual.worpress.com
## Atenção no site memovirtual:
## As opções passadas com – - (menos,menos) no site podem ter ficado
## com um — (travessão), assim use o “man” para confirmar a opção utilizada
## Desculpem-me pelos erros de português, mas vocês sabem…
## nossa lingua é fácil… e às vezes ao escrever o pensamento está
## lá na frente, enquanto que a digitação…
|##########^ Avisos!!! #######################################################|
###############################################################################
# Temp:
###############################################################################
VER:
http://www.guiafoca.org/guia/avancado/ch-pers.html
Tratando as variáveis do Shell:
export PS1=’\[\e[1;31m\]\u@\h\[\e[0m\] \[\e[1;34m\]\w\[\e[0m\] \$ ‘
### Sintoma:
1. Ao executar o comando . .bashrc aparece a mensagem de erro:
-sh: `_debconf-show’: not a valid identifier
2. E, ao logar não carrega as variáveis corretamente.
### Erro:
-sh: `_debconf-show’: not a valid identifier
### Causa:
O Shell padrão do usuário era /bin/sh
### Solução:
Foi mudado para /bin/bash
|##########^ Temp ############################################################|
###############################################################################
# Conceitos:
###############################################################################
(Fonte: http://hacktux.com/bash/bashrc/bash_profile)
When BASH is invoked as a login shell, the following files are executed in the displayed order.
1. /etc/profile
2. ~/.bash_profile
3. ~/.bash_login
4. ~/.profile
Although ~/.bashrc is not listed here, most default ~/.bash_profile scripts run ~/.bashrc.
===============================================================================
Explicação Sobre os Arquivos Principais do BASH:
===============================================================================
.bashrc:
(Fonte: http://hacktux.com/bash/bashrc/bash_profile)
- The ~/.bashrc file gets executed when you run bash using an interactive shell that is not a login shell.
(Fonte: http://www.guiafoca.org/guia/avancado/ch-pers.html#s-pers-bashprofile)
Este arquivo reside no diretório pessoal de cada usuário. É executado por shells que usam autenticação (nome e senha). .bash_profile contém comandos que são executados para o usuário no momento do login no sistema após o /etc/profile. Note que este é um arquivo oculto pois tem um “.” no inicio do nome.
Por exemplo colocando a linha: alias ls=’ls –colors=auto’ no .bash_profile, cria um apelido para o comando ls –colors=auto usando ls, assim toda vez que você digitar ls será mostrada a listagem colorida.
.bash_profile:
(Fonte: http://hacktux.com/bash/bashrc/bash_profile)
The ~/.bash_profile only gets executed during a login shell
|==========^ Explicação Sobre os Arquivos Principais do BASH =================|
|<<<<<<<<<<<<<< #### Conceitos ####
|##########^ Conceitos #######################################################|
###############################################################################
# Variáveis Padrões de Ambiente:
###############################################################################
EDITOR — serve para definir o editor de texto padrão;
Exemplo: export EDITOR=’/usr/bin/vim’
|##########^ Variáveis Padrões de Ambiente ###################################|
===============================================================================
Modificando o tratamento do history:
====================================
### Aumentando o tamanho do history:
## Aumenta o tamanho do history corrente (na memória)
export HISTSIZE=20000
## Aumenta o tamanho do arquivo de ~/.bash_history
export HISTFILESIZE=20000
# (Fonte: http://www.dicas-l.com.br/dicas-l/20090604.php)
###Adicionando data e hora ao history:
## Setar a variável HISTTIMEFORMAT:
export HISTTIMEFORMAT=”%F %T “
|=== ^Modificando o tratamento do history:====================================|
===============================================================================
(Fonte: http://aurelio.net/shell/canivete.html#cores)
Código de Cores ANSI:
echo -e ‘\e[31;1m Vermelho Negrito \e[m'
echo -e '33[31;1m Vermelho Negrito 33[m'
echo -e '\e[41;37;1m O \\e[ - Comeca, 41 - Fundo Vermelho, 37 - Letra branca, 1 - Negrito \e[m Normal'
Cor Letra (3x) Fundo (4x) Atributo Valor Exemplos: ESC [ <N>;<N> m
Preto 30 40 Reset 0 ESC[m texto normal (desliga cores)
Vermelho 31 41 Negrito 1 ESC[1m negrito
Verde 32 42 Sublinhado 4 ESC[33;1m amarelo
Amarelo 33 43 Piscando 5 ESC[44;37m fundo azul, letra cinza
Azul 34 44 Reverso 7 ESC[31;5m vermelho piscando
Rosa 35 45 Na linha de comando:
Ciano 36 46 echo -e '\e[33;1m amarelo \e[m'
Branco 37 47 echo -e '33[33;1m amarelo 33[m'
===============================================================================
###############################################################################
# Modificando as Variáveis de Ambiente:
###############################################################################
Modificando as variáveis de ambiente padrão:
===============================================================================
Modificando a variável PS1 do Debian no .bashrc:
===============================================================================
## O arquivo /etc/bashrc normalmente contém funções e aliases
## O arquivo ~/.bashrc normalmente contém funções e aliases e é individual para
## cada usuário, repare no til "~", que significa: o diretório do usuário logado
_______________________________________________________________________________
Arquivo: /home/usuario/.bashrc (Permissões: -rw-r--r-- 1 usuario usuario)
Debian 4.0 Etch
--------------------------------------------------------------------------
.
..
...
# set a fancy prompt (non-color, unless we know we "want" color)
#case "$TERM" in
#xterm-color)
# PS1='${debian_chroot:+($debian_chroot)}\[33[01;32m\]\u@\h\[33[00m\]:\[33[01;34m\]\w\[33[00m\]\$ ‘
# ;;
#*)
# PS1=’${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ‘
# ;;
#esac
#### Para o conteúdo da variável PS1 ficar colorido:
# Comment in the above and uncomment this below for a color prompt
PS1=’${debian_chroot:+($debian_chroot)}\[33[01;32m\]\u@\h\[33[00m\]:\[33[01;34m\]\w\[33[00m\]\$
#### Em caso de acesso pelo console, por exemplo: gnome-terminal e para aparecer
#### o nome na barra de título ou na aba defina a variável PROMPT_COMMAND:
## (Fonte: http://www.faqs.org/docs/Linux-mini/Xterm-Title.html)
## Testado no Debian
# If this is an xterm set the title to user@host:dir
case “$TERM” in
xterm*|rxvt*)
PROMPT_COMMAND=’echo -ne “33]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}07″‘
;;
*)
;;
esac
…
..
.
|———-^ Arquivo: /home/usuario/.bashrc ———————————-|
_______________________________________________________________________________
Arquivo: /home/usuario/.bashrc (Permissões: -rw-r–r– 1 usuario usuario)
Debian 5.0 Lenny
————————————————————————–
.
..
…
# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
force_color_prompt=yes
#### Em caso de acesso pelo console, por exemplo: gnome-terminal e para aparecer
#### o nome na barra de título ou na aba defina a variável PROMPT_COMMAND:
case “$TERM” in
xterm*|rxvt*)
## Original:
#PS1=”\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1″
PS1=”\[\e]0;${debian_chroot:+($debian_chroot)}\h: \u \w\a\]$PS1″
;;
*)
…
..
.
|———-^ Arquivo: /home/usuario/.bashrc ———————————-|
_______________________________________________________________________________
Arquivo: /etc/bash.bashrc (Permissões: -rw-r–r– 1 root root)
Debian 4.0 Etch
————————————————————————–
.
..
…
# set a fancy prompt (non-color, overwrite the one in /etc/profile)
#PS1=’${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ‘
PS1=’\[\e[1;31m\]\u@\h\[\e[0m\] \[\e[1;34m\]\w\[\e[0m\] \$
…
..
.
|—————————————————————————–|
###############################################################################
# Histórico de Comando no Bash:
###############################################################################
## Adicionar o histórico em memória ao arquivo .bash_history
history -a
HISTCONTROL=ignoreboth
(Fonte: http://www.ducea.com/2006/05/15/linux-tips-take-control-of-your-bash_history/)
|<<<<<<<<<<<<<< #### Histórico de Comando no Bash ####
===============================================================================
Histórico com Data e Horário no Bash
===============================================================================
Essa dica é bem legal em ambientes onde mais de um administrador têm acesso aos servidores linux. Muitas vezes queremos saber quando determinado comando foi rodado ou alguma alteração realizada e na maioria das vezes utilizamos o comando history para isso.
Basta colocar no /etc/profile:
readonly HISTTIMEFORMAT=”%d/%m/%Y as %T -> “
export HISTTIMEFORMAT
Neste caso a variavel fica como “somente leitura” e os usuarios da maquina nao poderão muda-la. Se quiserem deixar aberta basta tirar o “readonly” da declaração da variavel
(Fonte: http://www.dicas-l.com.br/dicas-l/20070527.php)
|<<<<<<<<<<<<<< #### Histórico de Comando no Bash ####
|<<<<<<<<<<<<<< ==== Histórico com Data e Horário no Bash ====
export HISTTIMEFORMAT=”%F %T “
HISTTIMEFORMAT=”%d/%m/%Y %H:%M:%S ”
HISTTIMEFORMAT=”%c # ”
(Fonte: http://tarzxvf.com/bash_history-com-data)
|==========^ Histórico com Data e Horário no Bash ============================|
|<<<<<<<<<<<<<< #### Histórico de Comando no Bash ####
|##########^ Histórico de Comando no Bash ####################################|
###############################################################################
# Troubleshooting
###############################################################################
>Troubleshooting
——————————————————————————-
### Erros conhecidos:
## Questão/ Problema: (Question/Issue)
Caso a variável PROMPT_COMMAND continue vazia.
## Sintoma: (Symptoms)
- O nome da máquina, por exemplo, não apareceu na barra de título;
- Ao executar o comando: echo $PROMPT_COMMAND, a variável continua
vazia;
## Causa: (Cause)
Provavelmente o Shell utilizado não seja o Bash.
## Solução: (Solution)
Verifique no arquivo /etc/passwd ou com o comando: echo $SHELL se o
Shell utilizado é o /bin/bash, caso não seja, faça o ajustes
necessários.
|—————————————————————————–|
|##########^ Troubleshooting #################################################|
###############################################################################
# Referências:
###############################################################################
>Referências
http://www.dicas-l.com.br/dicas-l/20000817.php
http://www.vivaolinux.com.br/artigo/Otimizando-o-controle-e-a-digitacao-de-comandos-no-shell/?pagina=3
Canivete Suiço SHELL:
http://aurelio.net/shell/canivete.html
http://www.faqs.org/docs/Linux-mini/Xterm-Title.html
|##########^ Referências #####################################################|