Piter Punk's HomePage - dicas
 
Dicas

A idéia desta seção é mostrar alguns truques úteis, porém pequenos demais para terem um artigo inteiro só para eles. Como eu fui escrevendo estas dicas a partir dos meus problemas (e eu uso Slackware), fica meio difícil saber o que acontece nas outras distros. Elas devem funcionar, mas nunca é certeza... apenas espero que o seu computador não pegue fogo, e se pegar a culpa não é minha!

Para ver as dicas publicadas na Revista do Linux, clique aqui
[ Truques ]  [ X11 ]  [ Redes ]  [ Sistema ]  [ Impressão ]  [ Aplicações ]
Truques de Linha de Comando X11 Redes Sistema Impressão Aplicações
Como faço para o vim ficar colorido?

Esta é fácil, copie para o seu $HOME o arquivo .vimrc que vem como exemplo. Ele irá ler dúzias de configurações para você e habilitar o "syntax highlighting". Use o seguinte comando:

	# cp /usr/doc/vim*/doc/vimrc_example.vim ~/.vimrc
	
Forçando as Aplicações a criarem um ícone no WindowMaker.

Alguns programas quando executados não apresentam o ícone para que possamos docka-los ou clipá-los, este é o caso do XV. Para resolver este problema, siga os seguintes passos:

  1. Clique com o botão direito na barra de título do programa;
  2. Selecione o item Attributes;
  3. Na caixa superior, selecione Advanced Options;
  4. Selecione a caixa: Emulate application icon;
  5. Apply e depois Save;
  6. Pode fechar esta caixa de diálogos clicando no X.

Já deve ter aparecido o ícone da aplicação no cantinho da tela, agora é só dockar ela normalmente -;)

Aplicações texto coloridas no rxvt

Quando abrimos um xterm (ou seus derivados) no Slackware, todas as cores bonitas dos aplicativos desaparecem. O motivo é simples: Slackware deixa como default todos os xterms como sendo em "preto e branco".

Este problema pode ser resolvido colocando estas linhas no .bash_profile:

	if [ "$TERM" = "xterm" ]; then
	        export TERM="xterm-color"
	fi
	

Elas verificam se você está dentro de um xterm, se estiver, alteram a variável TERM para xterm-color e você tem todas as suas cores de volta -;) Infelizmente, não consigo fazer isso funcionar no xterm, mas funciona no aterm e no rxvt. Quem souber qual é o problema, por favor me avise.

Olhando na internet, encontrei uma solução para o problema do xterm... ao invés de colocar xterm-color, coloque xterm-xfree86. O único efeito colateral que percebi foi que o elvis parou de funcionar, como eu uso o vim, não fez tanta falta. Aliás, como eu geralmente uso o rxvt ou o aterm, acaba não me fazendo diferença nenhuma.

Fazendo os terminais gráficos lerem sempre os scripts de login

Este é para quem implantou a solução passada ou tem muitos aliases e coisas do tipo no .bash_profile. O .bash_profile só é lido em uma "loginSession" e, para fazer isto, precisamos apresentar opções especiais na linha de comando, como por exemplo:

	# rxvt -ls
	
Se você cansou de digitar sempre isso, crie um arquivo .Xdefaults (ou .Xresources) e coloque as seguintes linhas dentro dele:
	XTerm*loginShell: True
	Rxvt*loginShell: True
	
Isto funciona com o xterm e seus clones (rxvt, aterm, wterm, etc...), por algum motivo qualquer, o xterm prefere que as definições estejam no .Xdefaults.
Imprimindo em modo econômico na HP

O método mais fácil de fazer as impressoras da HP funcionarem perfeitamente no Linux é baixando o TurboPrint -:)

Não tem outra, é baixar e instalar. Depois de instalado, você poderá configurar a impressora mesmo sendo usuário normal, podendo definir a qualidade de impressão, as cores, etc...

O programa não é GPL, mas existe uma versão gratuita para baixar no site. Vale muuuuuuuito a pena -:)

Botões de Desligar e Rebootar no XDM

Muita gente usa o XDM. E muita gente que usa o XDM está cansada de fazer CTRL+ALT+F1 e depois CTRL+ALT+DEL para poder desligar o computador. Procurando por aí, encontrei no site de um francês (que está escrito no idioma de Proudhon) uma dica para resolver o pepino.

No /etc/X11/xdm/Xsetup_0, inclua as seguintes linhas:

/usr/bin/wish << EOF &
wm geometry . -0+0
button .halt -text Halt -fg black -bg gray -command { 
	exec shutdown -h now 
}
button .reboot -text Reboot -fg black -bg gray -command { 
	exec shutdown -r now 
}
pack .reboot .halt -side left
EOF
echo $! > /var/run/xdmbutton.pid

Depois, no /etc/X11/xdm/GiveConsole (no Slackware eh aqui, no artigo original do francês é no Xstartup_0). Coloque estas linhas (mas coloque antes do chown $USER /dev/console)

if test -r /var/run/xdmbutton.pid ; then
	kill `cat /var/run/xdmbutton.pid`
fi

Pronto! -:) Agora seus usuários (e você) já podem desligar o computador com um clique apenas... as cores dos botões são alteradas com os parâmetros -bg (background) e -fg (foreground) e a posição naquela linha em que está o -0+0

Você pode conseguir mais informações lendo o artigo Alterando o XDM. E pode conferir aqui um screenshot do XDM da minha máquina. E obrigado a Frédéric Péters por ter escrito estas dicas! -:)

Tornando partições ext2 mais seguras

Não sei quantos leitores tem contato com os sistemas *BSD. Mas uma coisa interessante que os *BSD tem é o seu sistema de arquivos, caso o sistema caia não haverá perda de dados (ao contrario do que ocorre no Linux)

Isto acontece graças ao fato do sistema de arquivos do BSD ser síncrono, os discos são sincronizados depois de cada operação. Já no Linux eles são sincronizados de tempos em tempos. O sistema usado no Linux é muuuito mais rápido, porém é menos seguro.

O que pouca gente sabe, é que o ext2 também pode ser montado em modo síncrono, para isso basta acrescentar a opção sync no /etc/fstab. Por exemplo:

	/dev/hda1	/	ext2	defaults,sync	1 1

Tenha em mente que esta alteração pode tornar os acessos a disco mais lentos, em casos extremos pode-se chegar a uma performance 25% inferior nos acessos ao disco (como acontece nos FreeBSD). Com esta alteração vc também não irá evitar o fsck, se sua idéia é evitá-lo, o melhor é ir para o ext3 ou reiserfs.

Renomeando vários arquivos de uma vez só

Muitas vezes você quer renomear todos os arquivos de uma determinada extensão para outra. Por exemplo, você recebeu vários arquivos .GIF e quer passá-los para .gif, infelizmente não é possivel fazer mv *.GIF *.gif... o quê fazer então?

Fácil! Com o Linux não há problemas, basta fazer:

	$ for i in `ls *.GIF`; do mv $i ${i/.GIF/.gif}; done

Achei uma ótima solução. Pena que não foi criada por mim -:(, eu vi ela no canal #debian-br e foi o spuk que escreveu. Eu tinha feito uma usando o comando cut, mas este do spuk é bem mais simples e elegante.

Alguns leitores me mostraram que tanto o meu jeito quanto o do spuk são pura reinvenção da roda. Existe um comando "rename" que resolve o problema, e é extremamente poderoso:

	#  rename .GIF .gif *.gif

Primeiro indicamos o que queremos mudar (.GIF) para o quê queremos mudar (.gif) e quais os arquivos que devem ser alterados (*.gif). Super rápido e eficiente.

Fazendo aspas (simples e dupla) no LyX

Quem usa o LyX com as configurações default para o brazil e teclado us-acentos configurado para usar dead-keys, sabe que as " ou ' não aparecem de jeito nenhum...

Mas existe um jeito. Não é muito divulgado, mas o Alt da esquerda é diferente do Alt da direita, um é ALT e o outro é ALT Graphic. Para você escrever suas aspas, basta pressionar o ALT da direita e a tecla '. Ou shift + ', para obter as aspas duplas -;)

Instalando pacotes do Slackware em outras distros

Os pacotes do Slackware não obedecem a nenhum padrão alienígena com bases de dados binárias ou coisa parecida. São tarballs organizados com alguns scripts de instalação. Estas características fazem com que os pacotes possam ser instalados em praticamente qualquer distribuição. Faça isso com a seguinte linha:

	# tar -xvzf pacote.tgz -C / ; source /install/doinst.sh ; rm -r /install

Isto funciona com 90% dos pacotes, alguns poucos possuem mais de um script na instalação, e irão carecer de mais cuidado.

Fazendo um /tmp na memória

Uma das facilidades proporcionadas pelo kernel 2.4, é a possibilidade de montar partições em memória. Não estamos falando da ramdisk, onde voce perde vários megas para cada partição que quer montar; estamos falando de Shared Memory.

Neste novo sistema, a memória é alocada dinâmicamente. Começando do zero, conforme você vai precisandoi, mais memória é alocada. Isso até chegar ao limite que você especificar.

Para fazer uso dessa maravilha, adicione no seu /etc/fstab a seguinte linha:

	/dev/shm        /tmp            tmpfs   defaults,size=64m       0 0

Lembre-se, eu estou montando no /tmp, você pode montar em qualquer outra particao que achar conveniente (eu particularmente uso no /tmp e no /var/run). O parâmetro size, estabelece o tamanho máximo que a partição pode possuir (64m significam 64 MB de memória).

Implementando o sistema de arquivos ext3

Agora está disponível no kernel (sem a necessidade de patches) o sistema de arquivos ext3. Você quer saber quais as vantagens deste sistema, nao é?

Basicamente, você ganha um sistema de arquivos journal, estável, robusto e sem a necessidade de reformatar ou perder as suas partições. Livre do fsck e que, em caso de emergência, pode ser montado como ext2.

Se você já recompilou seu kernel com suporte a ext3, basta executar os seguintes comandos para transformar suas partições para o novo filesystem.

	# telinit 1
	# tune2fs -j /dev/hdxn

O primeiro comando deixa o sistema em modo monousuário e o segundo transforma suas partições ext2 em ext3 (substitua o "x" e o "n" pela letra e número corretos para as suas partições). Repita o comando tune2fs para todas as suas partições ext2. Depois, edite o fstab e troque onde está ext2 por ext3.

Alterando o tamanho das letras no xterm

Muitas pessoas acham o tamanho das letras do xterm minúsculas, mas existe um jeito fácil de aumentá-las (ou diminuí-las). Com a tecla Ctrl pressionada, clique com o botão direito do mouse na janela do xterm.

Irá aparecer uma janela com os tamanhos de fonte, agora é só você escolher uma delas e ler tranqüilamente seus textos no tamanho que mais lhe agradar -:).

Eliminando as checagens periódicas do ext2/3

Quantas vezes você foi ligar o seu computador e foi surpreendido por uma mensagem semelhante a "Filesystem reached maximal count. Check forced". E teve de esperar séculos enquanto o fsck cuidava do seu HD?

O que nem todo mundo sabe, é que é possível desabilitar essa checagem forçada, e diga-se de passagem é muito fácil. Use o comando:

	# tune2fs -c 0 -i 0 /dev/hdxn

Onde o x é uma letra e n um número. Com isso você desativa a checagem por número de montagens (-c) e por intervalo de tempo (-i). Para saber mais, man tune2fs.

Automatizando a autenticação no iG

Esta dica (muito útil), não é de minha autoria, é do Gabriel Barros. Com esse script em Perl, é possível se autenticar automaticamente no iG. Basta substituir onde está NOME_DO_USUARIO pelo seu login no iG e SUA_SENHA pela sua senha.

Pelo script estar escrito em Perl, você precisa ter o Perl instalado para ele funcionar. Digite-o, torne-o executável e depois é só usufruir da comodidade.

#!/usr/bin/perl
#       IGanador.pl v1.0
# Script para evitar a aporrinhação da autenticação
# do IG.
# Não pode ser considerado ilegal/imoral pois apenas
# automatiza o processo, e NÃO burla a indentificação
# do usuario.
# Recomendo colocar um link no Cron para rodá-lo hourly
# se for deixar a conexão aberta varios dias.
#   comentários para: gabriel.barros@folha.com.br
#

use IO::Socket;
my($sock, $request);
$usuario = "NOME_DO_USUARIO";
$senha = "SUA_SENHA";
$sock = IO::Socket::INET->new(
        Proto => 'tcp',
        PeerPort => '8000',
        PeerAddr => 'auth.ig.com.br',
        ) || die($!);

        $request = "POST /servlets/autentica HTTP/1.1\nAccept: image/gif, 
image/x-xbitmap, image/jpeg, image/pjpeg, */*\nReferer: 
http://192.168.1.2/\nAccept-Language: pt-br\nContent-Type: 
application/x-www-form-urlencoded\nAccept-Encoding: gzip, 
deflate\nUser-Agent: Mozilla/4.0 (compatible; MSIE 5.01; 
Windows NT 5.0)\nHost: 192.168.1.2\nContent-Length: 71\nConnection: 
Keep-Alive\n\naction=login&url=&username=$usuario&password=$senha&x=17&y=7\n\n";
        print $sock "$request";
end

Muita atenção na hora de digitar. Tudo o que está entre " na linha $request, é para ser digitado na mesma linha (eu dividi em várias para facilitar a leitura da página). O script, já digitado, pode ser baixado aqui.

Mouse para canhotos

A grande maioria das pessoas são destras, mas o X não se esquece dos canhotos. De maneira simples, pode-se alterar a configuração do mouse, invertendo os botões. Simplesmente digite:

xmodmap -e "pointer = 3 2 1"

Se gostou das configurações assim, pode colocar no seu .Xmodmap uma linha com:

pointer = 3 2 1

O .xinitrc do Slackware já lê por default o .Xmodmap, em algumas outras distros, pode ser necessário incluir o seguinte comando ao .xinitrc:

xmodmap .Xmodmap
Problemas com Athlon/Duron

Os processadores Athlon/Duron tem se tornado muito comuns ultimamente. Apesar de nunca ter tido problemas com o meu, sei o tanto que um bug pode irritar. Estou listando aqui correções para dois problemas:

1 - Existe uma incompatibilidade entre alguns GARTs (AGP) e a implementação de páginas de memória dos Athlon/Duron. Duas formas de resolver, não usar o AGP (desabilitar o agpgart ou equivalente) ou colocar no seu lilo.conf:

append="mem=nopentium"

2 - Travamentos com uma mensagem semelhante a: "disabling duron serial number". Neste caso, coloque no lilo.conf:

append="x86_serial_nr=0"
Emulando um "mouse" no X

Esta dica foi um amigo que me revelou. Se você quiser usar o teclado como sendo um mouse, basta apertar simultâneamente CTRL+SHIFT+NumLock. A partir daí, o teclado numérico poderá ser utilizado como mouse, de acordo com a tabela:

  • 8: Acima
  • 4: Esquerda
  • 6: Direita
  • 2: Abaixo
  • -: Seleciona o botão da direita
  • *: Seleciona o botão do meio
  • /: Seleciona o botão da esquerda
  • 5: Emula o clique do botão selecionado
  • 0: Clica e segura
  • +: Duplo clique

Testei a dica em computadores com o Slackware 8 e com o 8.1-beta2, em ambos os casos, funcionou. Por algum motivo que desconheço, não funciona direito com alguns teclados... achei que era o modelo (PS/2 ou normal), mas pessoas com teclados de ambos os tipos me avisaram que funciona... não sei o q pode ser...

Aplicações na inicialização e na saída do WindowMaker

Se você quiser colocar algum aplicativo para iniciar junto com o WindowMaker, ou para ser executado logo que sair dele, use os arquivos:

	~/GNUstep/Library/WindowMaker/autostart
	~/GNUstep/Library/WindowMaker/exitscript
Descompactando arquivos .tar.bz2

Dica que eu retirei da minha seção na RdL. Para descompactar arquivos .tar.bz2, basta utilizar a opção y. Para quem já está utilizando o Slackware 8.1-beta2 (como eu), a opção deverá ser j. A linha de comando fica assim:

	$ tar -xvjf arquivo.tar.bz2
Compilando o sshd para o Slackware
Dica curta, mas que poupa trabalho. Se você for compilar o sshd para o Slackware, não se esqueça de incluir a seguinte opção (no ./configure):
	 --with-md5-passwords
Copiando usando o tar

Para fazer uma cópia total dos seus arquivos, inclusive com as mesmas permissões, use o comando tar.

	$ (cd /origem && tar cf - . ) | (cd /destino && tar xvfp -)

Preste atenção nos parêntesis, eles fazem com que a operação seja executada em uma subshell, não afetando a shell que vc está usando. A primeira coisa que o comando faz é ir para o diretório de origem e, se sucedido (&&), cria um arquivo tar com todo o conteúdo do diretório. Este arquivo é direcionado (|) para um segundo tar, já no diretório de destino. Simples e engenhoso.

Usando o Ctrl+Alt+End para desligar o computador

Ctrl+Alt+Del reboota a máquina. Ou então, depois de editar o inittab ele pode desligar a máquina. Mas... e se quisermos ter um atalho para desligar e outro para rebootar a máquina?

Sem problemas! Com apenas duas linhas de código podemos resolver tudo. Edite o seu /etc/inittab e, logo abaixo da linha do ctrlaltdel, inclua esta linha:

	kb::kbrequest:/sbin/shutdown -t5 -h now

Depois, coloque esta linha no seu /etc/rc.d/rc.local

	echo "control alt keycode 107 = KeyboardSignal" | loadkeys -

Pronto! No próximo boot tudo estará solucionado -;) O Ctrl+Alt+Del irá rebootar a máquina e o Ctrl+Alt+End irá desligá-la.

Colorindo o prompt do BASH

A variável de sistema PS1, guarda o formato do prompt. Para deixá-lo colorido, tudo o que você precisa é colocar os códigos de cores no interior da variável, os códigos são:

  • 31 - vermelho
  • 32 - verde
  • 33 - amarelo
  • 34 - azul
  • 35 - magenta
  • 36 - ciano
  • 37 - branco
  • 38 - cinza

E, para colocá-los no prompt, precisa mandar uma seqüência de ESCape, seguido do formato (bold[1] ou normal[0]) e por último da cor, como neste exemplo:

	PS1='\[\e[0;32m\]\u@\h:\w\$ \[\e[0m\]'

Nesta seqüencia, dizemos que o prompt será verde (\[\e[0;32m\]), irá aparecer o nome do usuário (\u) seguido por uma arroba (@), o nome da máquina (\h), um dois pontos (:) o diretório de trabalho em que você está (\w) e por último, um $ (\$) que será substituído por um # se você for o root do sistema.

Irá ficar algo mais ou menos assim:

		
punk@rachael:~$ 
		
	

Maiores detalhes, podem ser vistos examinando o Bash-Prompt-HOWTO.

Utilizando LPRng+SMB

O novo formato de impressão do Slackware é o LPRng (ao invés do tradicional lpr). Além de alterar a variável "printing" no /etc/samba/smb.conf (de bsd para lprng), são necessárias algumas outras alterações.

Supondo que a sua impressora que está sendo compartilhada via samba se chame "Printer1" (nome original, não acha?), você deverá mudar o dono e as permissões do diretório de spool dela (/var/spool/lpd/Printer1) da seguinte maneira:

	chown root.root /var/spool/lpd/Printer1
	chmod 1777 /var/spool/lpd/Printer1

E colocar na seção [printers] do seu smb.conf os seguintes comandos para a impressão:

	print command =       /usr/bin/lpr  -U%U@%M -P%p -r %s
	lpq command   =       /usr/bin/lpq  -U%U@%M -P%p
	lprm command  =       /usr/bin/lprm -U%U@%M -P%p %j
	lppause command =     /usr/sbin/lpc -U%U@%M hold %p %j
	lpresume command =    /usr/sbin/lpc -U%U@%M release %p %j
	queuepause command =  /usr/sbin/lpc -U%U@%M -P%p stop
	queueresume command = /usr/sbin/lpc -U%U@%M -P%p start
Limpando o SPOOL de impressão

O samba vai deixando todos os arquivos impressos no diretório de spool, uma hora ou outra esse diretório vai ficar lotado e seus usuários não irão mais conseguir imprimir.

Para resolver esse problema, faça um script chamado "cleanspool" com o seguinte conteúdo:

	#!/bin/sh
	/usr/bin/find /var/spool/lpd/Printer1 -type f -mtime 2 -exec rm -f {} \;

Torne o script executável e coloque-o no diretório /etc/cron.daily, lembre de substituir "Printer1" pelo spool da sua impressora. Este script será executado todo dia e irá remover todos os arquivos com 2 dias de idade que estiverem no seu spool (você pode trocar esse intervalo, alterando a variável o parâmetro mtime).

Configurando a rodinha do mouse

Ok, você comprou um daqueles mouses com rodinha e agora não sabe como colocar ele para funcionar. Sem problemas (aliás, o que é problema para o Linux?) é só editar o /etc/X11/XF86Config e colocar (na seção "InputDevice"):

	Section "InputDevice"
                Identifier  "Mouse0"
                Driver      "mouse"
                Option      "Protocol" "IMPS/2"
                Option      "Device" "/dev/mouse"
                Option      "ZAxisMapping" "4 5"
                Option      "Buttons" "5"
        EndSection

O IMPS/2 funciona para a maioria dos mouses USB e PS/2; no caso do seu mouse ser serial, substitua o Protocol de IMPS/2 para IntelliMouse. E, mesmo mouses com conexão PS2 podem possuir outro protocolo, algumas sugestões são: ExplorerPS/2, NetMousePS/2, NetScrollPS/2, etc...

Acentuando no OpenOffice

O OpenOffice, por algum motivo desconhecido qualquer, só aceita acentuar em português quando a variável LC_ALL está setada para pt_BR. Se você não liga de ficar com todas as mensages de erro em português, é só editar o /etc/profile e trocar onde esta LC_ALL=POSIX por LC_ALL=pt_BR.

Se você é como eu, e acha esse negócio de mensagens do sistema em português uma das coisas mais irritantes deste mundo, existe uma solução, basta colocar LC_ALL=pt_BR antes de chamar algum aplicativo do OpenOffice. Por exemplo:

	# LC_ALL=pt_BR /opt/openoffice/program/swriter

Uma boa opção é criar um openoffice.sh e colocar dentro do /etc/profile.d, para ser executado a cada login, com apelidos para todos os programas do OpenOffice, como este:

	#!/bin/sh

	alias sagenda="LC_ALL=pt_BR /opt/openoffice/program/sagenda" 
	alias scalc="LC_ALL=pt_BR /opt/openoffice/program/scalc"
	alias sdraw="LC_ALL=pt_BR /opt/openoffice/program/sdraw"
	alias sfax="LC_ALL=pt_BR /opt/openoffice/program/sfax"
	alias simpress="LC_ALL=pt_BR /opt/openoffice/program/simpress"
	alias slabel="LC_ALL=pt_BR /opt/openoffice/program/slabel"
	alias sletter="LC_ALL=pt_BR /opt/openoffice/program/sletter"
	alias smaster="LC_ALL=pt_BR /opt/openoffice/program/smaster"
	alias smath="LC_ALL=pt_BR /opt/openoffice/program/smath"
	alias smemo="LC_ALL=pt_BR /opt/openoffice/program/smemo" 
	alias soffice="LC_ALL=pt_BR /opt/openoffice/program/soffice"
	alias svcard="LC_ALL=pt_BR /opt/openoffice/program/svcard"
	alias sweb="LC_ALL=pt_BR /opt/openoffice/program/sweb"
	alias swriter="LC_ALL=pt_BR /opt/openoffice/program/swriter"

Com isso, seus aplicativos sempre irão acentuar e suas mensagens de erro continuarão normais. Se você está com o pacote portuguese a partir da versão 2.2, este problema já foi corrigido e não precisa fazer absolutamente nada de novo.

Compilando o kernel no Slackware 8.1 e 9.0

Quando digitamos "make install" depois do kernel compilado, ele se instala automaticamente no /. Até o Slackware 8.0 isso não era problema nenhum. No Slackware 8.1, isso mudou: ao invés de ficar no /, o kernel agora fica no /boot. E quando digitamos "make install" as coisas não funcionam tão bem.

Mas, mesmo para isso existe uma solução, antes de digitar "make install", utilize o seguinte comando:

	# export INSTALL_PATH=/boot
ou, se preferir, descomente a seguinte linha no no seu /usr/src/linux/Makefile
	#export INSTALL_PATH=/boot

Vamos lembrar que para descomentar a linha, basta remover o # da frente. Com isso, tudo estará solucionado sem maiores problemas.

Senhas Aleatórias

Não é novidade para ninguém a incapacidade dos usuários de gerarem senhas decentes e, graças a estas pérolas da genialidade, ocorrerem invasões. Uma maneira de evitar isso é com o uso de senhas aleatórias, mas haja paciência para o administrador do sistema ficar imaginando senhas. Para isso, podemos utilizar o próprio Linux, veja:

	# dd if=/dev/random ibs=6 count=1 2>/dev/null | mimencode

Com esta linha, você irá gerar uma senha aleatória com 8 caracteres. O que costuma ser suficiente para a segurança do sistema.

NFS mais rápido

Quando for montar uma partição NFS, utilize as opções rsize e wsize, com isso você pode ganhar performance na sua rede, faça assim:

	192.168.1.2:/remote /remote  nfs   defaults,wsize=8192,rsize=8192 0 0

O default é de 1024 (1K), fica muito melhor com valores maiores (e o 8192 costuma ser um ótimo valor).

Tocando CDs sem o cabo de áudio

Esta dica eu tirei da Linux Gazette, a idéia é muito boa e para mim foi muito útil (um dos meus CDs está com um canal de áudio queimado e outro usa um cabo alienígena). São duas maneiras de ler o CD e enviar o som pelo cabo de dados, ou seja, você vai precisar ter uma placa de som configurada e funcionando.

A primeira idéia é utilizando o cdda2wav (disponível no seu Slackware 8.1) e direcionando a saída dele diretamente para a placa de som, assim:

	# cdda2wav -D /dev/cdrom -t 1 -eN

O -D indica o device (no caso o cdrom) o -t indica qual faixa do CD será tocada e o -eN direciona a saída de som para a placa de som.

A outra idéia é utilizando um plugin do XMMS que pode ser encontrado no seguinte endereço: ftp://mud.stack.nl/pub/OuterSpace/willem. Pegue a versão mais nova. compile e instale no seu sistema.

Agora basta utilizar o XMMS para escutar os seus CDs (apenas lembre-se de antes desativar o plugin para CDs de áudio original do XMMS, para que os dois não entrem em conflito).

Convertendo HTML para TXT

Esta é uma dica rapidinha, várias vezes você quer converter um HTML para TXT mas está com uma preguiça tremenda de apagar todas as tags, nestas horas, existe o lynx -:) e tudo pode ser resolvido com este comando:

	# lynx -dump -nolist arquivo.html

Onde o tal "arquivo.html" é o arquivo que você quer converter.

Ativando o Numlock no boot

Uma dica extremamente sonsa, mas tanta gente pergunta nas listas que resolvi colocar aqui como resolver (tem na página de manual do setleds). Para colocar o NumLock ativado no boot da sua máquina, coloque o seguinte no seu /etc/rc.d/rc.local:

	# Activating Numlock on startup
	echo  "Activating Numlock ..."
	for i in 1 2 3 4 5 6; do
		/usr/bin/setleds +num < /dev/tty${i} > /dev/null
	done
Discar e desconectar automaticamente

A grande maioria dos internautas brasileiros ainda não tem acesso à banda larga, e padecem com as linhas telefônicas (eu entre eles). Vi em uma lista e achei interessante essas regras para a crontab que fazem com que o computador disque automaticamente nos horários em que a ligação local é um pulso e desligue no momento em que o desconto termina. São as seguintes:

	0 6 * * mon-sat ppp-off >>/var/log/messages 2>/dev/null
	0 0 * * tue-fri ppp-go >>/var/log/messages 2>/dev/null
	30 14 * * sat ppp-go >>/var/log/messages 2>/dev/null

Você pode editar a crontab usando o comando crontab -e.

Imprimindo duas página em uma

Nestes tempos bicudos, é sempre uma boa economizar um pouco de papel. O comando pstops ajuda bastante nessa economia. Com ele, é possível imprimir várias páginas em apenas uma folha de papel. O comando para imprimir duas páginas em uma é o seguinte:

	pstops '2:0L@.6(19cm,1cm)+1L@.6(19cm,13.85cm)' entrada.ps saída.ps

Depois basta imprimir o arquivo saída.ps (obviamente, substitua o entrada.ps pelo arquivo que você deseja imprimir...) Para criar um .ps, mande o programa que você estiver usando imprimir para arquivo, o arquivo criado será um .ps.

O comando pstops possibilita várias outras coisas, muitas mesmo, vale a pena uma boa olhada na página de manual dele.

Convertendo arquivos DOS para UNIX

Se você ficava com inveja do seu amigo que usa RedHat só porque na distro dele tem o dos2unix, não precisa ter tanta raiva. O Slackware traz dois programas justamente para fazer as conversões de textos padrão Unix to DOS e vice-versa. Os nomes dos programas são bem sugestivos:

  • fromdos - Para transformar textos que venham do DOS para padrão Unix
  • todos - Para enviar arquivos Unix em formato DOS.

Ambos os comandos estão no pacote bin, da série A. E provavelmente já devem estar instalados no seu sistema.

"Navegando" pelas palavras no bash

Esta quem me passou foi meu amigo Joel, quando se está no console e quer "correr" pelas palavras, podemos usar Alt+F para avançar e Alt+B para voltar uma palavra.

Aproveitando a deixa, dei uma olhadinha e no Slackware 8.1, no RXVT (e no ATerm, mas esse não vem por default) é possível usar uma combinação bem mais intuitiva, usar o Ctrl mais uma das setas cursoras (direita para avançar e esquerda para voltar).

WorkBone com Volume

O workbone (série AP) é um ótimo player (em modo texto) para CDs de áudio. Atualmente temos também o tcd (série GNOME), mas sou adepto da tradição e prefiro usar o worbone. Tinha falta apenas de uma coisa: controle de volume.

Agora não preciso mais me preocupar com isso, nesta página vocês podem encontrar uma versão do worbone com controle de volume -:).

Dividindo a Tela em Duas

Dica simples e rápida, quando você estiver em um terminal e quiser dividi-lo em dois, use o comando splitvt. Ele vai dividir a sua tela em duas na hora. Para trocar de uma tela para outra, use o ctrl+W

Limpando a Tela para o Login Texto

No fim do boot, depois de todas aquelas mensagens, aparece o prompt para o login. Ou então, depois de vários comandos digitados você usa o exit e lá ficam na tela todos os seus comandos.

Para resolver isso, algumas pessoas colocam o comando "clear" no .bash_logout, o que acarreta em dois problemas:

  1. Não é global, tem que fazer para todos os usuários
  2. Não resolve o problema das mensagens do boot

Uma solução melhor, é editar o /etc/issue. Faça a seguinte seqüencia de comandos:

		# (clear ; cat /etc/issue ) > issue2
		# mv issue2 /etc/issue
	

O primeiro comando executa uma limpeza de tela e depois lê o arquivo /etc/issue. A saída desse comando é direcionada para o arquivo issue2. Assim, toda vez que o issue2 for lido, ele irá limpar a tela e depois escrever o seu conteúdo. Na segunda linha a gente coloca nosso issue2 no /etc/issue.

Números aleatórios no BaSH

Existem duas maneira de se fazer números aleatórios no bash (devem haver mais, mas essas duas são suficientes). Uma delas é utilizando a variável RANDOM. O modo de usar é bem simples, no começo do seu programa, inicialize a RANDOM com algum valor (RANDOM=1) depois é só utilizá-la, cada vez que for utilizada ela estará com um valor diferente:

	punk@rachael:~$ RANDOM=1
	punk@rachael:~$ echo $RANDOM
	16838
	punk@rachael:~$ echo $RANDOM
	5758
			

A outra maneira, um pouco mais complicada, utiliza o /dev/random e uma série de comandos auxiliares... assim:

	dd if=/dev/random bs=8 count=1 2>/dev/null | cksum | cut -b3-7
			

Isto irá ler o /dev/random, rodar o cksum no resultado e por último pegar os bytes de 3 a 7, gerando um número com 4 dígitos. Quando se quer ter maior certeza e maior aleatoridade, o melhor é utilizar este segundo método.

Se você quiser um número aleatório dentro de um intervalo pode utilizar a seguinte idéia:

	expr $RANDOM % 31
			

Isto irá mostrar números de 0 a 30. Não é difícil adaptar essa idéia para o outro método -;).

Fazendo um VNC sob demanda

Esta é uma idéia muito boa. Quantas vezes você não cansou de ter de logar na máquina, acionar o Xvnc, sair e depois utilizar o vncviewer para alguma máquina remota? Com esta idéia, toda vez que você conectar em uma determinada porta, será aberto um novo VNC...

Para fazer isso, inclua no /etc/services a seguinte linha:

vnc             5910/tcp        # VNC Server

E no /etc/inetd.conf esta outra (cuidado! é uma linha só, eu dividi em duas para não estragar o layout da página):

	vnc stream tcp nowait root /path/to/Xvnc Xvnc -inetd -query localhost \
	-once -geometry 800x600 -depth 16

Atenção: Onde está /path/to/Xvnc, você deve colocar o caminho para onde está o comando Xvnc. No meu caso, é /usr/local/bin/Xvnc. Você pode descobrir este caminho com o comando:

	punk@rachael:~$ which Xvnc
	/usr/local/bin/Xvnc

A geometria que está no -geometry determina o tamanho da tela e o -depth 16 a quantidade de cores. Para acessar o seu "servidor" de VNCs, utilize o vncviewer e se conecte ao display :10

	vncviewer:10

O número do display é dado pelo número da porta menos 5900 (5910-5900=10).

Fazer o elvis funcionar dentro do aterm

Se você está com problemas para usar o elvis no rxvt ou no aterm, a solução é bem simples. Ao invés de executar apenas:

	elvis arquivo

Execute:

	TERM=linux elvis arquivo

Se preferir, coloque no /etc/profile (ou ~/.bashrc, ou ~/.bash_profile, ou ~/.profile, ou...) um alias... desta maneira:

	alias elvis="TERM=linux elvis"
Utilizando um corretor ortográfico no pico

Dica rápida, é possível fazer correção ortográfica no pico, para isso basta chamá-lo com a opção -s:

	pico -s ispell

Agora, configurar o ispell e com você -;).

Colocando o Windows XP em um domínio Samba

Muita gente tem tido trabalho para colocar máquinas com Windows XP nos domínios em que uma máquina Linux com samba é o PDC. Também suei bastante para fazer isso na firma, por isso coloco aqui a dica -;):

  1. Na máquina linux faça:
    	smbpasswd -a -m nomedamaquina
    	
  2. Entre em: Control Panel->Administrative Tools->Local Security Policy e depois em Local Policies->Security Options
  3. Dentro dessa janela, as seguintes opções devem estar desabilitadas:
    • Domain member: Digitally encrypt or sign secure channel (always)
    • Domain member: Disable machine account password changes
    • Domain member: Require strong (Windows 2000 or later) session key
  4. No registro, altere/inclua a chave:
    	HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\netlogon\parameters
    	"RequireSignOrSeal"=dword:00000000
    	
  5. Entre em Start->Network Places->Properties->Advanced->Network Identification
  6. Selecione Domain e coloque o domínio correto para usa rede
  7. Coloque como usuário o root da sua máquina linux e como senha a senha dele no samba e OK.
  8. Depois que receber a tela "Welcome blablabla" reinicie o micro.

Bem trabalhoso, mas funciona -:) As vezes não precisa editar todos os itens, bastam alguns para tudo funcionar.

Mostrando a linha "x" de um arquivo

Dica rápida e muito útil. Muitas vezes precisamos de uma determinada linha em um arquivo, pois sabemos que a informação se encontra lá. Para saber isso, basta utilizar o seguinte comando:

	# awk 'NR==numero' arquivo

Onde "numero" é o número da linha que você quer e "arquivo" é o arquivo em questão.

Convertendo segundos em HH:MM:SS

O Unix conta o tempo em segundos a partir do EPOCH - meia noite do dia primeiro de janeiro de 1970 GMT. De vez em quando, precisamos converter dados desse formato para algo legível aos seres humanos, para fazer isso, utilize o próprio comando date, com a seguinte sintaxe:

	# date -d "00:00:segundos" "+%T"

Onde você substitui os "segundos" pelo tempo dado em segundos.

Limitando a banda

Esta dica eu peguei na lista do NSL, com o PZN, e é muito útil quando se quer sincronizar um MIRROR ou fazer um download grande mas não se quer que toda a banda seja utilizada...

	wget --limit-rate=10k --continue http://algumendereco
	rsync --bwlimit=10 rsync://algumendereco

Nos dois casos, o download está limitado a 10kbytes.

Marca d'água no LaTeX

Outra do NSL, para colocar uma marca d'água nos seus documentos em LaTeX, utilize:

	\AddToShipoutPicture{\BackgroundPicture{#figura#}{#angulo#}{#escala#}}

Onde figura você substitui por algum desenho em .ps ou .eps, angulo pelo ângulo dela em relação à página e escala para redimensionar o tamanho.

Acertando as permissões do MySQL

O MySQL do Slackware vem (por padrão) com algumas permissões meio estranhas. Para que ele possa funcionar corretamente, é necessário trocar o dono do diretório /var/lib/mysql.

	# chown -R mysql.mysql /var/lib/mysql

Ou, melhor ainda, quando for rodar o mysql_install_db, antes de rodar o programa execute um su - mysql. Assim os arquivos sob /var/lib/mysql já serão criados com as permissões corretas. Ficaria assim:

	# su - mysql
	# mysql_install_db
	# exit
Alterando o default dos seus usuários

As vezes você precisa que todos os seus usuários sejam criados em outro diretório que não o /home, ou que todos eles tenham determinado grupo...

Se você usa o useradd para criar seus usuários, isso pode ser alterado de maneira bem simples, apenas crie dentro do diretório /etc/default um arquivo com o nome de useradd e o seguinte conteúdo:

	#useradd defaults
	GROUP=número_do_grupo_default
	HOME=diretório_home
	SKEL=diretório_modelo
	SHELL=shell_padrão

Obviamente, coloque os valores corretos onde está "número_do_grupo_default", "diretório_home", etc...

Lista rotativa

Precisei disto apenas uma vez, mas achei interessante (e pode ser útil para outras pessoas). O script awk abaixo, faz com que as linhas de um arquivo sejam "rotacionadas"... ou seja, ele passa a primeira linha para o fim do arquivo e a segunda linha se torna a primeira...

	awk 'NR == 1 { primeiro = $0 } 
	     NR > 1 { print $0 } 
	     END { print primeiro }' teste > teste2 ; mv teste2 teste

No caso, o arquivo em que está a lista se chama "teste" e "teste2" é um arquivo temporário.

Boot pelo CD do 8.0 para instalar o 8.1

Essa dica foi passada pelo Buick na lista de slackware, e é bem útil para quem tem um computador que não da boot com o CD do 8.1 mas que conseguia com o CD do Slackware 8.0... faça assi:

  1. Dê boot com o CD do 8.0
  2. Quando aparecer a tela com a mensagem e o "boot:" retire o CD do 8.0
  3. Coloque o CD do 8.1 e digite a seguinte linha (tudo em uma linha só):
    	/kernels/bare.i/bzImage initrd=/isolinux/initrd.img load_ramdisk=1 
    	prompt_ramdisk=0 ramdisk_size=6464 root=/dev/ram SLACK_KERNEL=bare.i
    	
  4. Dê enter e continue a sua instalação normalmente.
Ativando o NumLock no X

Esta dica foi mandada por e-mail pelo Alan, e ele retirou de uma página da SuSE. É o código de um programinha em C, pequeno e útil -;) Basta executar e o NumLock estará ativo dentro do X.

//numlock.c
#include <X11/extensions/XTest.h>
#include <X11/keysym.h>

int main(void) {
	Display* disp = XOpenDisplay( NULL );
	if( disp == NULL )
		return 1;
	XTestFakeKeyEvent( disp, XKeysymToKeycode( disp, XK_Num_Lock), True, CurrentTime );
	XTestFakeKeyEvent( disp, XKeysymToKeycode( disp, XK_Num_Lock), False, CurrentTime );
	XCloseDisplay( disp );
	return 0;
}

Digite o programinha em seu editor de textos favorito (VI) e depois compile com o seguinte comando:

	gcc -I/usr/X11R6/include -L/usr/X11R6/lib -o setnumlock Numlock.c -lX11 -lXtst

Isso irá gerar um executável com o nome de "setnumlock". Agora basta colocá-lo para ser executado no .xinitrc. Ou, no caso de você utilizar o xdm/kdm/gdm, colocá-lo logo que o X é iniciado.

Mudar senha via linha de comando

Muitas vezes, queremos trocar a senha de um usuário com um comando, diretamente. Ou queremos automatizar esse processo, em algum script. Existe um comando para facilitar esse processo, o chpasswd que deve ser usado da seguinte maneira:

	echo usuario:senha | chpasswd

Essa dica surgiu em uma resposta da Daniele na lista do gus-br...

Alterar teclado no X

Principalmente quando estamos fazendo testes, é particularmente irritante ficar derrubando e reinicializanod o X para carregar um novo mapa de teclado. Isso pode ser resolvido de maneira razoavelmente simples usando o setxkbmap.

Com este programa podemos definir o layout, mapa e até a variante do teclado. Por exemplo, para um teclado us-acentos de 102 teclas:

	setxkbmap -rules xfree86 -model pc102 -layout us_intl

Para um teclado abnt...

	setxkbmap -rules xfree86 -model abnt2 -layout br

Depois dos testes feitos, basta colocar os valores corretos no seu /etc/X11/XF86Config.

Driblando o "Argument list too long"

Outra dica que surgiu na lista do gus-br. Quando uma linha de comando é muito grande, temos este erro: "Argument list too long". Isso acontece quando tentamos remover todos os arquivos de um diretório com alguns milhares de arquivos...

A solução mais simples, é montar um pequeno script do modo:

	$ for i in `ls`; do rm $i; done

Outra solução, que achei mais inteligente é feita utilizando o xargs:

	$ ls | xargs -n10 -i rm {}

O xargs é uma ferramenta muito poderosa, pena que é esquecida na maior parte das vezes...

Usando crontab -e e o VIm

Muita gente reclamou de que o crontab -e não salva no Slackware. Pura balela, se você utilizar o elvis ele salva normalmente. Mas, se você trocou o seu editor padrão para o vim, vai ter alguns problemas. Eles podem ser solucionados de duas maneiras:

  1. Carregue o VIm e, antes de começar a editar a crontab, escreva (no modo de comando)
    :set compatible
    isso irá tornar o VIm compatível com o VI tradicional.
  2. Crie um alias com o nome de edcron (por exemplo) e chame o crontab com o elvis ao invés do VIm e coloque esse alias no seu .bash_profile:
    alias edcron="VISUAL=elvis crontab -e"
Montar partição Windows para escrita

Essa dúvida é recorrente, como montar uma partição Windows para que os usuários comuns possam escrever nela. Fiz uma partição FAT só para poder responder a esta questão...

Como FAT não tem controle de usuários, é necessário mapear a partição para algum usuário (ou grupo de usuários), isso é possível de fazer tanto com algumas configurações no fstab como por linha de comando.

A linha a ser incluída no fstab é esta:

	/dev/hda1    /mnt/windows     vfat    gid=100,umask=002,users   0 0

Por favor! Substitua o hda1 pelo dispositivo correto na sua máquina!!! A outra maneira é executar (como root) o seguinte comando:

	mount -o gid=100,umask=002 -t vfat /dev/hda1 /mnt/windows

Vejam bem, o gid a ser utilizado é o 100, que no Slackware é o grupo users, default para todos os usuários. Se você estiver em outra distro isso deve se alterar um pouco.

wget com proxy

Essa última é rapidinha... quer usar o wget através de um proxy? Basta exportar duas variáveis e ir para o abraço:

	export http_proxy=http://seu.proxy:porta-de-seu-proxy
	export ftp_proxy=http://seu.proxy:porta-de-seu-proxy

Essa dica serve para vários outros programas além do wget... Ah! Caso precise entrar com usuário e senha, tente exportar as varíaveis assim:

	export http_proxy=http://usuario:senha@seu.proxy:porta-de-seu-proxy
	export ftp_proxy=http://usuario:senha@seu.proxy:porta-de-seu-proxy

Agradeço ao leitor Aljandro Flores pela dica de como indicar o usuário e senha do proxy.

Corrigindo o C acentuado

Primeiro você deve configurar o seu encoding. No arquivo /etc/profile.d/lang.sh, comente a linha que diz LANG=C e descomente (retire o # da frente) da linha contendo:

	export LANG="en_US.ISO8859-1"

Se você prefere as mensagens do sistema em português, pode usar pt_BR ao invés de en_US.ISO8859-1. Agora você deve acertar a configuração do GTK2, isso é feito no arquivo /etc/profile.d/gtk+.sh, onde é necessário incluir a linha:

	export GTK_IM_MODULE=xim

E pronto!

Alterando o tamanho da tela "on-the-fly"

Agora, no XFree86 4.3.0, é possivel mudar a resolução da tela com um único comando. Não que eu veja muita utilidade nisso, acho mais interessante usar o CTRL+ALT+"+" ou "-" para fazer isso.

SE você quiser mudar a resolução da sua tela, faça:

	$ xrandr

Para ver as resoluções disponíveis e depois:

	$ xrandr -s N

Utilizando "N" como sendo a resolução que vc quer. Em alguns gerenciadores de janelas, precisa reiniciar o gerenciador para que ele detecte o novo tamanho da tela. Utilize a opção "Reiniciar" ou "Restart" do menu.

Fazendo um disco de boot no Slackware

Não é nada complicado, basta um comando e seguir as instruções:

	$ makebootdisk

Tenha em mãos um disquete bom. Se bem que disquete bom é raridade... e os que estão bons agora podem não estar daqui a 10 minutos.

Extrair audio de DVD

Esta dica me foi passada pelo pzn (mais uma) e faz tocar apenas o som de um DVD, sem a imagem:

	$ mplayer -ao pcm -vo null -vc null

Uma idéia boa para DVDs de áudio...

Fazendo thumbnails

Este comando foi extraído da manpange do convert, mas, como é bastante útil (e pouca gente sabe usar o convert) resolvi colocar aqui:

	$ convert -size 120x120 cockatoo.jpg -resize 120x120
		+profile "*" thumbnail.jpg

O comando é para ser colocado inteiro em uma só linha. Ele irá converter a imagem cockatoo.jpg para uma chamada thumbnail.jpg e com 120 pontos de altura e 120 de largura.

Tirando um screenshot

Muitas vezes queremos tirar um screenshot, mas estamos sem um programa gráfico para isso (ou simplesmente não sabemos como fazer). Uma boa solução é usar o xwd, que foi feito exatamente para isso, fazer dumps de tela.

Para tirar um screenshot da tela inteira faça:

	# xwd -root -out testeshot.xwd

Vários programas conseguem ler o formato .xwd. Mas, se você não tiver um deles, ou preferir tirar o shot diretamente em outro formato, você pode fazer:

	# xwd -root | convert - testeshot.jpg

Ao invés de .jpg, é possível escolher qualquer formato suportado pelo ImageMagick (como .gif ou .png).

O leitor Rodrigo Souza me mandou um jeito muito mais fácil, já que estamos usando o ImageMagick para converter o arquivo xwd para jpg (através do convert), é muito mais fácil usar o próprio ImageMagick para pegar o screenshot, com o comando import:

	# import -w root testeshot.jpg

Vivendo e aprendendo...

RSH como root sem senha

Atualmente é extremamente incomum alguém utilizar o RSH, ainda mais sem senhas. Mas, ainda são muito utilizados em clusters, que costumeiramente são sistemas fechados.

Para que você possa usar o RSH como root e sem senhas, são necessários apenas dois passos:

  1. coloque dentro do seu /root/.rhosts os nomes dos hosts que podem conectar sem senha.
  2. Edite o /etc/inetd.conf e edite as linhas que tratam do in.rshd e do in.rlogind:
    	shell  stream  tcp     nowait  root    /usr/sbin/tcpd  in.rshd -h
    	login  stream  tcp     nowait  root    /usr/sbin/tcpd  in.rlogind -h
    	
    As linhas estão comentadas, sendo necessário descomentá-las.

Depois disso, basta reiniciar o inetd. E começar a se "divertir"...

Não executar o hotplug

Esta é rapidinha, as vezes, o hotplug detecta algo errado e chega a travar o computador, para solucionar isso, basta colocar no prompt do LILO:

	Linux nohotplug

Aí o seu sistema boota sem o rodar o hotplug e você pode colocar o módulo malvado na blacklist ou então desativar o hotplug para não ser mais ativado na inicialização do sistema.

Mudar o hostname

Ok, você quer mudar o hostname da sua máquina e não quer reconfigurar toda a rede usando o netconfig, não tem problema, apenas edite os arquivos:

  • /etc/HOSTNAME
  • /etc/hosts

No próximo boot, o seu hostname já estará alterado. Se quiser alterar ainda neste boot, além de editar os arquivos, execute o comando:

	$ hostname `cat /etc/HOSTNAME | cut -f1 -d .`
Contar palavras

Scriptzinho em awk para contar palavras em um texto. Provavelmente não deve ser o mais eficiente, mas é bem interessante e rapido de fazer:

	awk '{ for (i=1;i<=NF;i++) { lista[$i]+=1 } }
		END { for (i in lista) { print i,lista[i]} }'

No final ele mostra uma lista com as palavras usadas no texto e quantas vezes cada uma delas aparece...

Me mandaram a sugestão de usar o wc para contar palavras (já que é para isso que ele foi criado), mas o wc não faz a parte de mostrar quantas vezes aparece cada palavra, apenas conta quantas tem no texto.

Quem estiver curioso:

	wc -w arquivo

A sugestão foi mandada por Rodrigo Souza. E fica aqui, para ninguém mais achar que eu desconheço o wc -;).

CUPS reclama: Unsupported format 'application/octet'!

Você está imprimindo em modo "raw", querendo que o seu sistema de impressão não faça absolutamente nada com o texto e o cups, além de imprimir lixo, enche o seu /var/log/cups/error_log com a mensagem acima...

A solução é simples, edite o /etc/cups/mime.convs e o /etc/cups/mime.types e, nos dois, descomente a linha:

	#application/octet-stream

Depois reinicie o cups e tente novamente...

Chamando outro gerenciador de janelas

As vezes queremos apenas fazer um teste, dar uma olhadinha em um gerenciador de janelas diferente. E, apenas para um teste, não compensa trocar o .xinitrc ou usar o xwmconfig. É muito mais simples chamar diretamente o gerenciador de janelas novo através da própria linha de comando o startx, como no exemplo:

	# startx `which fvwm2`

Isso irá chamar o X, e usar o fvwm2 como gerenciador de janelas. Pode substituir o fvwm2 pelo executável de qualquer um dos WMs disponíveis na sua máquina.

  • wmaker -> WindowMaker
  • blackbox -> blackbox
  • gnome-session -> GNOME
  • startxfce (ou startxfce4) -> XFCE
  • startkde -> KDE

Espero que a lista acima ajude a escolher

Acelerando o Flash no Mozilla

Quem usa o mozilla compilado com a GTK2+, pode ter notado que as animações em flash ficam extremamente lentas. Se você estiver sofrendo com este problema, não precisa sofrer mais, basta fazer o seguinte antes de iniciar o mozilla:

        $ export FLASH_GTK_LIBRARY=libgtk-x11-2.0.so.0

Para facilitar a vida, é melhor liberar este comando para todos os usuários, você pode simplesmente colocar no /etc/profile ou criar um mozilla.sh no /etc/profile.d com o seguinte conteúdo:

        #!/bin/sh
        export FLASH_GTK_LIBRARY=libgtk-x11-2.0.so.0

Lembre, é claro, de tornar este arquivo executável.

Aumentando o brilho no X

Este comando não é para regular o brilho... mas acaba servindo para isso... na realidade, com ele você pode regular a intensidade de cada cor (vermelho, verde e azul). Mas basta ser criativo -;)

        # xgamma -gamma 1.2

Com este comando, o seu vídeo ficará um pouco mais claro... você pode brincar um pouco com isso... depois que achar o valor ideal, coloque este comando para ser iniciado no seu .xinitrc (ou .xsession)

Se quiser voltar ao normal, o default é 1.0. Divirta-se.

Socorro! Meu mouse corre para o canto da tela!

Isso é mais comum do que se pensa. Por default, o slackware vem configurado para utilizar mouses PS/2. Quando estamos usando um mouse serial, isso faz com que ele caminhe para o canto da tela. Para resolver esse problema, basta trocar o protocolo do mouse no arquivo /etc/X11/xorg.conf. Troque onde está:

		Option "Protocol" "PS/2"
Para:
		Option "Protocol" "Microsoft"
Erros com GTK2 e arquivos acentuados

Para variar, mais alguma peculiaridade engraçada da GTK2. Depois do fabuloso C acentuado, temos o problema da caixa de diálogo para escolher arquivos e diretórios não apresentar arquivos com acentuação. Para resolver isso é necessário fazer:

	$ export G_FILENAME_ENCODING=ISO-8859-1

Para tornar a alteração permanente, inclua-a no seu /etc/profile.d/gtk+.sh ou em algum outro arquivo que seja executado quando você logar na máquina (como o .bash_profile, .bashrc ou até mesmo o .xinitrc)...

Adicionando e retirando usuários de um grupo

Adicionar e retirar usuários de um grupo é mais fácil do que parece, basta utilizar o comando gpasswd. Ao remover, a sintaxe é:

	$ gpasswd -d usuario grupo

E, para adicionar use:

	$ gpasswd -a usuario grupo

Para quem prefere o jeito tradicional, pode usar o vigr para editar o /etc/group. Essa dica foi passada pelo m4sk4r4 (para falar a verdade eu vi ele "falando" a respeito no irc).

Tela azul no Xine

Isso acontece quando o xine utiliza o driver de video Xv e a implementação do Xv da sua placa de vídeo não presta (alguém aí falou SiS?). Para resolver, existem duas soluções:

  1. Usar outro driver de vídeo: xine -V shm (por exemplo)
  2. Manter o driver Xv e editar o xorg.conf, na seção Device, adicione a linha:
    		Option "XaaNoOffScreenPixmaps"
    	

Tanto uma como a outra maneira retiram a aceleração do xine, ou seja, tudo vai ficar nas costas do seu processador.

Problemas com a transparência real

O mozilla (e outras aplicações) não conseguem manipular direito a transparência real do novo X (X11 6.y; y>=8) quando usamos a profundidade de cores de 16bits.

Isso acontece porque essas aplicações esperam que os dados de cada pixel estejam alinhados de 8 em 8, no padrão RGBA e, com 16bits, não dá para se ter 8 para o canal R, 8 para o G e 8 para o B. A solução é simples, edite o seu xorg.conf e troque a profundidade padrão para 24bpp:

	DefaultDepth 24

Essa informação fica na seção Screen.

Provedores que precisam de autenticação

Essa é uma dica muito legal, enviada por allan_linux, para fazer autenticação automática em provedores que precisam de uma autenticação web (por exemplo, o ig).

Execute o lynx, habilitando o log dos comandos dados:

	# lynx -cmd_log=ig.log ig.com.br

Logo que autenticar, saia do programa (Ctrl+C). Copie o arquivo ig.log para o /etc/ppp e troque as suas permissões para 600, já que o seu usuário e a sua senha estão gravados nele:

	# cp ig.log /etc/ppp
	# chmod 600 /etc/ppp/ig.log

Agora, basta adicionar no seu /etc/ppp/ip_UP o seguinte comando:

	/usr/bin/lynx -cmd_script=/etc/ppp/ig.log ig.com.br

Toda vez que levantar a sua conexão de internet, os comandos que estão no ig.log serão executados novamente. E pronto!


Links Principal Artigos Piter Punk Dicas Programas
 
Powered by Slackware Linux - Written in VIm (the best one!) Last Update: 15 Aug 2005