Página seguinte Página anterior Índice

5. Configuração dos vários programas

Se um cão bater à sua porta, não atenda, pois cão não bate à porta.

A maioria das aplicações que rodam no Unix usam algum tipo de arquivo de configuração que o usuário coloca em seu diretório de trabalho (home) e cujo nome normalmente é .alguma-coisarc. Tanto quanto possível, tentei evitar que isso fosse necessário, pois além de dar mais trabalho ao usuário (e ao administrador da rede ;-) pode dificultar um pouco as coisas. Por exemplo, aqui no CPMet temos o diretório home compartilhado entre um servidor Alpha rodando DEC UNIX com os PCs rodando Linux via NFS (até a maior parte do Linux está instalada no Alpha, os PCs só têm a partição raiz e uma área de swap). Os arquivos podem necessitar algum ajuste dependendo da plataforma e nem todos os programas possuem flexibilidade bastante para isso.

Uma opção que muitos programas também oferecem é especificar em uma variável de ambiente o nome do arquivo de configuração ou o uso de arquivos padrão que normalmente ficam em um diretório /usr/lib/alguma-coisa.

5.1 Bash (e todos os programas que utilizam a biblioteca GNU readline)

Para os programas que utilizam a biblioteca GNU readline para ler a linha de comando pode-se criar um arquivo .inputrc ou definir um arquivo de configuração global, informando seu nome às aplicações por meio da variável de ambiente INPUTRC.

Coloque uma linha no seu arquivo /etc/profile contendo

export INPUTRC="/etc/inputrc"

e crie um arquivo /etc/inputrc contendo

set meta-flag on
set convert-meta off
set output-meta on
$if term=vt100
   "\C-?":delete-char
$endif
$if term=xterm
   "\C-?":delete-char
$endif
$if term=xterm-color
   "\C-?":delete-char
$endif
"\e[1~":beginning-of-line
"\e[3~":delete-char
"\e[4~":end-of-line
"\e[5~":beginning-of-history
"\e[6~":end-of-history
"\e[7~":beginning-of-line
"\e[8~":end-of-line
"\e[\C-@":beginning-of-line
"\e[A":previous-history
"\e[B":next-history
"\e[C":forward-char
"\e[D":backward-char
"\e[E":beginning-of-line
"\e[H":beginning-of-line
"\eOH":beginning-of-line
"\e[F":end-of-line
"\eOF":end-of-line
"\e[e":end-of-line

Outra alternativa é criar um arquivo .inputrc no diretório home do usuário com o conteúdo acima, mas é muito difícil manter atualizados os arquivos de todos os usuários, principalmente quando eles são muitos.

A configuração mostrada acima permitirá usar as teclas de movimentação de cursor para percorrer o histórico de comandos (setas para cima e para baixo); ir para o primeiro e para o último comandos do histórico (teclas PageUp e PageDown); posicionar o cursor na linha (setas para a esquerda e direita) e posicionar o cursor no início e no fim da linha (teclas Home e End). Isso não tem nada a ver com acentuação, mas que facilita a vida, facilita!

Para maiores informações leia os manuais do bash e da biblioteca readline com os comandos

man bash
man readline

5.2 csh / tcsh (versão 6.04 ou superior)

Inclua as seguintes linhas no ficheiro /etc/profile, /etc/csh.login ou ~/.login:

export LANG=C
export LC_CTYPE=iso_8859_1

5.3 Joe

Invoque o joe com a opção -asis na linha de comando ou altere os arquivos de configuração para ativar tal opção. No Slackware eles estão no diretório /usr/lib/joe. Tudo que se precisa fazer é remover o espaço em branco que existe no início de cada linha.

Uma característica interessante do Joe é que ele é capaz de emular Pico, emacs e WordStar.

Uma outra alternativa é acrescentar a seguinte linha ao ficheiro /etc/profile :

alias joe='joe -asis'

Finalmente consegui fazê-lo usar as teclas Home e End para movimentar o cursor para o início e fim da linha! Um arquivo joerc está disponível em minha página pessoal, junto com este HOWTO.

5.4 Less

Coloque as seguintes linhas no seu arquivo /etc/profile:

export LESS="-MM -i"
export LESSCHARSET="latin1"
export LESSKEY="/etc/lesskey"
export LESSOPEN='|lesspipe.sh "%s"'

Para criar o arquivo /etc/lesskey, crie primeiro o arquivo /etc/lesskey.in contendo as seguintes linhas:

\e[1~   goto-line
\e[4~   goto-end
\e[5~   back-screen
\e[6~   forw-screen
\e[7~   goto-line
\e[8~   goto-end
\e[A    back-line
\e[B    forw-line
\eOH    goto-line
\eOF    goto-end
\e[H    goto-line
\e[F    goto-end
:n      next-file
:N      next-file
:p      prev-file

Depois ``compile-o'' usando o comando

# lesskey -o /etc/lesskey /etc/lesskey.in

Crie o arquivo /usr/bin/lesspipe.sh contendo

#!/bin/sh
# This is a preprocessor for 'less'.  It is used when this environment
# variable is set:   LESSOPEN="|lesspipe.sh %s"

case "$1" in
  *.rpm) rpm -qilp "$1" 2>/dev/null ;; # View contents of .rpm files
  *.tar) tar tvvf "$1" 2>/dev/null ;; # View contents of .tar and .tgz files
  *.tgz | *.tar.gz | *.taz | *.tar.Z | *.tar.z) tar tzvvf "$1" 2>/dev/null ;;
  *.tbz2 | *.tar.bz2) bzip2 -dc "$1" | tar tvvf - 2>/dev/null ;;
  *.Z) gzip -dc "$1"  2>/dev/null ;;
  *.z) gzip -dc "$1"  2>/dev/null ;;
  *.[1-9].gz | *.n.gz | *.man.gz)               # compressed groff src
    FILE=`file -Lz "$1" | cut -d ' ' -f 2`
    if [ "$FILE" = "troff" ]; then
      gzip -dc "$1" | groff -s -p -t -e -Tlatin1 -mandoc
    fi ;;
  *.gz) gzip -dc "$1"  2>/dev/null ;;
  *.zip) unzip -l "$1" 2>/dev/null ;;
  *.[1-9] | *.n | *.man)
    FILE=`file -L "$1" | cut -d ' ' -f 2`
    if [ "$FILE" = "troff" ]; then
      groff -s -p -t -e -Tlatin1 -mandoc "$1"
    fi ;;
#  *) FILE=`file -L "$1"` ; # Check to see if binary, if so -- view with 'strings'
#    FILE1=`echo "$FILE" | cut -d ' ' -f 2`
#    FILE2=`echo "$FILE" | cut -d ' ' -f 3`
#    if [ "$FILE1" = "Linux/i386" -o "$FILE2" = "Linux/i386" \
#         -o "$FILE1" = "ELF" -o "$FILE2" = "ELF" ]; then
#      strings "$1"
#    fi ;;
esac

Não esqueça de torná-lo executável:

chmod 755 /usr/bin/lesspipe.sh

Essa parte do lesspipe.sh também não tem nada a ver com acentuação, mas não deixa de ser útil. Para os curiosos a respeito da referência a ``*.rpm'', embora na máquina em questão se use Slackware, é possível ter o utilitário RPM instalado também, o que facilita tomar emprestados pacotes do Red Hat, Caldera, etc. Existe um RPM+Slackware Mini-HOWTO que explica como fazer isso.

5.5 ls

Acrescente a seguinte linha ao ficheiro /etc/profile :

alias ls="ls -N"
ou
alias ls="ls -b"

Se a sua distribuição de Linux usa o GNU ls (todas as que eu conheço usam) basta acrescentar ao arquivo /etc/profile ou .profile as seguintes linhas:

# -----------------------------------------
# Set up the color-ls environment variables
# -----------------------------------------
if [   "$SHELL" = "/bin/bash" -o \
       "$SHELL" = "/bin/sh" ]; then
   eval `dircolors -b`
elif [ "$SHELL" = "/bin/zsh" ]; then
   eval `dircolors -z`
elif [ "$SHELL" = "/bin/ash" ]; then
   eval `dircolors -s`
elif [ "$SHELL" = "/bin/ksh" -o \
       "$SHELL" = "/bin/pdksh" ]; then
   eval `dircolors -k`
elif [ "$SHELL" = "/bin/csh" -o \
       "$SHELL" = "/bin/tcsh" ]; then
   eval `dircolors -c`
else
   eval `dircolors -b`
fi

Se o seu shell é o csh ou tcsh, acrescente a seguinte linha ao arquivo /etc/csh.login ou ~/.login:

alias ls 'ls --color'

5.6 Man, groff, troff

Pode-se usar a opção de linha de comando -Tlatin1 para o groff, mas é mais simples colocar uma linha no seu arquivo /etc/profile contendo

export GROFF_TYPESETTER="latin1" 

Para maiores informações leia o manual do groff com o comando

man groff

5.7 Midnight Comander (mc)

No menu Options sub-menu Configuration ligue a opção 8 bit clean.

Esta informação deve estar desatualizada. Alguma alma caridosa pode fornecer uma mais atual?

5.8 Minicom

Coloque uma linha no seu arquivo /etc/profile contendo

export MINICOM="-m -c on" 

Isso permitirá usar a tecla Alt para ativar os comandos (exatamente como o Telix) e também usar cores. Para maiores informações, leia o manual do Minicom usando o comando

man minicom

Uma dica sobre o Minicom: eu não consegui fazê-lo usar corretamante a tecla Alt Quando rodando sob o xterm mas sim com o rxvt. Para isso há um script chamado xminicom que pode ser obtido em minha página pessoal. Há uma versão recente do Minicom traduzida para o português pelo pessoal da Conectiva, que pode ser obtida na página pessoal de Arnaldo Carvalho de Melo: http://www.conectiva.com.br/~acme.

5.9 nn

Acrescente a seguinte linha ao ficheiro ~/.nn/init:

Alô, alô, alguém usa nn? Informação mais atualizada será bem recebida.

set data-bits 8

5.10 Emacs

O pai de todos os editores pode ser configurado criando-se um arquivo chamado .emacs no diretório do usuário, contendo as seguintes linhas:

(set-input-mode nil nil 1)
(standard-display-european t)
(require 'iso-syntax)

Para tornar esta configuração global, coloque os comandos no arquivo /usr/lib/emacs/site-lisp/site-start.el Se ele não existir, crie-o. Se o estimado leitor, assim como eu, não se agrada do tratamento dado pelo Emacs às teclas de Delete, Home e End, aproveite a oportunidade e acrescente ao mesmo arquivo o seguinte:

(global-unset-key [backspace] )
(global-set-key [backspace] 'delete-backward-char)
(global-unset-key [delete] )
(global-set-key [delete] 'delete-char)
(define-key global-map [home] 'beginning-of-line)
(define-key global-map [C-home] 'beginning-of-buffer)
(define-key global-map [end] 'end-of-line)
(define-key global-map [C-end] 'end-of-buffer)

5.11 lemacs (lucid emacs)

Coloque no seu  /.emacs as linhas :

(load-file "/usr/lib/lemacs-19.27.1/lisp/x11/x-iso8859-1.el")
(load-file "/usr/lib/lemacs-19.27.1/lisp/x11/x-compose.el")

Esta informação está desatualizada. O Lucid Emacs já nem tem mais esse nome; agora se chama XEmacs. Os arquivos mencionados existem mas, pelo menos no teste que fiz, não obtive sucesso. Com certeza é algum problema na interface entre a cadeira e o teclado...

5.12 flex

Especifique a opção -8 se o parser a gerar necessitar de ler dados de 8 bit.

5.13 Pine e Pico

Para o Pine utilizar o conjunto de caracteres Latin 1, coloque uma linha no arquivo .pinerc, no diretório do usuário, contendo

character-set=ISO-8859-1

ou crie um arquivo geral de configuração contendo tal linha. Esse arquivo normalmente é /usr/local/lib/pine.conf ou /usr/lib/pine.conf

Para maiores informações leia o manual do pine com o comando

man pine

Ainda não consegui fazer nem o Pine nem o Pico usarem as teclas Home e End para movimentar o cursor para o início e fim da linha. Uma solução intermetiária seria mapear essas teclas para gerarem ^A e ^E, como era feito na versão original do mapa ABNT-2, mas isso atrapalhava outras aplicações, principalmente no X. Talvez a versão 4 do PINE trate melhor o problema, mas ainda nao a testei.

5.14 TeX, LaTeX

O pacote Babel, criado por Johannes Braams provê suporte a um grande número de línguas para o LaTeX. Normalmente apenas o suporte a separação silábica para Inglês e Alemão são carregados.

Para configurar a separação silábica no teTeX, execute o utilitário texconfig, que deve ser o programa /usr/lib/teTeX/bin/texconfig. Selecione a opção ``HYPHEN''. O editor de texto será carregado, para editar o arquivo /usr/lib/teTeX/texmf/tex/generic/config/language.dat. Procure uma linha que começa por %portuges e remova o %. Grave o arquivo e saia do editor. O texconfig atualizará diversos arquivos de configuração (não se assuste com a quantidade de mensagens que aparecerão na tela).

O editor carregado normalmente é o vi. Se o seu editor predileto for outro, crie uma variável de ambiente chamada EDITOR contendo o nome desse programa.

Normalmente a introdução de caracteres acentuados no texto exige o uso de seqüências de escape bastante trabalhosas. Para gerar um ``ö'' deve-se digitar \"o. Com babel pode-s digitar apenas "o, o que não deixa de ser inconveniente para ler o fonte do documento. Há um pacote chamado inputenc que permite especificar a codificação em que estão os caracteres de um documento. Lembre-se porém que se o seu documento for enviado para outro usuário que não possua o inputenc ele poderá não conseguir processá-lo, mas esse recurso já está disponível desde a liberação do LaTeX2e em dezembro 1994. Todas as distribuições de Linux atuais o incluem.

Para testar a nova configuração copie o seguinte trecho para um arquivo chamado, digamos, exemplo.tex:

\documentclass[a4paper,portuguese]{article}
\usepackage[latin1]{inputenc}
\usepackage{babel} 

\begin{document}
\title{Linux Portuguese-HOWTO}
\author{Carlos Augusto Moreira dos Santos}
\date{17 de julho de 1998}

\maketitle

\section{Introdução}

Este documento pretende ser um guia de referência de configuração do
\textbf{Linux} e seus programas, teclados e fontes de caracteres,
permitindo sua internacionalização/utilização confortável por pessoas
que falem a Língua Portuguesa.

\end{document}

Esse texto propositadamente contém uma palavra bastante longa para forçar a separação silábica. Ele está disponível no arquivo exemplo.tex em minha página pessoal. Para processá-lo, use o comando latex, conforme mostrado a seguir:

bash$ latex exemplo.tex
This is TeX, Version 3.14159 (C version 6.1)
(exemplo.tex
LaTeX2e <1996/06/01>
Hyphenation patterns for english, german, portuges, loaded.
(/usr/lib/teTeX/texmf/tex/latex/base/article.cls
Document Class: article 1996/05/26 v1.3r Standard LaTeX document class
(/usr/lib/teTeX/texmf/tex/latex/base/size10.clo))
(/usr/lib/teTeX/texmf/tex/latex/base/inputenc.sty beta test version
(/usr/lib/teTeX/texmf/tex/latex/base/latin1.def))
(/usr/lib/teTeX/texmf/tex/generic/babel/babel.sty
(/usr/lib/teTeX/texmf/tex/generic/babel/portuges.ldf
(/usr/lib/teTeX/texmf/tex/generic/babel/babel.def))) (exemplo.aux) [1]
(exemplo.aux) )
Output written on exemplo.dvi (1 page, 892 bytes).
Transcript written on exemplo.log.

A mensagem ``Hyphenation patterns for english, german, portuges, loaded.'' indica que a configuração foi bem sucedida. Se o seu computador está rodando o X Window System o documento formatado poderá ser visto com o comando

xdvi exemplo.dvi

Há uma lista de discussão brasileira de usuários de TeX/LaTeX, chamada TeX-BR, que roda no servidor de listas da FURG. Para entrar da lista mande um mail contendo apenas a palavra ``subscribe'' no corpo para tex-br-request@listas.furg.br. Esta lista é administrada por Rafael Rodrigues Obelheiro < obelix@biquinho.furg.br>.

Pode ser útil também um documento de exemplo para ter onde comecar. Pensando nisso, Klaus Steding-Jessen < jessen@ahand.unicamp.br> preparou um pequeno documento em Português com o objetivo de ser um guia ``by example'' para o usuário de LaTeX iniciante e intermediário, que pode ser obtido via WWW em http://www.ahand.unicamp.br/jessen/LaTeX/LaTeX-demo/.

5.15 Ispell

Dicionários para o Português de Portugal podem ser obtidos via WWW na página do Projecto Natura em http://www.di.uminho.pt/~jj/pln/pln.html. Para o Brasil, há uma versão compilada pelo Ueda: http://www.ime.usp.br/~ueda/.

Eu gostaria de poder colocar maiores informações, mas ainda não tenho conhecimento suficiente sobre o Ispell e não posso ensinar o que não sei. Preciso de ajuda aqui.

5.16 LyX

Para aqueles que acham trabalhoso escrever documentos para o LaTeX usando um simples editor de texto (e realmente é) LyX é uma excelente opção. Este programa cria uma interface gráfica através da qual editamos os documentos que serão depois formatados pelo LaTeX. O ambiente é quase-WYSIWYG (What You See Is What You Get - O que tu vês é o que tu obténs). LyX não roda apenas em Linux, mas em qualquer Unix. Maiores informações podem ser obtidas em

http://www.lyx.org

Tendo o LyX instalado, é muito fácil criar documentos com acentuação em Português. Seguindo as seguintes regras:

Para que o LyX consiga imprimir corretamente, é necessário que, ao criar um novo documento, sejam selecionados a língua e a codificação de caracteres adequadas. Crie um documento selecionando o menu File/New. Depois selecione o menu Layout/Document. Na caixa de diálogo ``Document Layout'' selecione no ítem Language a opção ``brazil'' ou ``portuges'' (sem o u mesmo); no ítem Encoding selecione ``latin1''.

Uma observação final sobre o LyX: até a versão 0.12 ele utiliza a biblioteca XForms para construir a interface com o usuário. Como essa biblioteca não tem suporte para acentuação, não é possível digitar letras acentuadas nas caixas de diálogo. Segundo os desenvolvedores, nas novas versões do LyX será possível escolher o tipo de interface ao compilar o programa, o que permitirá o uso de toolkits mais flexíveis. Já existe uma versão de LyX portada para o KDE por Matthias Ettrich -- autor original do LyX -- e Kalle Dalheimer, chamada KLyX. Para maiores informações, consulte via WWW: http://www-pu.informatik.uni-tuebingen.de/users/ettrich/.

5.17 Fortune

Fortune é aquele programa que toda vez que é invocado apresenta uma pequena mensagem, geralmente bem humorada. Ele é inspirado nos biscoitos da fortuna chineses (em inglês fortune cookies, daí o nome). Eis algumas mensagens típicas:

dROGA!!oNDE ESTA O cAPSLOCK??

Mouse não encontrado, bater no gato? (S/N)

Que fio é ess<=V++088.../NO CARRIER

Quem ri por último está conectado a 2400Bit/s.

Tudo que o programa faz é escolher aleatoriamente uma mensagem em um repositório mantido no diretorio /usr/games/fortunes. Neste diretório existem diversos arquivos com as ``fortunas'' e um arquivo índice para cada um deles, que possui a extensão .dat. O formato dos arquivos é muito simples: cada fortuna é composta de uma série de linhas de texto. As fortunas são separadas umas das outras por linhas contendo apenas um caracter %. Veja o trecho a seguir:

O que são quatro pontos na parede? Four migas. Ugh!
%
Errar é humano, botar a culpa no computador é mais humano ainda.
%
Aí ela me disse: Ou eu ou o modem! Sinto muitas saudades dela...

Tudo que temos a fazer é criar um arquivo com as fortunas chamado, digamos fortunes com o formato descrito acima. Depois basta usar o programa strfile para gerar o índice:

strfile fortunes

e um arquivo chamado fortunes.dat será criado. Claro que se quisermos que o fortune mostre apenas mensagens em Português, teremos que remover os arquivos existentes no diretório /usr/games/fortunes. Sugiro simplesmente renomeá-lo para fortunes-en (de English) e criar outro vazio. Eu coletei algumas fortunas e as coloquei no arquivo fortunes-pt.tar.gz que pode ser obtido em minha página pessoal. Não esqueça de colocar no seu /etc/profile algumas linhas contendo uma chamada ao fortune, por exemplo

# ----------------------------------------------------------------------
# Send a funny message...
# ----------------------------------------------------------------------
if { -x /usr/games/fortune -a ! -e $HOME/.hushlogin }; then
   echo
   /usr/games/fortune
   echo
fi

Uma última informação: se o nome de um arquivo termina com o sufixo -o o fortune só o consulta se for chamado com a opção -o. Esses arquivos são os que contém mensagens cujo conteúdo pode ser considerado ofensivo por algumas pessoas, tais como

Só não mando a sogra pro inferno, com pena do Diabo.

Claro que existem coisas muito mais ofensivas por aí, mas este é um Linux-HOWTO e não queremos realmente ofender ninguém, certo?


Página seguinte Página anterior Índice