Existem muitas páginas de dicas, e algumas podem ser encontradas na página de links. Aqui estão reunidas algumas dicas aleatórias, se forem úteis, bom proveito, senão, paciência.
Lembrando que estou aceitando sugestões de dicas, basta enviar para meu endereço de email, que consta no fim desta página.
O Linux tem várias aplicações úteis para fazer FTP, tanto upload quanto download. Alguns destes aplicativos são para ser utilizados em linha de comando, e outros para uso em interface gráfica.
Linha de ComandoEu costumo utilizar os seguintes programas de linha de comando para fazer download de arquivos:
Para fazer download no modo gráfico, também conhecido como X, eu utilizo quase que exclusivamente o X Downloader, que tem como característica mais interessante, a meu ver, o fato de que pode pegar um link que seja colocado no clipboard do X, mais ou menos da mesma forma que o GetRight ©.
Integridade de ArquivosUm dos problemas mais comuns quando se faz download usando linhas discadas é a corrupção de arquivos. Embora a maior parte das vezes o protocolo TCP cuide da integridade dos arquivos transferidos, ainda ocorrem erros de transferência, tornando inúteis aqueles arquivos. Se o arquivo ficará apenas no disco rígido, é uma questão de fazer o download novamente, mas quando o erro de transferência é “eternizado” em um CD, o problema fica um pouco mais sério. E quando se trata da imagem ISO de 640MB daquela distribuição de Linux, é melhor conferir antes de queimar o CD se o arquivo está OK.
Para nossa sorte, a maioria dos sites disponibiliza um código de
checksum extendido, o md5sum
, ou MD5
Checksum. Verifique no diretório em que está o arquivo que você
está baixando se existe um arquivo com nome md5.sum
, ou
assemelhado, e baixe o mesmo também. Se não houver um arquivo
md5.sum
ou assemelhado, verifique na página do programa,
geralmente existe uma página de nome Download, em que
são listados os nomes dos arquivos e respectivos somatórios MD5.
A verificação é mais simples se há um arquivo md5.sum
(vou
assumir, de agora em diante, que é este o nome do arquivo que
contém o somatório MD5 dos arquivos que foram baixados - se não for
este o caso, siga as instruções abaixo levando isto em conta).
Neste caso, basta executar o seguinte comando, no diretório em que
os arquivos foram baixados:
$ md5sum --check md5.sum
O md5sum
irá listar os arquivos em md5.sum
(nem
sempre são todos os que foram copiados - neste caso irá ocorrer um
erro de leitura para aquele arquivo, mas o md5sum irá prosseguir
com os outros arquivos) junto com uma mensagem de diagnóstico,
informando no final um resumo de quantos arquivos tiveram seu
somatório md5 conferido com e sem erros.
Se você não tem um arquivo md5.sum
, mas tem uma página que
lista os arquivos e respectivos somatórios MD5, então terá de fazer
a conferência visualmente, ou seja, terá que executar o comando
md5sum como abaixo e conferir arquivo por arquivo se o somatório
está correto:
$ md5sum *
Se você não encontrou o somatório MD5 dos arquivos em nenhuma parte, verifique se o programador responsável por fazer o upload dos arquivos tem condições de fazer isto para ti ou apontar onde os mesmos se encontram.
Autenticidade de ArquivosOutro problema que pode ocorrer é o caso de arquivos falsificados, colocados no lugar dos arquivos originais dos programadores. Já aconteceu com uma ferramenta Linux, de um invasor trocar a versão que constava no site principal de FTP por uma versão que possuía uma backdoor.
Este é um problema diferente do anterior. No caso anterior
queriamos saber se o arquivo foi transferido corretamente. Agora
queremos saber se o arquivo que estamos transferido é o que
queremos baixar, ou se foi adulterado por alguém. Um invasor mais
esperto vai atualizar os arquivos md5.sum
, para que uma
verificação casual não acuse erro de somatório MD5. Como saber se o
arquivo foi adulterado por um invasor?
Neste caso, precisamos verificar se o autor dos programas assinou os programas. O conceito de assinatura de arquivos vai ser discutido na página sobre segurança, de forma que aqui fica apenas a dica: verifique se o arquivo foi assinado. Para isto, terás que ter a chave pública do programador em questão na sua keyring, bem como um aplicativo para verificação da autenticidade da assinatura e do arquivo em relação à assinatura.
Para fazer esta verificação, normalmente se utiliza o
GnuPG. Na página do mesmo existem
documentos explicando como instalar e utilizar o mesmo. Como última
observação desta dica, distribuições “oficiais”, como o
Conectiva Linux, assinam
todos os pacotes RPM que estão em seu site. A assinatura do pacote
RPM pode ser verificada até mesmo com o aplicativo rpm
(veja a página man
do rpm
, particularmente a
opção --checksig
) e apt-get
(para quem tem a
última versão do Conectiva Linux ou usa o
Debian GNU/Linux).
Um aplicativo do porte do wget
possui muitas
funcionalidades, permitindo que se utilize o mesmo de muitas formas
diferentes. Só a possibilidade de fazer mirror de sites permite que
se mantenha uma cópia local de sites como o
Linux Gazette, por exemplo,
permitindo consultas “off line” ao mesmo, mesmo que o
browser não possua esta funcionalidade.
A dica sobre o wget que vou passar aqui é a forma que eu utilizo para agendar downloads de vários arquivos em um horário em que não estou presente (desde que o computador permaneça ligado, é claro).
O primeiro passo é criar um arquivo com todos os links que devem
ser baixados, informando a URL completa. Por exemplo, suponha que
pretendo fazer o download de todos os arquivos do Netscape no site
de atualizações do Conectiva Linux 5.0. Para tal, crio um diretório
$HOME/download/atualizacoes-5.0/
e, dentro do mesmo, crio
o arquivo get-list.txt
, com o seguinte conteúdo:
ftp://atualizacoes.conectiva.com.br/5.0/i386/netscape*
O próximo passo é, ainda no diretório
$HOME/download/atualizacoes-5.0/
, executar o seguinte
comando:
$ at 19:00
> wget -c -t0 -T30 -i get-list.txt
> Ctrl+D
Quando é informado o Ctrl+D, o comando at termina a sua entrada e informa o número do job, bem como o horário que o mesmo será executado. No dia seguinte, se a tarefa já foi completa, você recebe um email na sua conta local informando o resultado do comando.
As opções informadas são:
get-list.txt
(pode ser qualquer nome), em vez de receber a mesma na linha de
comando.
É claro que com uma lista de arquivos tão pequena para se baixada,
não há necessidade de se criar um arquivo para guardar o link, mas
considere o fato que, às vezes, você se esquece de onde baixou
determinado arquivo. Se tiver o arquivo get-list.txt
no
diretório em que está o arquivo que você baixou, fica mais fácil de
identificar a origem e mesmo de determinar se é a última versão.
O uso de disquetes de forma eficiente requer poucos truques, desde que se saiba o que fazer. Por exemplo, o padrão no Unix é que cada unidade removível tenha que ser montada após a inserção, e desmontada antes de ser ejetada ou retirada a unidade de leitura. Isto vale para disquetes e umidades de CD.
Entretanto, a maioria dos usuários está acostumada com o modo DOS,
ou seja, simplesmente inserir um disquete na unidade de leitura e
executar um dir a:
para saber o que contém o mesmo, e ir
trocando disquetes e repetindo o comando até encontrar o disquete
que procura. Só que se isto for feito no Linux podemos ter
problemas sérios: se você montar um disquete, o diretório do mesmo
é lido para a memória e só será descartado quando a unidade for
desmontada. Isto significa que, se você trocar de disquete sem
desmontar o disquete, um comando dir irá retornar exatamente
a mesma listagem de diretório. Se a unidade for
desmontada, pode ocorrer que o diretório da memória seja gravado
sobre o diretório do disquete, fazendo com que o conteúdo original
do disquete seja perdido.
Se formos seguir o modo UNIX de trabalhar, então para cada
disquete teremos que repetir os seguintes comandos (admitindo que
estamos montando os disquetes em /mnt/floppy
, que o
disquete a ser montado está em /dev/fd0
e é tipo
vfat
, ou seja, disquete formatado pelo DOS/Windows®):
$ mount -t vfat /dev/fd0 /mnt/floppy
$ dir /mnt/floppy
$ umount /mnt/floppy
Para facilitar a vida dos usuários, os dois primeiros comandos já fazem parte de um alias, ou pseudo-comando, em algumas distribuições Linux:
$ alias fd
alias fd="mount /dev/fd0 /mnt/floppy; cd /mnt/floppy && ls"
Entretanto, esta solução ainda é um pouco capenga em relação à
facilidade que temos no DOS/Windows®. Mas não precisamos nos
contentar com uma solução capenga, a maioria das distribuições
Linux conta com um pacote chamado mtools
, que justamente
visa prover o usuário de ferramentas para trabalhar com unidades de
disquete e disquetes formatados pelo DOS/Windows®. No caso,
para encontrar aquele arquivo/disquete em um conjunto de disquetes,
tudo o que precisamos fazer é executar o seguinte comando:
$ mdir a:
Para nossa conveniência, as mtools
assumem que a
unidade A:
é /dev/fd0, e B:
é /dev/fd1. Outros
comandos que podem ser utilizados incluem o mcopy
, para
copiar de e para o disquete, e o mtype
, para fazer o que o
cat
faz por arquivos texto no Linux.
A formatação de disquetes pode ser feita em dois passos, mas é
importante primeiro decidir qual o tamanho que terá cada disquete.
Podemos formatar um disquete de 1.44 MB usando o dispositivo
/dev/fd0H1440
, mas não é este o único formato de disco que
temos disponível:
$ dir /dev/fd0H*
/dev/fd0H1440 /dev/fd0H1722 /dev/fd0H1840 /dev/fd0H720
/dev/fd0H1600 /dev/fd0H1743 /dev/fd0H1920 /dev/fd0H820
/dev/fd0H1680 /dev/fd0H1760 /dev/fd0H360 /dev/fd0H830
Eu já utilizei com sucesso o formato de 1.722MB, ou seja,
/dev/fd0H1722
. O formato /dev/fd0H1680
era
utilizado nos disquetes de instalação do Windows 95®.
Para formatar disquetes, eu geralmente utilizo o formato vfat, por que o formato ext2 exige um overhead desnecessário do disquete, sendo ineficiente para o mesmo. A sequência de comandos para formatar o disquete em 1.722MB é:
$ fdformat /dev/fd0H1722
$ /sbin/mkfs.msdos /dev/fd0H1722
E é isso! O disquete está formatado e verificado, pronto para ser
utilizado tanto no seu Linux, com as ferramentas mtools
,
quanto no DOS/Windows®, com as ferramentas padrão daquele
sistema operacional.
A edição de arquivos é parte importante no Linux. Não só a totalidade dos aplicativos e programas GNU utilizados no Linux é configurada a partir de arquivos textos, como o próprio kernel utiliza arquivos no formato texto para configurar várias opções. Mais que isto, o Linux é herdeiro da longa tradição do UNIX, que tem sido utilizado por acadêmicos no mundo inteiro não só para escrever programas, mas também teses, resumos, e artigos científicos.
Quando está se falando em edição de arquivos no Linux, existem
várias coisas a serem vistas. Em primeiro lugar, o Linux é
acompanhado de ferramentas para edição de arquivos en
masse. Você pode facilmente editar vários arquivos
.html
, por exemplo, substituindo um link errado em todos
eles automaticamente.
Em segundo lugar, o Linux possui uma gama enorme de editores de texto que trabalham em tela cheia no console, desde o vi e seus clones, ao EMACS e a editores como o mcedit, que imita o editor interno no Norton Utilities®, a clones do WordStar$reg; e outros editores menos conhecidos.
Em terceiro lugar, existem também editores de texto para o modo gráfico (X Window System). Desde o KOffice, que funciona integrado ao KDE, ao Pathetic Writer, editor que acompanha o Siag Office, a editores stand-alone, como o WordPerfect®, o XEmacs, e outros.
Na verdade existe uma gama enorme de maneiras de se trabalhar com textos no Linux, e há o potencial de que cada usuário encontre sua própria forma de trabalhar com o mesmo.
Formatos de DocumentoTradicionalmente o UNIX tem sido utilizado para armazenar documentos em formato texto puro. Esta tradição é antiga, e talvez tenha seu princípio com o próprio UNIX.
Em vez de utilizar um formato de arquivo binário, como por exemplo o formato de documentos do MS Word®, utiliza-se geralmente texto plano, em que são inseridas instruções específicas de formatação (sempre em formato texto) dependendo do tipo de documento que se está trabalhando.
Por exemplo, o pacote de formatação de arquivos groff
trabalha com diretivas de ponto que indicam como o documento deve
ser formatado. Para ter uma idéia de como é um documento formatado
pelo groff, basta usar uma página man qualquer. Para saber como é o
aspecto interno de um documento groff, experimente o seguinte
comando:
$ cat /usr/man/man1/lsmod.1
Se houver um erro de arquivo não encontrado, use o comando abaixo:
$ zcat /usr/man/man1/lsmod.1.gz
Outro formato de documento comum é o TeX, que foi criado por Donald Knuth para formatação de documentos. O TeX tem sido utilizado extensivamente em universidades americanas para produção de textos científicos.
Por fim, temos o SGML e seu “filho” mais recente, o XML. Ambos são linguagens de marcação, e expressam uma filosofia de trabalhar com arquivos (ou objetos, como no caso do XML). O HTML é um dos exemplos de sucesso do SGML: Um documento chamado de DTD (“Document Type Declaration” - vide a HTML 4.01 Specification) define como é a estrutura do documento (lógica e também de apresentação) e um conjunto padrão de ferramentas pode ser então utilizada para formatar e verificar a consistência da estrutura do documento - qualquer documento. Uma extensão do uso da SGML é em empresas que trabalham extensivamente com documentos. Em vez de utilizar um formato de documento binário e potencialmente não suportado por muitos editores, eles adotam o SGML, criam DTD's para representar os documentos mais comuns, e deixam ao gosto dos autores escolher qual o editor de texto que utilizarão. Os programadores podem se aproveitar da estrutura de um documento SGML e escrever ferramentas mais práticas para trabalhar com estes documentos - formtação, recuperação, arquivamento, pesquisa, etc.
Editores Stream
Editores são chamados de “stream” quando eles tratam o
texto como um fluxo contínuo de bytes, e operam sobre o mesmo. O
editor “stream” mais conhecido no mundo Unix e Linux é o
sed
.
O sed
geralmente é utilizado quando se tem que fazer várias
alterações em um conjunto de arquivos. Vamos supor um exemplo
prático: Você quer substituir uma determinada palavra, digamos
“XWindows” por outra, “X Window System”, em um livro
sobre o X que você esteja escrevendo. No nosso caso, o livro tem
dezenas de capítulos, como cap01.txt, cap02.txt, e assim por
diante, e a palavra errada está presente em todos eles.
Podemos fazer isto com um simples script. O sed
lê da
entrada padrão, aplica os comandos especificados e escreve na saída
padrão. Para filtrar um arquivo com o sed
faríamos o
seguinte:
$ sed script < entrada > saida
Se o arquivo de entrada fosse myfile.txt
, então o comando
ficaria:
$ sed script < myfile.txt > saida
Não podemos redirecionar a saída para myfile.txt
por que
teremos um problema de sobrescrita, e perderemos todo o conteúdo de
myfile.txt
. O que se faz é direcionar a saída para um
arquivo temporário e então renomear este arquivo temporário para
myfile.txt
:
$ sed script < myfile.txt > saida.tmp
$ mv saida.tmp myfile.txt
Para trocar uma string, o que utilizamos é a instrução
s//
, que fica s/XWindows/X Window System/g
. O
“g
” no final é para que o sed
faça a
substituição em todas as ocorrências que houverem em uma linha, e
não apenas na primeira.
Aliando ao sed
nosso conhecimento em shell script
,
vamos escrever um pequeno script para fazer o serviço para nós:
#!/bin/bash
#
SED_SCRIPT="sed_script.sed"
cat <<EOF_SED_SCRIPT > $SED_SCRIPT
s/XWindows/X Window System/g
EOF_SED_SCRIPT
for ARQUIVO in cap??.txt
do
sed -f $SED_SCRIPT $ARQUIVO > tmp.txt
mv tmp.txt $ARQUIVO
done
rm $SED_SCRIPT
#EOF
Supondo que o script chame-se correcao.sh
, basta mudar os
atributos do mesmo para “executável” (chmod +x
correcao.sh
), e executar o mesmo (./correcao.sh
). É tudo
o que precisamos para que as dezenas de arquivos sejam corrigidas.
Em geral este é o uso do sed
. Ele pode ser utilizado para
fazer várias substituições de uma só vez, e também para outras
edições no arquivo. Veja a documentação que acompanha o mesmo para
ter uma idéia de todas as possibilidades. Se quiser um pequeno
desafio para iniciar, descubra como o sed
pode ser utilizado
para que um arquivo editado no MS DOS® seja alterado para o
formato Unix. No DOS, as linhas terminam com uma seqüência cr+lf, e
no Unix, apenas um caracter lf é utilizado.
Outro tipo de editor muito popular no Linux são os editores full screen. São editores para serem usados em um console em modo texto, e ocupam a tela inteira. Podem ser utilizados no X, dentro de um xterm ou um terminal rxvt.
Podemos começar com o clássico: os famosíssimos e antiqüíssimos
vi
e EMACS
. Ambos são tradicionais no mundo Unix e
bem conhecidos por quem tem alguma experiência com o mesmo. É
difícil dizer qual dos dois é mais popular ou tem a maior legião de
apaixonados e devotados fãs/usuários.
A primeira vista, nenhum dos dois tem nada que atraia a vista: seu aspecto é horrível e o primeiro contato com eles é, geralmente, traumático, sendo o trauma proporcional ao tempo que o usuário tem de uso de Windows. Alguns chegam a odiar e declarar guerra a qualquer um dos dois, mas quem superar esta fase irá colher os frutos que estes editores reservam aos que persistem.
Atualmente eu sou usuário do vi, e estou, aos poucos, dominando esta fera. Não é fácil, mas tenho persistido e, quem sabe, algum dia não consigo dizer que sou um usuário razoável do vi. As dicas sobre o vi você pode conferir aqui. Você pode conferir também minha tradução/adaptação do Vim CookBook aqui.
Sobre o EMACS
eu ficarei devendo por enquanto. Em um futuro
não muito distante eu farei uma tentativa séria de utilizar o mesmo
no Linux (ouvi dizer que ele é excelente para edição de arquivos
SGML) e estarei compartilhando aqui minhas experiências.
Aguarde...
Em um mundo em que redes mistas são a regra e não a exceção, poder comunicar servidores e clientes Linux com servidores e clientes Microsoft Windows® é essencial.
O pacote que faz este serviço é o Samba, que pode ser utilizado em qualquer Unix, não apenas no Linux, e que permite que uma máquina Linux funcione como servidor ou como cliente, acessando servidores e permitindo o acesso de clientes Windows.
A administração do SAMBA é extremamente fácil, e existe um livro que ajuda bastante neste sentido: "Using Samba". Este livro está disponível para download em http://linux.ora.com/ no formato PDF.
Para quem tem o Conectiva Linux, a instalação do pacote samba-doc e/ou do samba-swat acrescenta uma cópia em formato HTML deste mesmo livro. No caso do samba-swat, o livro fica em /usr/share/swat/using-samba.
Outros guias, em português, podem ser encontrados na página de suporte da Conectiva.