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:
Isto corrige o console. Para acertar o xterm:
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).