próximo acima anterior sumário índice
Next: ls(1) Up: Configuração de Software Previous: Configuração de Software   Sumário   Índice Remissivo

bash(1)

Para se adaptar o comportamento do interpretador de comandos bash, estes são os principais arquivos a serem editados:

Exemplos destes arquivos são mostrados a seguir. Primeiro e mais importante: /etc/profile. É usado para configurar muitas características de uma máquina Linux, como se pode ver nas seguintes seções:


# /etc/profile
# Ambiente global do sistema e programas de inicialização
# Funções e apelidos são definidos em /etc/bashrc
#
# Este arquivo estabelece as seguintes características:
#
#   o caminho
#   o indicador da linha de comandos
#   algumas variáveis de ambiente
#   as cores do comando ls
#   o comando less
#
# Os usuários podem alterar estas configurações e/ou 
# acrescentar outras nos  arquivos $HOME/.bash_perfil
#
# estabelecendo um caminho adequado

echo $PATH | grep X11R6 > /dev/null
if [ $? = 1 ] ; then   # adicionando entradas ao PATH
  PATH="$PATH:/usr/X11R6/bin:$HOME/bin:."
fi

# notificar o usuário: ambiente ou ausência de um nos acessos. 
# Caso haja um interpretador de comandos, então o 
# indicador será azul; senão será magenta. 
# O indicador de superusuário será vermelho.

USER=`whoami`
if [ $LOGNAME = $USER ] ; then
  COLOUR=44
else
  COLOUR=45
fi

if [ $USER = 'root' ] ; then
  COLOUR=41
fi

# utilizar um caracter de fuga real ao invés de ^[. 
# Para fazer isto:
# emacs: ^Q ESC   vi: ^V ESC   joe: ` 0 2 7   jed: ` ESC
# Remover `;1' caso não se queira utilizar "negrito".
ESC=^[
PS1='$ESC[$COLOUR;37;1m$USER:$ESC[37;40;1m\w\$ '
PS2="Continue> "

# por favor, sem arquivos de erro de kernel

ulimit -c 0   

# configurando a umask

if [ `id -gn` = `id -un` -a `id -u` -gt 14 ]; then
  umask 002
else
  umask 022
fi

# algumas variáveis
USER=`id -un`
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"
EDITOR=jed
HOSTNAME=`/bin/hostname`
HISTSIZE=1000
HISTFILESIZE=1000
export PATH PS1 PS2 USER LOGNAME MAIL EDITOR HOSTNAME \ 
       HISTSIZE HISTFILESIZE

# comando ls em cores

eval `dircolors /etc/DIR_COLORS -b`
export LS_OPTIONS='-F -s -T 0 --color=tty'

# personalizar o less

LESS='-M-Q'
LESSEDIT="%E ?lt+%lt. %f"
LESSOPEN="| lesspipe.sh %s"
VISUAL=jed
LESSCHARSET=latin1
export LESS LESSEDIT LESSOPEN VISUAL LESSCHARSET

for i in /etc/profile.d/*.sh ; do
  if [ -x $i ]; then
    . $i
  fi
done

Este é uma exemplo do arquivo /etc/bashrc:


# /etc/bashrc
# Sistema de funções amplas e nomes alternativos
# Itens ambientais entram em /etc/profile

alias which="type -path"
alias d="ls"
alias dir="d"

Este é um exemplo do arquivo .bashrc:


# $HOME/.bashrc
# Fonte de definições globais 

if [ -f /etc/bashrc ]; then
  . /etc/bashrc
fi

# isto é necessário para notificar o usuário que ele está em um 
# ambiente de trabalho sem acesso à execução de comandos

if [ "$GET_PS1" = "" ] ; then
  COLOUR=45

# colocar um caracter de saída real ao invés de ^[
  ESC=^[
  PS1='$ESC[$COLOUR;37m`whoami`:$ESC[37;40m\w\$ '
  export PS1
fi

# Nomes alternativos

alias cp='cp -i'
alias l=less
alias lyx='lyx -width 900 -height 700'
alias mv='mv -i'
alias rm='rm -i'
alias x=startx

# Algumas funções úteis

inst()        # Instalar um arquivo .tar.gz no diretório atual.
{ gzip -dc $1 | tar xvf - }

lz()          # Listar o conteúdo de um arquivo .zip.
{ unzip -l $* }

lgz()        # Listar o conteúdo de um arquivo .tar.gz.
{
  for file in $* ; do
    gzip -dc ${file} | tar tf -
  done
}

tgz()        # Criar um arquivo .tgz com zip
{
  name=$1 ; tar -cvf $1 ; shift
  tar -rf ${name} $*
  gzip -S .tgz ${name}
}

Este é um exemplo do arquivo .bash_profile:


# $HOME/.bash_profile
# Uso de variáveis específicas e programas de inicialização
# Este arquivo contém configurações definidas pelo usuário 
# que alteram aquelas presentes em /etc/profile

# Obtendo os nomes alternativos e as funções

if [ -f ~/.bashrc ]; then
# não altera as cores do indicador de linha de comandos
  GET_PS1="NO"  
  . ~/.bashrc
fi
    
# estabelecendo alguns diretórios `padrões'
# exemplos que devem ser adaptados ao sistema do usuário 

export CDPATH="$CDPATH:$HOME:$HOME/texto:$HOME/texto/geologia"

# arrumando a tecla de retorno do rxvt 2.45
if [ "$COLORTERM" != "" ] ; then
  stty erase ^?
  ESC=^[             # usa um caracter real de fuga ao invés de ^[
  echo -n "$ESC[36l"
fi

Este é um arquivo de exemplo do .inputrc:


# $HOME/.inputrc

# chaves de ligação
"\e[1~": início de linha
"\e[3~": apagar caracter
"\e[4~": fim de linha
# (F1 .. F5) são "\e[[A" ... "\e[[E"
"\e[[A": "info \C-m"

set bell-style visible          # sem som
set meta-flag On                # permite entradas de 8-bits (ou seja
                                # caracteres acentuados)
set convert-meta Off            # não separa caracteres de 8 bits
set output-meta On              # lista caracteres de 8 bits corretamente
set horizontal-scroll-mode On   # rola linhas de comandos longos
set show-all-if-ambiguous On    # após TAB ser pressionado

Para fazer as teclas de retorno e apagar funcionarem corretamente em xterm e outros aplicativos X11, faz-se necessária a aplicação do seguinte roteiro:

rxvt é um pouco mais complicado, já que algumas das opções em tempo de compilação alteram o seu comportamento. Vide o .bash_profile acima.

Mais informações podem ser encontradas nas páginas de manual on-line de bash(1) e readline(3).


próximo acima anterior sumário índice
Next: ls(1) Up: Configuração de Software Previous: Configuração de Software   Sumário   Índice Remissivo
Cyro Mendes de Moraes Neto 1999-12-30