Vamos personalizar os seguintes arquivos: /etc/profile /etc/bashrc ,.bashrc
, .bash_profile, .inputrc, .less, .lessrc, .xinitrc, .fvwmrc, .fvwm2rc95
, .Xmodmap, .Xdefaults, .jedrc., .abbrevs.sl, .joerc e .emacs
. Novos usuários não devem ser acrescentados até que se tenha completada a configuração do sistema. Os arquivos dot serão colocados em /etc/skel.
bash
(1)
Para se adaptar o comportamento do interpretador de comandos bash
, estes são os principais arquivos a serem editados:
$HOME/.bashrc
: contém nomes alternativos de usuários e funções;
$HOME/.bash_profile
: contém itens de ambiente do usuário e programas de inicialização;
$HOME/.inputrc
: contém as chaves de ligações e outros bits.
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 caractere 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 GET_PS1="NO" # não altera as cores do indicador de linha de comandos . ~/.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 a tecla TAB ser pressionada
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:
.xinitrc
:
usermodmap=$HOME/.Xmodmap
xmodmap $usermodmap
.Xmodmap
:
keycode 22 = BackSpace
keycode 107 = Delete
Isto corrige o console. Para acertar o xterm
:
.Xdefaults
:
xterm*VT100.Translations: #sobrepõem-se a <Key>BackSpace: string(0x7F)\n\
<Key>Delete: string(0x1b) string("[3~")\n\
<Key>Home: string(0x1b) string("[1~")\n\
<Key>End: string(0x1b) string("[4~")\n\
Ctrl<Key>Prior: string(0x1b) string("[40~")\n\
Ctrl<Key>Next: string(0x1b) string("[41~")
nxterm*VT100.Translations: # sobrepõem-se a <Key>BackSpace: string(0x7F)\n\
<Key>Delete: string(0x1b) string("[3~")\n\
<Key>Home: string(0x1b) string("[1~")\n\
<Key>End: string(0x1b) string("[4~")\n\
Ctrl<Key>Prior: string(0x1b) string("[40~")\n\
Ctrl<Key>Next: string(0x1b) string("[41~")
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).
ls
(1)
O ls
pode mostrar uma lista de diretórios usando cores para realçar os diferentes tipos de arquivos. Para capacitar estas características, acrescente as seguintes linhas ao arquivo /etc/profile:
eval `dircolors /etc/DIR_COLORS -b`
export LS_OPTIONS='-F -T 0 --color=tty'
(Caso o arquivo /etc/DIR_COLORS
não exista, deve ser removida a referência a ele na primeira linha). Isto estabelece a variável de ambiente LS_COLORS
que contém a lista de cores configurada em /etc/DIR_COLORS
.
Nota: isto não funciona com versões do rxvt
anteriores à 2.21. Ao invés disso pode ser usado o xterm
. Parece que rxvt
tem um problema, que não permite herdar o ambiente corretamente em algumas circunstâncias.
O ls
da Caldera não tem cores, mas há um equivalente color-ls
, que pode ser acrescentado ao arquivo /etc/bashrc:
alias ls="color-ls $LS_OPTIONS"
less
(1)
Com este excelente paginador é possível folhear não apenas arquivos de texto puro, mas também arquivos compactados no formato gzip, arquivos zip e tar, páginas do manual e o que mais se tiver. Sua configuração envolve alguns passos:
.lesskey
no diretório pessoal do usuário:
^[[A back-line
^[[B forw-line
^[[C right-scroll
^[[D left-scroll
^[OA back-line
^[OB forw-line
^[OC right-scroll
^[OD left-scroll
^[[6~ forw-scroll
^[[5~ back-scroll
^[[1~ goto-line
^[[4~ goto-end
^[[7~ goto-line
^[[8~ goto-end
e executar-se o comando lesskey
. Isto criará um arquivo binário .less
contendo as construções de teclas.
#!/bin/sh # Este é um pré-processador para "less". É usado quando a variável de ambiente # estiver configurada da seguinte forma: LESSOPEN="|lesspipe.sh %s" lesspipe() { case "$1" in *.tar) tar tf $1 2>/dev/null ;; # verifica o conteúdo de arquivos .tar e .tgz *.tgz|*.tar.gz|*.tar.Z|*.tar.z) tar ztf $1 2>/dev/null ;; *.Z|*.z|*.gz) gzip -dc $1 2>/dev/null ;; # verifica arquivos comprimidos *.zip) unzip -l $1 2>/dev/null ;; # verifica arquivos comprimidos *.arj) unarj -l $1 2>/dev/null ;; *.rpm) rpm -q -p -i -l $1 2>/dev/null ;; *.cpio) cpio --list -F $1 2>/dev/null ;; *.1|*.2|*.3|*.4|*.5|*.6|*.7|*.8|*.9|*.n|*.man) FILE=`file -L $1` FILE=`echo $FILE | cut -d ' ' -f 2` if [ "$FILE" = "troff" ]; then groff -s -p -t -e -Tascii -mandoc $1 fi ;; *) file $1 | grep text > /dev/null ; if [ $? = 1 ] ; then # não é um arquivo texto strings $1 fi ;; esac } lesspipe $1
chmod 755 lesspipe.sh
.
LESS="-M-Q" # comando longo, silêncio
LESSEDIT="%E ?lt+%lt. %f" # editar a linha superior
LESSOPEN="| lesspipe.sh %s" # filtro
VISUAL=jed # editor padrão---inserir o favorito
LESSCHARSET=latin1 # mostrar as letras acentuadas, se necessário
export LESS LESSEDIT LESSOPEN VISUAL LESSCHARSET
A variável LESSCHARSET
depende do fato de eu morar na Itália e querer usar o caractere ISO 8859/1. Aos companheiros americanos, japoneses, russos, etc. não aconselho o seu uso.
emacs
(1)
Não uso o emacs
, por isso tenho somente um conselho para dar. Algumas distribuições do emacs
não vêm pré-configuradas para cores e realce de sintaxe. Deve-se então inserir o seguinte no arquivo .emacs
:
(global-font-lock-mode t)
(setq font-lock-maximum-decoration t)
Isto funciona somente no X11. Deixo para o usuário a tarefa de examinar a documentação do emacs
para descobrir como adaptá-la às suas necessidades -- potencialmente isso pode levar meses de programação...
joe
(1)
Algumas pessoas relataram que o editor joe
funciona com cores em X11, mas não em terminais tty. Além disso, algumas teclas especiais não funcionam. Até onde eu saiba, ninguém descobriu a solução para o pequeno incômodo anterior.
Caso este seja um problema para o leitor, uma solução rápida e deselegante, é a seguinte:
~$ export TERM=vt100
~$ joe arquivo (edita o arquivo)
~$ export TERM=linux
jed
(1)
Este é o meu editor favorito: ele faz o que eu preciso, é mais leve e mais fácil de configurar que o emacs
e em minha opinião emula outros editores superiores. Muitos usuários em minha universidade querem jed
para emular o EDT
, o editor de sistemas VMS.
Os arquivos de configuração do jed
são chamados .jedrc
e
/usr/lib/jed/lib/*; o anterior pode ser adaptado de jed.rc
.
jed
use as teclas especiais corretamente, deve-se gravar o arquivo /usr/lib/jed/lib/padrões.sl cuja única linha é:
() = evalfile("linux");
Info_Directory = "/usr/info";
e
acrescentar /bin/mail
após UCB_Mailer =
;
jed
emule o EDT
(ou outros editores)
há que se editar algumas linhas do .jedrc
. Caso se queira utilizar uma plataforma numérica '+' para apagar as palavras, ao invés de um único caractere, o seguinte conteúdo deve ser acrescentado ao .jedrc
:
unsetkey("\eOl");
unsetkey("\eOP\eOl");
setkey("edt_wdel", "\eOl");
setkey("edt_uwdel", "\eOP\eOl");
depois da linha onde se lê () = evalfile("edt");
.
xjed
use a plataforma numérica para emulação EDT
, deve ser inserido o seguinte em .Xmodmap
:
keycode 77 = KP_F1
keycode 112 = KP_F2
keycode 63 = KP_F3
keycode 82 = KP_F4
keycode 86 = KP_Separator
Além disso, deve-se estar seguro de que o arquivo /etc/X11/XF86Config contém as seguintes linhas:
# ServerNumLock # devem estar comentados
XkbInativo
Isto se aplica ao XFree 3.2. A menos que se use um teclado de padrão americano, o 'XkbInativo' pode trazer alguns pequenos problemas.
xjed
é feita pelo acréscimo de linhas como estas em .Xdefaults
:
xjed*Geometry: 80x32+150+50
xjed*font: 10x20
xjed*background: midnight blue
$HOME/.abbrevs.sl
:
create_abbrev_table ("Global", "");
define_abbrev ("Global", "GG", "Guido Gonzato");
create_abbrev_table ("TeX", "\\A-Za-z0-9");
define_abbrev ("TeX", "\\beq", "\\begin{equation}");
define_abbrev ("TeX", "\\eeq", "\\end{equation}");
% e assim por diante...
e a seguir digitar ESC x abbrev_mode
para habilitá-lo. Para se ter a abreviação por padrão, devem ser acrescentadas as seguintes entradas em .jedrc
:
define text_mode_hook ()
{
set_abbrev_mode (1);
}
%
define fortran_hook ()
{
set_abbrev_mode (1);
use_abbrev_table ("Fortran");
}
% e assim por diante...
efax
(1)
Este pacote é provavelmente o mais conveniente para o envio e recebimento de faxes. Deve-se adaptar o programa /usr/bin/fax nos seguintes parâmetros:
efax
. Caso se queira acrescentar o comando AT, isto deve ser feito na linha apropriada, precedendo o restante com `-i' ou com `-k'. Por exemplo: para acrescentar o comando `ATX3' a INIT, deve-se usar `-iX3'.
Presumindo-se que se tenha acesso à uma distribuição do teTex, nestes casos:
~# texconfig init ; texconfig hyphen
texhash
em /usr/lib/texmf/texmf/tex/latex/, a fim de que o teTex reconheça o novo pacote;
dvips
, o arquivo a ser editado é /usr/lib/texmf/texmf/dvips/config/config.ps. Deve-se estar atento ao fato de que os campos relativos à resolução padrão também afetam o comportamento do xdvi
. Ao se vivenciar tentativas irritantes de se criar fontes a cada vez que ele seja executado, pode-se acrescentar a seguinte linha:
XDvi*mfmode:
em .Xdefault
. Isto deve resolver o problema.
Assumindo-se que o kernel tenha o suporte compilado a PPP + TCP/IP, a interface local de rede esteja habilitada, o pacote pppd
esteja disponível e corretamente instalado e que o acesso como superusuário está disponível, pode-se seguir as instruções aqui mencionadas. Obviamente, o PSI - Provedor de Serviços Internet, deverá suportar conexões PPP.
Existem duas maneiras para configurar o PPP: a) configuração manual; b) um programa de configuração automática.
Qualquer opção escolhida, necessita das seguintes informações:
A configuração manual é um trabalho penoso, pois trata da edição de arquivos e da gravação de programas. Não é muito trabalhosa, mas é fácil cometer-se erros, sendo que iniciantes podem facilmente se intimidar. O COMO FAZER PPP está à disposição para sanar as dúvidas mais comuns. Alternativamente, existem ferramentas que pedem as informações acima e fazem todo o trabalho.
Certamente uma saída pode residir em se pedir suporte a quem já esteja conectado ou na utilização de uma das seguintes ferramentas:
http://www.serv.net/~cameron/ezppp/index.html
.
Muito fácil de se usar, quase auto explicativa;
ftp://metalab.unc.edu/pub/Linux/system/network/serial/ppp
podem ser uma excelente opção. Uma das melhores é pppsetup-X.XX.tar.gz.
wvdial
. Informa-se o número de telefone do PSI, o nome de usuário, senha, e pode-se estar conectado. Do arquivo README: "Há uma página na rede para o wvdial em
http://www.worldvisions.ca/wvdial
.
Uma ferramenta muito boa.
Para recuperar a correspondência de um servidor POP, pode-se usar um cliente POP como fetchpop
ou fetchmail
. O último é mais avançado e é provavelmente a única opção caso o servidor PPP do PSI não reconheça o comando "LAST". Eles estão disponíveis em
ftp://metalab.unc.edu/pub/Linux/system/mail/pop
.
Para se configurar estes clientes deve-se observar o seguinte:
fetchpop
: na primeira vez em que for executado será necessário fornecer algumas informações. Responda às perguntas e o programa poderá ser prontamente utilizado.
fetchmail
: deve se adaptar o seguinte exemplo de .fetchmailrc
:
# $HOME/.fetchmailrc
poll mbox.myisp.com with protocol pop3;
user didi there with password _Loo%ny is didi here
Devem ser configuradas as permissões para este arquivo com o comando chmod 600 .fetchmailrc
, senão fetchmail
não poderá ser executado. Este exemplo é bastante básico e assume que se tenha um arquivo sendmail
disponível. Existem infinitas possibilidades de configuração, que podem ser verificadas em
http://www.ccil.org/~esr/fetchmail
.
Uma vez que o X Window esteja funcionando (placa de vídeo certa, etc.), existem infinitas possibilidades de configuração, dependentes do gerente de janelas que se esteja utilizando. De qualquer maneira, a tarefa se resume na edição de um ou mais arquivos ASCII no diretório pessoal. Quanto ao gerente de janelas:
.fvwmrc
, analisar o seu conteúdo e iniciar um processo de experimentação. O arquivo system.fvwmrc
é na minha opinião muito simples e não faz justiça a fvwm
.
.fvwm2rc95
, o qual deve ser editado a seguir. O exemplo padrão é uma contribuição muito boa.
.fvwm2rc.defines
.
Além disso, certifique-se que há um arquivo .xinitrc
próprio. Por exemplo:
#!/bin/sh
# $HOME/.xinitrc
# estabelecendo algumas teclas corretamente
usermodmap=$HOME/.Xmodmap
xmodmap $usermodmap
xset s noblank # desliga o salvador de tela
xset s 300 2 # salvador de tela inicia depois de 5 minutos
xsetroot -solid "medium blue" &
# o rxvt salva muita memória, mas versões anteriores a 2.21 têm problemas
# que afetam as teclas e a maneira pela qual o ambiente é herdado. Deve ser
# atualizada ou substituída pelo xterm.
xterm -ls -bg black -fg white -sb -sl 500 -j -ls -fn 10x20 -fb 10x20bold \
-title "Color xterm" -geometry 80x25+150+0 &
fvwm95-2
Na minha experiência, caso se precise de Fortran, uma boa alternativa para g77
é o tradutor Fortran para C f2c
e a interface yaf77
.
Pode-se obter yaf77-X.Y.tgz
a partir de
ftp://metalab.unc.edu/pub/Linux/devel/lang/fortran
.
É aconselhável que novos usuários tenham alguns arquivos de configuração prontos quando eles forem criados no sistema. Devem ser colocados os seguintes arquivos no diretório /etc/skel:
.bashrc .bash_profile .bash_logout .inputrc .less .xinitrc
.fvwmrc .fvwm2rc95 .Xmodmap .Xdefaults .jedrc .abbrevs.sl. joerc
.emacs
Note-se que o .pinerc
não pode ser completamente adaptado. Certifique-se que pelo menos os campos user-domain
, smtp-server
e nntp-server
estejam propriamente configurados.
Ao se atualizar uma máquina, lembre-se de salvar antes alguns arquivos adicionais. Alguns deles são: /etc/X11/XF86Config, /usr/bin/fax, ...