COMO FAZER DOS/Windows ao Linux De Guido Gonzato, guido@ibogfs.cineca.it - Traduzido para o português por Rafael Rodrigues Obelheiro obelix@biquinho.furg.br e Rafael Caetano dos Santos rcaetano@linux.ime.usp.br. v1.3.0, 15 de abril de 1998 Este COMO FAZER é dedicado a todos os usuários de DOS e Windows que decidiram migrar para o Linux, o clone livre do Unix. O propósito deste documento é ajudar o leitor a transportar seu conhecimento de DOS e Windows para o ambiente Linux, assim como dar dicas sobre o intercâmbio de arquivos e recursos entre os dois sistemas operacionais. ______________________________________________________________________ Índice geral 1. Introdução 1.1 O Linux é Adequado a Você? 1.2 É sim. Diga mais. 1.2.1 Conceitos Introdutórios 1.2.2 Conseguindo Ajuda 1.3 Convenções 2. Para os Impacientes 3. Arquivos e Programas 3.1 Arquivos: Noções Preliminares 3.2 Ligações Simbólicos 3.3 Permissões e Propriedade 3.4 Arquivos: Traduzindo Comandos 3.4.1 Exemplos 3.5 Executando Programas: Multitarefa e Sessões 3.6 Executando Programas em Computadores Remotos 4. Usando Diretórios 4.1 Diretórios: Noções Preliminares 4.2 Permissões de Diretórios 4.3 Diretórios: Traduzindo Comandos 4.3.1 Exemplos 5. Disquetes, Discos Rígidos, etc 5.1 Gerenciando Dispositivos à Maneira do DOS 5.2 Gerenciando Dispositivos à Maneira UNIX 5.3 Fazendo uma Cópia de Segurança 6. E o Windows? 7. Personalizando o Sistema 7.1 Arquivos de Inicialização do Sistema 7.2 Arquivos de Inicialização de Programas 8. Um pouco de programação 8.1 Roteiros para Shell: Arquivos .BAT com Esteróides 8.2 C 9. O 1% Restante 9.1 Usando tar & gzip 9.2 Instalando Aplicativos 9.3 Dicas Indispensáveis 9.4 Onde Encontrar Aplicativos 9.5 Algumas Coisas que Você não Conseguia Fazer 9.6 Extensões Comuns e Programas Relacionados 9.7 Convertendo Arquivos 10. Fim da História, por Enquanto 10.1 Direitos Autorais 10.2 Nota do Autor ______________________________________________________________________ 11.. IInnttrroodduuççããoo 11..11.. OO LLiinnuuxx éé AAddeeqquuaaddoo aa VVooccêê?? Você quer mudar do DOS para o Linux? Boa idéia: o Linux é tecnicamente superior ao DOS, Windows 95 e mesmo ao Windows NT. Mas tome cuidado: ele pode não ser útil para você, se você não for o tipo adequado de usuário. De fato, DOS e Windows são mais usados para jogos e produtividade de escritório, ao passo que o Linux dá seu melhor em trabalho em rede, desenvolvimento e computação científica. O Linux é incrivelmente poderoso, mas aprender como aproveitar esse poder leva tempo. Assim, se você precisa principalmente de programas comerciais, ou se você não está disposto a aprender novos comandos e conceitos, é melhor procurar outra coisa. Tornar o Linux mais fácil de usar é um trabalho em andamento, mas _n_ã_o _e_s_p_e_r_e _t_o_r_n_a_r_-_s_e _p_r_o_f_i_c_i_e_n_t_e _s_e_m _l_e_r _m_u_i_t_a _d_o_c_u_m_e_n_t_a_ç_ã_o _e _u_s_á_-_l_o _p_o_r _p_e_l_o _m_e_n_o_s _u_m _m_ê_s. O Linux não lhe dará resultados instantâneos. Apesar destes avisos, eu tenho 100% de confiança de que, se você se encaixa no perfil adequado de usuário, encontrará no Linux o nirvana para seu computador, e nunca mais vai querer usar DOS ou Windows novamente. A propósito, Linux + DOS/Win podem co-existir na mesma máquina sem problemas. Pré-requisitos para este COMO FAZER: · conhecer os comandos e conceitos básicos do DOS; · ter o Linux, possivelmente com o X Window System, corretamente instalado no seu PC; · ter como interpretador de comandos -- o equivalente ao COMMAND.COM--- o bash. A menos que especificado o contrário, todas as informações desta obra visam o mau e velho DOS. Há informações sobre o Windows aqui e ali, mas tenha em mente que o Windows e o Linux são totalmente diferentes, ao passo que o DOS é uma espécie de parente pobre do UNIX. 11..22.. ÉÉ ssiimm.. DDiiggaa mmaaiiss.. Você instalou o Linux e os programas de que precisava no seu PC. Você criou uma conta para você mesmo (se não, digite adduser _a_g_o_r_a_!) e o Linux está rodando. Você digitou seu nome e sua senha, e agora está olhando para a tela pensando: "E agora?" Não se desespere. Você está quase pronto para fazer as mesmas coisas que costumava fazer com DOS/Win, e muito mais. Se você estivesse rodando DOS/Win ao invés de Linux, estaria fazendo alguma das seguintes tarefas: · executando programas e criando, copiando, visualizando, apagando, imprimindo e renomeando arquivos; · mudando, criando e apagando seus diretórios, e listando seu conteúdo (com CD, MD, RD, DIR); · formatando disquetes e copiando arquivos de/para eles; · personalizando o sistema; · escrevendo arquivos .BAT e programas na sua linguagem favorito; · o 1% restante. Você ficará feliz em saber que estas tarefas podem ser realizadas no Linux de uma maneira similar ao DOS. No DOS, o usuário médio utiliza muito pouco dos mais de 100 comandos disponíveis: o mesmo, até certo ponto, vale também para o Linux. 11..22..11.. CCoonncceeiittooss IInnttrroodduuttóórriiooss A melhor maneira de aprender algo novo é praticando. Você é fortemente estimulado a experimentar e brincar com o Linux: você não danificará seu sistema assim. Alguns pontos: · primeiro, como sair do Linux com segurança. Se você estiver numa tela de modo texto, pressione <CTRL-ALT-DEL>, espere o sistema reinicializar e desligue o PC. Se você estiver trabalhando sob o X Window System, pressione <CTRL-ALT-BACKSPACE> primeiro, e depois <CTRL-ALT-DEL>. _N_u_n_c_a desligue nem reinicialize o PC diretamente: isto pode danificar o sistema de arquivos; · diferentemente do DOS, o Linux tem mecanismos embutidos de segurança. Arquivos e diretórios têm permissões associadas a si; conseqüentemente, alguns deles não podem ser acessados pelo usuário normal; (veja a Seção ``Permissões e Propriedade''). O DOS, ao contrário, permite que você apague todo o conteúdo de seu disco rígido; · há um usuário especial chamado "root": o administrador do sistema, com poder total de vida e morte sobre a máquina. Se você trabalha no seu próprio PC, você será root também. Trabalhar como root é _p_e_r_i_g_o_s_o: qualquer erro pode danificar seriamente ou mesmo destruir o sistema, como no DOS/Win. Não trabalhe como root a menos que absolutamente necessário; · grande parte da complexidade do Linux deve-se a sua extrema configurabilidade: virtualmente todo recurso e todo aplicativo pode ser personalizado através de um ou mais arquivos de configuração. Complexidade é o preço a pagar pelo poder; · redirecionamento e canalização são recursos adicionais no DOS, mas muito importantes e muito mais poderosos no Linux. Comandos simples podem ser juntados para realizar tarefas complexas. Eu sugiro fortemente que você aprenda a usá-los. 11..22..22.. CCoonnsseegguuiinnddoo AAjjuuddaa Há várias maneiras de se conseguir ajuda no Linux. As mais importantes são: · _l_e_r _a _d_o_c_u_m_e_n_t_a_ç_ã_o---falo sério. Embora o COMO FAZER que você está lendo sirva como uma introdução ao Linux, há vários livros que você realmente deve ler: "Linux Installation and Getting Started" ( <http://sunsite.unc.edu/mdw/LDP/gs/gs.html>), de Matt Welsh, "Linux User Guide", de Larry Greenfield, ( <ftp://sunsite.unc.edu/pub/Linux/docs/linux-doc-project/users- guide>), e o Linux FAQ ( <http://sunsite.unc.edu/mdw/FAQ/Linux- FAQ.html>). Sinta-se com a consciência pesada até que você tenha lido pelo menos um deles; · a documentação dos pacotes instalados na máquina é normalmente encontrada nos subdiretórios sob /usr/doc/; · para obter ajuda sobre os "comandos internos" do shell, digite help ou, ainda melhor, man bash ou info bash; · para obter ajuda sobre um comando, digite man comando, que chamará a página de manual ("man") pertinente ao comando. Alternativamente, digite info comando, que chamará (se houver) a página info pertinente ao comando. Info é um sistema de documentação em hipertexto, talvez não muito intuitivo de início. Finalmente, você pode tentar apropos comando ou whatis comando. Com todos esses comandos, pressione `q' para sair. 11..33.. CCoonnvveennççõõeess Ao longo desta obra, os exemplos normalmente seguirão o seguinte formato: <...> é um argumento obrigatório, ao passo que [...] é um argumento opcional. Exemplo: $ tar -tf <arquivo.tar> [> arquivo_redir] arquivo.tar deve ser indicado, mas o redirecionamento para arquivo_redir é opcional. "LPM" significa "por favor Leia as Páginas de Manual para mais informações". Quando o prompt de um exemplo de comando for `#', o comando pode ser executado apenas pelo root. 22.. PPaarraa ooss IImmppaacciieenntteess Quer começar? Dê uma olhada nesta tabela: DOS Linux Observações ------------------------------------------------------------------------------ ATTRIB (+-)atrib file chmod <modo> arquivo completamente diferente BACKUP tar -Mcvf device dir/ idem CD nomedir\ cd nomedir/ quase a mesma sintaxe COPY arq1 arq2 cp arq1 arq2 idem DEL arq rm arq cuidado - não há undelete DELTREE nomedir rm -R nomedir/ idem DIR ls sintaxe um pouco diferente DIR arq /S find . -name arq completamente diferente EDIT arq vi arq acho que você não vai gostar jstar arq parecido com o EDIT do DOS FORMAT fdformat, mount, umount sintaxe bem diferente HELP comando man comando mesma filosofia info comando MD nomedir mkdir nomedir/ quase a mesma sintaxe MOVE arq1 arq2 mv arq1 arq2 idem NUL /dev/null idem PRINT arq lpr arq idem PRN /dev/lp0, /dev/lp1 idem RD nomedir rmdir nomedir/ quase a mesma sintaxe REN arq1 arq2 mv arq1 arq2 não funciona para múltiplos arquivos RESTORE tar -Mxpvf device sintaxe diferente TYPE arq less arq muito melhor WIN startx da água para o vinho Se uma tabela de comandos não é suficiente para você, consulte as seções seguintes. 33.. AArrqquuiivvooss ee PPrrooggrraammaass 33..11.. AArrqquuiivvooss:: NNooççõõeess PPrreelliimmiinnaarreess O Linux tem uma estrutura de diretórios e arquivos similar à do DOS/Win. Arquivos têm nomes-de-arquivo que obedecem a regras especiais, são gravados em diretórios, alguns são executáveis, e a maioria destes tem opções de linha de comando. Além disso, você pode usar caracteres coringa, redirecionamento e canalização. Há apenas algumas pequenas diferenças: · Sob o DOS, os nomes-de-arquivo tem o formato chamado 8.3; p.ex., INSUFICI.TXT. No Linux, podemos fazer de um jeito melhor. Se você instalou o Linux usando um sistema de arquivos como o ext2 ou umsdos, você pode usar nomes-de-arquivo mais longos (até 255 caracteres), e com mais de um ponto: por exemplo, Este_eh.um.nome_de_arquivo.MUITO.longo. Observe que eu usei tanto caracteres maiúsculos como minúsculos: de fato... · letras maiúsculas e minúsculas em nomes-de-arquivo e comandos são diferentes. Portanto, NOMEARQ.tar.gz e nomearq.tar.gz são dois arquivos diferentes. ls é um comando, LS é um erro; · usuários de Windows 95: cuidado ao usar nomes-de-arquivo longos no Linux. Se um nome-de-arquivo contiver espaços (não recomendado, mas possível), você deve incluir o nome-de-arquivo entre aspas duplas sempre que fizer referência a ele. Por exemplo: $ # o seguinte comando cria um diretório chamado "Meus arquivos antigos" $ mkdir "Meus arquivos antigos" $ ls Meus arquivos antigos bin tmp Além disso, certos caracteres não devem ser usados: alguns deles são !*$&. · não há extensões obrigatórias, como .COM e .EXE para programas, ou .BAT para arquivos de lote. Arquivos executáveis são marcados com um asterisco `*' ao final do nome quando você executa o comando ls -F comando. Por exemplo: $ ls -F Eu_sou_um_dir/ cindy.jpg cjpg* letter_to_Joe meu_script* old~ Os arquivos cjpg* e meu_script* são executáveis, isto é, "programas". No DOS, nomes de arquivos de backup terminam em .BAK, enquanto no Linux terminam com um til. Além disso, um arquivo cujo nome comece com um ponto é considerado oculto. Exemplo: o arquivo .Eu.sou.um.arquivo.oculto não aparece na saída de um comando ls; · opções de programas são obtidas através de /opção no DOS; no Linux se usa -opção ou --opção. Exemplo: dir /s vira ls -R. Observe que muitos programas DOS, como PKZIP e ARJ, usam opções ao estilo UNIX. Agora você pode pular para a Seção ``Traduzindo Comandos do DOS para o Linux'', mas, se eu fosse você, continuaria lendo. 33..22.. LLiiggaaççõõeess SSiimmbbóólliiccooss O Unix tem um tipo de arquivo que não existe no DOS: a ligação simbólica. Isto pode ser considerado como um ponteiro para um arquivo ou diretório, e pode ser usado ao invés do arquivo para o qual aponta; é similar aos atalhos do Windows 95. Exemplos de ligações simbólicas são /usr/X11, que aponta para /usr/X11R6; /dev/modem, que aponta para /dev/cua0 or /dev/cua1. Para fazer uma ligação simbólica: $ ln -s <arq_ou_dir> <nomedaligação> Exemplo: $ ln -s /usr/doc/g77/DOC g77manual.txt Agora você pode se referir a g77manual.txt ao invés de /usr/doc/g77/DOC. As ligações simbólicas aparecem assim em listagens de diretório: $ ls -F g77manual.txt@ $ ls -l (várias coisas...) g77manual.txt -> /usr/doc/g77/DOC 33..33.. PPeerrmmiissssõõeess ee PPrroopprriieeddaaddee No DOS, arquivos e diretórios têm os seguintes atributos: A (arquivo), H (oculto), R (somente-para-leitura), e S (sistema). Somente H e R fazem sentido no Linux: arquivos ocultos começam com um ponto, e quanto ao atributo R, siga em frente. No Unix, cada arquivo tem "permissões" e um dono, que por sua vez pertence a um "grupo". Veja este exemplo: $ ls -l /bin/ls -rwxr-xr-x 1 root bin 27281 Aug 15 1995 /bin/ls* O primeiro campo contém as permissões do arquivo /bin/ls, que pertence ao root, grupo bin. Deixando as informações restantes de lado, lembre-se que -rwxr-xr-x significa, da esquerda para a direita: - é o tipo de arquivo (- = arquivo normal, d = diretório, l = ligação, etc); rwx são as permissões para o dono do arquivo ("read, write, execute", i.e., "leitura, gravação, execução"); r-x são as permissões para o grupo do dono do arquivo (leitura, execução); (eu não explicarei o conceito de grupo, você pode sobreviver sem isso enquanto for um iniciante ;-) r-x são as permissões para todos os outros usuários (leitura, execução). O diretório /bin tem permissões também: veja a Seção ``Permissões de Diretórios'' para mais detalhes. É por isso que você não pode apagar o arquivo /bin/ls, a menos que seja o superusuário (root): você não tem permissão para isso. Para mudar as permissões de um arquivo, o comando é: $ chmod <quemXperm> <arquivo> onde quem é u (usuário, i.e., dono), g (grupo), o (outros), X é ou + ou -, perm é r (leitura), w (gravação), ou x (execução). Alguns exemplos do uso de chmod: $ chmod +x arquivo isto define a permissão de execução do arquivo. $ chmod go-rw arquivo isto remove as permissões de leitura e gravação para todos, exceto o dono. $ chmod ugo+rwx arquivo isto dá permissão de leitura, gravação e execução para todos. # chmod +s arquivo isso faz um arquivo chamado "setuid" ou "suid"---um arquivo que todos podem executar com os privilégios do dono. Normalmente, você encontrará arquivos setuid root; freqüentemente, são programas importantes do sistema, como o servidor X. Uma maneira mais curta de se referir a permissões é com dígitos: rwxr- xr-x pode ser expresso como 755 (cada letra corresponde a um bit: --- é 0, --x é 1, -w- é 2, -wx é 3...). Parece difícil, mas com um pouco de prática você entenderá a idéia. Sendo o superusuário, pode-se mudar as permissões de qualquer arquivo. LPM. 33..44.. AArrqquuiivvooss:: TTrraadduuzziinnddoo CCoommaannddooss À esquerda, os comandos do DOS; à direita, sua contrapartida no Linux. ATTRIB: chmod COPY: cp DEL: rm MOVE: mv REN: mv TYPE: more, less, cat Operadores de redirecionamento e canalização: < > >> | Coringas: * ? nul: /dev/null prn, lpt1: /dev/lp0 ou /dev/lp1; lpr 33..44..11.. EExxeemmppllooss DOS Linux --------------------------------------------------------------------- C:\GUIDO>ATTRIB +R ARQUIVO.TXT $ chmod 400 arquivo.txt C:\GUIDO>COPY JOE.TXT JOE.DOC $ cp joe.txt joe.doc C:\GUIDO>COPY *.* TOTAL $ cat * > total C:\GUIDO>COPY FRACTALS.DOC PRN $ lpr fractals.doc C:\GUIDO>DEL TEMP $ rm temp C:\GUIDO>DEL *.BAK $ rm *~ C:\GUIDO>MOVE PAPER.TXT TMP\ $ mv paper.txt tmp/ C:\GUIDO>REN PAPER.TXT PAPER.ASC $ mv paper.txt paper.asc C:\GUIDO>PRINT LETTER.TXT $ lpr letter.txt C:\GUIDO>TYPE LETTER.TXT $ more letter.txt C:\GUIDO>TYPE LETTER.TXT $ less letter.txt C:\GUIDO>TYPE LETTER.TXT > NUL $ cat letter.txt > /dev/null n/a $ more *.txt *.asc n/a $ cat section*.txt | less Observações: · * é mais inteligente no Linux: * corresponde a todos os arquivos, exceto os ocultos; .* corresponde a todos os arquivos ocultos (mas também ao diretório atual `.' e ao diretório pai `..': cuidado!); *.* corresponde apenas aos arquivos que tenham um '.' no meio ou terminem com um ponto; p*r corresponde tanto a `peter' como a `piper'; *c* corresponde a `picked' e `peck'; · quando usar more, pressione <SPACE> para ler o arquivo; `q' para sair. less é mais intuitivo, e permite que você use as teclas de seta; · não há UNDELETE, então _p_e_n_s_e _d_u_a_s _v_e_z_e_s antes de apagar algo; · além de < > >>, o Linux tem 2> para redirecionar mensagens de erro (stderr); além disso, 2>&1 redireciona stderr para stdout (saída padrão), enquanto 1>&2 redireciona stdout para stderr; · o Linux tem outro coringa: []. Uso: [abc]* corresponde a arquivos que comecem com a, b, c; *[I-N1-3] corresponde a arquivos que terminem com I, J, K, L, M, N, 1, 2, 3; · lpr <arquivo> imprime um arquivo em segundo plano. Para verificar o estado da fila de impressão, use lpq; para remover um arquivo da fila de impressão, use lprm; · não há RENAME como no DOS; isto é, mv *.xxx *.yyy não funciona. Você pode tentar este simples script; consulte a Seção ``Roteiros para Shell: Arquivos .BAT com Esteróides'' para mais detalhes. ___________________________________________________________________ #!/bin/sh # ren: renomeia múltiplos arquivos de acordo com várias regras if [ $# -lt 3 ] ; then echo "uso: ren \"padrão\" \"substituição\" arq..." exit 1 fi VELHO=$1 ; NOVO=$2 ; shift ; shift for arquivo in $* do novo=`echo ${arquivo} | sed s/${VELHO}/${NOVO}/g` mv ${arquivo} $novo done ___________________________________________________________________ Cuidado: este roteiro não se comporta como o REN do DOS, pois usa "expressões regulares", que você provavelmente ainda não conhece. Resumidamente, se você quiser simplesmente mudar extensões de arquivos, faça como: ren "htm$" "html" *htm. Não se esqueça do $. · use cp -i e mv -i para ser avisado antes que um arquivo seja sobrescrito. 33..55.. EExxeeccuuttaannddoo PPrrooggrraammaass:: MMuullttiittaarreeffaa ee SSeessssõõeess Para executar um programa, digite seu nome, como faria no DOS. Se o diretório (Seção ``Usando Diretórios'') onde o programa está armazenado estiver incluso no PATH (Seção ``Arquivos de Inicialização do Sistema''), o programa será iniciado. Exceção: diferentemente do DOS, no Linux um programa localizado no diretório atual não é executado a menos que seu diretório seja incluído no PATH. Contorno: sendo prog o seu programa, digite ./prog. A linha de comando típica é parecida com essa: $ comando [-s1 [-s2] ... [-sn]] [par1 [par2] ... [parn]] [< entrada] [> saída] onde -s1, ..., -sn são as opções do programa, par1, ..., parn são os parâmetros do programa. Você pode dar vários comandos na mesma linha de comando: $ comando_1 ; comando_2 ; ... ; comando_n Isto é tudo que há sobre executar programas, mas é fácil ir um passo a frente. Um dos principais motivos para usar Linux é que é um sistema operacional multitarefa---pode executar vários programas (daqui em diante, processos) ao mesmo tempo. Você pode lançar processos em segundo plano e continuar trabalhando tranqüilamente. Além disso, o Linux permite que você abra várias sessões: é como ter vários computadores para trabalhar ao mesmo tempo. · Para alternar entre as sessões 1..6 nos consoles virtuais, pressione <ALT-F1> ... <ALT-F6> · Para iniciar uma nova sessão no mesmo console virtual sem fechar a atual, digite su - <nomedelogin>. Exemplo: su - root. Isto é útil, por exemplo, quando você precisa fazer algo que só o superusuário pode fazer. · Para terminar uma sessão, digite exit. Se houver trabalhos interrompidos (veja abaixo), você será avisado. · Para lançar um processo em segundo plano, adicione um '&' ao fim da linha de comando: $ nomeprog [-opções] [parâmetros] [< entrada] [> saída] & [1] 123 o interpretador de comandos identifica o processo por um número de trabalho (p.ex. [1]; veja abaixo), e a um PID (Process Identification Number, ou Número de Identificação de Processo; 123 no nosso exemplo). · Para ver quantos processos existem atualmente, digite ps -ax. A saída será uma lista dos processos sendo executados. · Para matar um processo, digite kill <PID>. Você pode precisar matar um processo quando você não souber como terminá-lo da maneira correta... A menos que você seja o superusuário, você não pode matar processos de outros usuários. Às vezes, um processo somente pode ser matado através de kill -SIGKILL <PID>. Além disso, o shell permite que você termine ou suspenda temporariamente um processo, envie um processo ao segundo plano, e traga um processo do segundo para o primeiro plano. Nesse contexto, processos são chamados "jobs" ou trabalhos. · Para ver quantos trabalhos existem, digite jobs. Aqui os trabalhos são identificados pelos seus números de trabalho, e não pelos seus PIDs. · Para terminar um processo executando em primeiro plano, pressione <CTRL-C> (não é sempre que funciona). · Para suspender um processo executando em primeiro plano, pressione <CTRL-Z> (idem). · Para mandar um processo suspenso para o segundo plano, digite bg <job> (ele se torna um trabalho). · Para trazer um trabalho ao primeiro plano, digite fg <job>. Para trazer o último trabalho que foi enviado ao segundo plano, digite simplesmente fg. · Para matar um trabalho, digite kill <%job> onde <job> pode ser 1, 2, 3,... Usando esses comandos você pode formatar um disco, zipar um conjunto de arquivos, compilar um programa e descompactar um arquivo, tudo ao mesmo tempo, e ainda ter a linha de comando à sua disposição. Tente isso no DOS! E tente no Windows, apenas para ver a diferença de desempenho (se não travar, é claro). 33..66.. EExxeeccuuttaannddoo PPrrooggrraammaass eemm CCoommppuuttaaddoorreess RReemmoottooss Para executar um programa em uma máquina remota cujo endereço IP seja maquina.remota.edu, digite: $ telnet maquina.remota.edu Depois de entrar no sistema, inicie seu programa favorito. Desnecessário dizer que você deve ter uma conta na máquina remota. Se você tiver o X11, você pode até mesmo executar uma aplicativo X no computador remoto, exibindo-o na tela do seu X. Seja maquina.remota.edu o computador remoto e local.linux.box sua máquina Linux. Para executar a partir de local.linux.box um programa X que resida em remote.machine.edu, faça o seguinte: · execute o X11, inicie um xterm ou um emulador de terminal equivalente, e digite: $ xhost +maquina.remota.edu $ telnet maquina.remota.edu · depois de entrar no sistema, digite: remote:$ DISPLAY=local.linux.box:0.0 remote:$ nomeprog & (ao invés de DISPLAY..., pode ser que você tenha que digitar: setenv DISPLAY local.linux.box:0.0. Depende do seu interpretador de comandos remoto.) E voila! Agora nomeprog rodará em maquina.remota.edu e será exibido na sua máquina. Entretanto, não tente isto usando um modem, pois será lento demais para ser usável. 44.. UUssaannddoo DDiirreettóórriiooss 44..11.. DDiirreettóórriiooss:: NNooççõõeess PPrreelliimmiinnaarreess Nós vimos as diferenças entre arquivos no DOS e no Linux. Quanto aos diretórios, no DOS o raiz é \, e no Linux é /. Analogamente, diretórios aninhados são separados por \ no DOS, e por / no Linux. Exemplos de caminhos (paths): DOS: C:\PAPERS\GEOLOGY\MID_EOC.TEX Linux: /home/guido/papers/geology/middle_eocene.tex Como de costume, .. é o diretório pai e . é o diretório atual. Lembre-se que o sistema não permite que você faça cd, rd, ou md para onde quiser. Cada usuário começa no seu diretório, chamado "home", dado pelo administrador do sistema; por exemplo, no meu PC, meu diretório home é /home/guido. 44..22.. PPeerrmmiissssõõeess ddee DDiirreettóórriiooss Diretórios também têm permissões. O que nós vimos na Seção ``Permissões e Propriedade'' também se aplica a diretórios (usuário, grupo, e outros). Para um diretório, rx significa que você pode dar cd para esse diretório, e w significa que você pode apagar um arquivo nesse diretório (de acordo com as permissões do arquivo, é claro), ou o próprio diretório. Por exemplo, para evitar que outros usuários mexam em /home/guido/text: $ chmod o-rwx /home/guido/text 44..33.. DDiirreettóórriiooss:: TTrraadduuzziinnddoo CCoommaannddooss DIR: ls, find, du CD: cd, pwd MD: mkdir RD: rmdir DELTREE: rm -R MOVE: mv 44..33..11.. EExxeemmppllooss DOS Linux --------------------------------------------------------------------- C:\GUIDO>DIR $ ls C:\GUIDO>DIR ARQUIVO.TXT $ ls arquivo.txt C:\GUIDO>DIR *.H *.C $ ls *.h *.c C:\GUIDO>DIR/P $ ls | more C:\GUIDO>DIR/A $ ls -l C:\GUIDO>DIR *.TMP /S $ find / -name "*.tmp" C:\GUIDO>CD $ pwd n/a - veja observação $ cd idem $ cd ~ idem $ cd ~/temp C:\GUIDO>CD \OUTRO $ cd /outro C:\GUIDO>CD ..\TEMP\LIXO $ cd ../temp/lixo C:\GUIDO>MD NEWPROGS $ mkdir newprogs C:\GUIDO>MOVE PROG .. $ mv prog .. C:\GUIDO>MD \PROGS\TURBO $ mkdir /progs/turbo C:\GUIDO>DELTREE TEMP\LIXO $ rm -R temp/lixo C:\GUIDO>RD NEWPROGS $ rmdir newprogs C:\GUIDO>RD \PROGS\TURBO $ rmdir /progs/turbo Observações: 1. para usar rmdir, o diretório a ser removido deve estar vazio. Para apagar um diretório e todo o seu conteúdo, use rm -R (por sua própria conta e risco). 2. o caractere '~' é um atalho para o nome do seu diretório. Os comandos cd ou cd ~ mudam para o seu diretório home; o comando cd ~/tmp muda o diretório para /home/seu_home/tmp. 3. cd - "desfaz" o último cd. 55.. DDiissqquueetteess,, DDiissccooss RRííggiiddooss,, eettcc Há duas maneiras de se gerenciar dispositivos no Linux: a maneira do DOS e a do UNIX. 55..11.. GGeerreenncciiaannddoo DDiissppoossiittiivvooss àà MMaanneeiirraa ddoo DDOOSS A maioria das distribuições do Linux inclui o pacote Mtools, um conjunto de comandos que são equivalentes às suas contrapartidas do DOS, mas começam com `m': i.e., mformat, mdir, mdel, mmd, e assim por diante. Eles até preservam nomes-de-arquivos longos, mas não as permissões de arquivos. Se você configurar o Mtools, editando um arquivo chamado /etc/mtools.conf (um exemplo é fornecido com o pacote), poderá também acessar a partição DOS/Win, o CD-ROM e o unidade ZIP. Entretanto, o comando mformat não funciona para formatar um disquete novo (nunca formatado). Antes, você terá que rodar o seguinte comando, como superusuário: # fdformat /dev/fd0H1440 Observação: você não pode acessar arquivos no disquete com um comando como, digamos, less a:arquivo.txt! Esta é a desvantagem da maneira DOS de montar disquetes. 55..22.. GGeerreenncciiaannddoo DDiissppoossiittiivvooss àà MMaanneeiirraa UUNNIIXX O UNIX lida com dispositivos de uma forma diferente do DOS/Win. Não há volumes separados como A: ou C:; um disco, seja um disquete ou o que quer que seja, se torna parte do sistema de arquivos local através de uma operação chamada "montagem". Quando você terminar de usar o disco, você precisa "desmontá-lo" antes de ejetá-lo. Formatar um disco fisicamente é uma coisa, fazer um sistema de arquivos nele é outra. O comando FORMAT A: do DOS faz ambas as coisas, mas no Linux há comandos separados. Para formatar um disquete, veja acima; para criar um sistema de arquivos: # mkfs -t ext2 -c /dev/fd0H1440 Você pode usar minix, vfat, dos ou outros formatos ao invés de ext2. Uma vez que o disquete esteja preparado, monte-o com o comando: # mount -t ext2 /dev/fd0 /mnt especificando o sistema de arquivos correto se você não for usar ext2. Agora você pode se referir aos arquivos do disquete. Tudo o que você usava com A: ou B: agora é feito usando /mnt. Exemplos: DOS Linux --------------------------------------------------------------------- C:\GUIDO>DIR A: $ ls /mnt C:\GUIDO>COPY A:*.* $ cp /mnt/* . C:\GUIDO>COPY *.ZIP A: $ cp *.zip /mnt C:\GUIDO>EDIT A:FILE.TXT $ jstar /mnt/file.txt C:\GUIDO>A: $ cd /mnt A:>_ /mnt/$ _ Quando você tiver terminado, antes de ejetar o disquete você _d_e_v_e desmontá-lo com o comando # umount /mnt Obviamente, você precisa executar fdformat e mkfs somente em discos ainda não formatados. Se você quiser usar o drive B: use /fd1H1440/ e fd1 ao invés de fd0H1440 e fd0 nos exemplos acima. Evidentemente, o que se aplica a disquetes se aplica a outros dispositivos; por exemplo, você pode querer montar outro disco rígido ou drive de CD-ROM. Eis como montar o CD-ROM: # mount -t iso9660 /dev/cdrom /mnt Esta é a maneira "oficial" de montar seus discos, mas há um truque. Já que é um pouco aborrecedor ter que ser superusuário para montar um disquete ou CD-ROM, você pode permitir que todo usuário os monte assim: · como superusuário, faça o seguinte: # mkdir /mnt/a: ; mkdir /mnt/a ; mkdir /mnt/cdrom # chmod 777 /mnt/a* /mnt/cd* # # assegura que o dispositivo de CD-ROM está correto # chmod 666 /dev/hdb ; chmod 666 /dev/fd* · adicione as seguintes linhas em /etc/fstab: /dev/cdrom /mnt/cdrom iso9660 ro,user,noauto 0 0 /dev/fd0 /mnt/a: msdos user,noauto 0 0 /dev/fd0 /mnt/a ext2 user,noauto 0 0 Agora, para montar um disquete do DOS, um disquete com sistema de arquivos ext2, e um CD-ROM: $ mount /mnt/a: $ mount /mnt/a $ mount /mnt/cdrom Agora, /mnt/a, /mnt/a:, e /mnt/cdrom podem ser acessados por todos os usuários. Lembre-se que permitir que todos montem discos dessa maneira é um furo de segurança, se você se importa. Dois comandos úteis são df, que dá informação sobre os sistemas de arquivos montados, e du nomedir, que relata o espaço em disco ocupado pelo diretório. 55..33.. FFaazzeennddoo uummaa CCóóppiiaa ddee SSeegguurraannççaa Há vários pacotes para lhe ajudar, mas o mínimo que você pode fazer para cópia de segurança multi-volume é (como superusuário): # tar -M -cvf /dev/fd0H1440 dir_to_backup/ Assegure-se de ter um disquete formatado no unidade, e vários outros prontos. Para restaurar suas coisas, insira o primeiro disquete na unidade e faça: # tar -M -xpvf /dev/fd0H1440 66.. EE oo WWiinnddoowwss?? O "equivalente" ao Windows é o sistema gráfico X Window System, ou X11 para encurtar. Ao contrário do Windows e Mac, o X11 não foi projetado para ser fácil de usar ou ter boa aparência, e sim para fornecer recursos gráficos para estações de trabalho UNIX. Estas são as principais diferenças: · enquanto o Windows tem a mesma aparência ("look and feel") no mundo inteiro, o X11 não: é muito mais configurável. A aparência geral do X11 é dada por um componente chave chamado "gerenciador de janelas" ("window manager"), para o qual você tem uma grande variedade de escolha: fvwm, básico mas bonitinho e eficiente quanto a memória, fvwm2-95, Afterstep, e muitos mais. O gerenciador de janelas normalmente é chamado por um arquivo chamado .xinitrc; · seu gerenciador de janelas pode ser configurado de modo que uma janela se comporte como no Windows: você clica em cima da janela e ela vem para o primeiro plano. Outra possibilidade é a janela vir para o primeiro plano quando o mouse passar sobre ela ("foco"). Ainda, a colocação das janelas na tela pode ser automática ou interativa: se um quadro estranho aparece ao invés do seu programa, clique onde você quer que ele apareça. · a maioria das ações pode ser personalizada editando-se um ou mais arquivos de configuração. Leia a documentação do seu gerenciador de janelas; o arquivo de configuração pode ser .fvwmrc, .fvwm2rc95, .steprc, etc. Um arquivo de exemplo de configuração é normalmente encontrado em /etc/X11/nome-do-gerenciador/system.nome-do- gerenciador; · aplicativos do X11 são escritos usando-se bibliotecas especiais ("widget sets"); como existem várias, os aplicativos têm aparência diferente. Os mais básicos são os que usam os pequenos objetos do tipo Athena (aparência 2--D; xdvi, xman, xcalc); outros usam Motif (netscape), outros usam Tcl/Tk, XForms, Qt, Gtk, e o que tiver. Algumas---não --> --todas---destas bibliotecas fornecem aproximadamente o mesmo "look and --> --feel" do Windows; · bem, nem tanto. O "feel", infelizmente, pode ser incoerente. Por exemplo, se você seleciona uma linha de texto usando o mouse e pressiona <BACKSPACE>, você espera que a linha desapareça, certo? Isto não funciona com aplicativos baseados no Athena, mas funciona com Motif, Qt, Gtk, e Tcl/Tk; · o funcionamento das barras de rolagem e do redimensionamento depende do gerenciador de janelas e do conjunto de pequenos objetos. Dica: se você percebe que as barras de rolagem não funcionam como esperado, tente usar o botão do meio ou os dois botões juntos para movê-las; · os aplicativos não têm ícones por default, mas podem ter vários. A maioria dos gerenciadores de janela tem um menu que você chama clicando na área de trabalho ("root window", ou "janela principal"); o menu pode ser personalizado, claro. Para mudar a aparência da janela principal, use xsetroot ou xloadimage; · o clipboard ("área de transferência") só pode conter texto, e tem um comportamento estranho. Uma vez que você tenha selecionado uma porção de texto, ele já está copiado no clipboard: vá para outro lugar e pressione o botão do meio para colar. Há um aplicativo, xclipboard, que permite múltiplos buffers de clipboard; · drag and drop ("arrastar e soltar") é opcional, e só funcionará se você usar aplicativos X11 que tenham suporte a isso. Para economizar memória, você deve usar aplicativos que usem as mesmas bibliotecas, mas na prática isso é difícil. O projeto K Desktop Environment (KDE) pretende fazem com que o X11 tenha aparência e comportamento consistentes, como no Windows; atualmente está na fase beta mas, acredite, é impressionante. Veja <http://www.kde.org>. 77.. PPeerrssoonnaalliizzaannddoo oo SSiisstteemmaa 77..11.. AArrqquuiivvooss ddee IInniicciiaalliizzaaççããoo ddoo SSiisstteemmaa Dois arquivos importantes no DOS são AUTOEXEC.BAT e CONFIG.SYS, que são usados para inicializar o sistema, definir algumas variáveis de ambiente como PATH e FILES, e possivelmente rodar um programa ou arquivo de lote. No Linux há vários arquivos de inicialização, alguns dos quais seria melhor você não mexer até que você saiba exatamente o que está fazendo. De qualquer maneira, eu lhe digo que os mais importantes são: ARQUIVOS OBSERVAÇÕES /etc/inittab não mexa por enquanto! /etc/rc.d/* idem Se tudo o que você precisa é definir o $PATH e outras variáveis de ambiente, ou você quer mudar as mensagens de entrada no sistema, ou rodar um programa automaticamente após a entrada no sistema, dê uma olhada nos seguintes arquivos: ARQUIVOS OBSERVAÇÕES /etc/issue define a mensagem pré-entrada no sistema /etc/motd define a mensagem pós-entrada no sistema /etc/profile define $PATH e outras variáveis, etc. /etc/bashrc define apelidos e funções, etc. /home/your_home/.bashrc define os seus apelidos e funções /home/your_home/.bash_profile ou /home/your_home/.profile define ambiente e inicia seus programas Se o último arquivo listado existir (observe que é um arquivo oculto), será lido depois da entrada no sistema e os comandos contidos nele serão executados. Exemplo---veja este .bash_profile: ______________________________________________________________________ # Isto é um comentário echo Ambiente: printenv | less # equivalente ao comando SET do DOS alias d='ls -l' # é fácil entender o que é um apelido alias up='cd ..' echo "Lembre-se que o path é "$PATH echo "Hoje é `date`" # usa a saída do comando 'date' echo "Tenha um bom dia, "$LOGNAME # O que segue é uma "função de shell" ctgz() # Lista o conteúdo de um arquivo .tar.gz { for file in $* do gzip -dc ${file} | tar tf - done } # fim de .profile ______________________________________________________________________ $PATH e $LOGNAME, são variáveis de ambiente. Há muitas outras que podem ser alteradas; por exemplo, para programas como less ou bash, LPM. 77..22.. AArrqquuiivvooss ddee IInniicciiaalliizzaaççããoo ddee PPrrooggrraammaass Sob o Linux, virtualmente tudo pode ser personalizado de acordo com suas necessidades. A maioria dos programas tem um ou mais arquivos de inicialização nos quais você pode mexer, normalmente chamados .nomedoprogramarc e localizados no seu diretório home. Os primeiros que você vai querer modificar são: · .inputrc: usado por bash para definir associações de teclas; · .xinitrc: usado por startx para inicializar o X Window System; · .fvwmrc: usado pelo gerenciador de janelas fvwm. · .joerc: usado pelo editor joe; · .jedrc: usado pelo editor jed; · .pinerc: usado pelo leitor de mail pine; · .Xdefault: usado por vários programas X. Para todos esses, e os outros que você encontrará uma hora ou outra, LPM. Como uma observação final, eu sugiro que você veja o COMO FAZER Configuração em <http://sunsite.unc.edu/mdw/HOWTO/Config-HOWTO.html> . 88.. UUmm ppoouuccoo ddee pprrooggrraammaaççããoo 88..11.. RRootteeiirrooss ppaarraa SShheellll:: AArrqquuiivvooss ..BBAATT ccoomm EEsstteerróóiiddeess Se você usava arquivos .BAT para criar atalhos para longas linhas de comando (eu usei muito), pode fazer isso inserindo linhas de apelido apropriadas (veja exemplo acima) em profile ou .profile. Mas, se seus .BATs eram mais complicados, você vai adorar a linguagem de roteiros do interpretador de comandos: é tão poderosa quanto QBasic, se não for mais. Tem variáveis, estruturas como while, for, case, if... then... else, e vários outros recursos: pode ser uma boa alternativa a uma linguagem de programação "de verdade". Para escrever um roteiro---o equivalente a um arquivo .BAT no DOS---tudo o --> --que você tem a fazer é escrever um arquivo ASCII contendo as instruções, --> --gravá-lo, e torná-lo executável com o comando chmod +x --> --<scriptfile>. Para executá-lo, digite o nome do arquivo. Um aviso: o editor do sistema chama-se vi, e na minha experiência a maioria dos novos usuários acha-o muito difícil de usar. Eu não vou explicar como usá-lo, porque eu não gosto do vi e não o uso. Aqui basta dizer que: · para inserir texto, digite `i' e depois o seu texto; · para apagar caracteres, digite <ESC> e depois `x'; · para sair do vi sem salvar, digite <ESC> e depois :q! · para salvar e sair, digite <ESC> e depois :wq. Um bom editor para iniciantes é o joe: executando-o como jstar, você obterá as mesmas associações de teclas que o editor do DOS. jed no modo WordStar ou IDE é melhor ainda. Consulte a Seção ``Onde Encontrar Aplicativos'' para saber onde pegar esses editores. Escrever roteiros do bash é um assunto tão vasto que preencheria um livro, e eu não me aprofundarei mais nesse tópico. Eu só darei um exemplo de script de shell, do qual você poderá extrair algumas regras básicas: ______________________________________________________________________ #!/bin/sh # sample.sh # Isto é um comentário # não mude a primeira linha, ela precisa estar lá echo "O sistema é: `uname -a`" # usa a saída do comando echo "Meu nome é $0" # variáveis embutidas echo "Você me deu os seguintes $# parâmetros: "$* echo "O primeiro parâmetro: "$1 echo -n "Como você se chama? " ; read seu_nome echo note a diferença: "oi $your_name" # quotando com " echo note a diferença: 'oi $your_name' # quotando com ' DIRS=0 ; ARQS=0 for arquivo in `ls .` ; do if [ -d ${arquivo} ] ; then # se arquivo for um diretório DIRS=`expr $DIRS + 1` # DIRS = DIRS + 1 elif [ -f ${arquivo} ] ; then ARQS=`expr $ARQS + 1` fi case ${arquivo} in *.gif|*jpg) echo "${arquivo}: arquivo gráfico" ;; *.txt|*.tex) echo "${arquivo}: arquivo texto" ;; *.c|*.f|*.for) echo "${arquivo}: arquivo fonte" ;; *) echo "${arquivo}: arquivo genérico" ;; esac done echo "há ${DIRS} diretórios e ${ARQS} arquivos" ls | grep "ZxY--!!!WKW" if [ $? != 0 ] ; then # código de saída do último comando echo "ZxY--!!!WKW não encontrado" fi echo "pront... digite 'man bash' se você quiser mais informações." ______________________________________________________________________ 88..22.. CC No UNIX, a linguagem do sistema é C, quer queira, quer não. Muitas outras linguagens (Java, FORTRAN, Pascal, Lisp, Basic, Perl, awk...) também estão disponíveis. Pressupondo que você conhece C, aqui estão algumas diretrizes para vocês que foram "estragados" pelo Turbo C++ ou algum outro do DOS. O compilador C do Linux se chama gcc, e não tem todas aquelas "frescuras" que normalmente acompanham suas contrapartidas do DOS: não há IDE (ambiente integrado de desenvolvimento), ajuda on-line, depurador integrado, etc. É apenas um seco compilador de linha de comando, muito poderoso e eficiente. Para compilar seu hello.c padrão, você deve digitar: $ gcc hello.c que criará um arquivo executável chamado a.out. Para dar um nome diferente ao executável, faça $ gcc -o hola hello.c Para vincular uma biblioteca ao programa, adicione a opção -l<libname>. Por exemplo, para vincular a biblioteca matemática: $ gcc -o progmat progmat.c -lm (A opção -l<libname> força o gcc a vincular a biblioteca /usr/lib/lib<libname>.a; então -lm vincula /usr/lib/libm.a). Até aqui, tudo bem. Mas, se seu programa for composto de vários arquivos fontes, você terá que usar o utilitário make. Suponha que você tenha escrito um analisador de expressões: seu arquivo fonte se chama parser.c e #inclui dois arquivos header, parser.h e xy.h. Depois você quer usar rotinas de parser.c em um programa, digamos, calc.c, que por sua vez #inclui parser.h. Que bagunça! O que você tem que fazer para compilar calc.c? Você terá que escrever um arquivo chamado makefile, que diz ao compilador quais as dependências entre os arquivos fontes e objetos. No nosso exemplo: ______________________________________________________________________ # Isto é um makefile, usado para compilar calc.c # Pressione a tecla <TAB> onde indicado! calc: calc.o parser.o <TAB>gcc -o calc calc.o parser.o -lm # calc depende de dois arquivos objeto: calc.o e parser.o calc.o: calc.c parser.h <TAB>gcc -c calc.c # calc.o depende de dois arquivos fonte parser.o: parser.c parser.h xy.h <TAB>gcc -c parser.c # parser.o depende de três arquivos fonte # fim do makefile. ______________________________________________________________________ Salve este arquivo como Makefile e digite make para compilar seu programa; ou salve como calc.mak, digite make -f calc.mak e, é claro, LPM. Você pode conseguir ajuda sobre funções C, que são cobertas pela seção 3 das páginas de manual; por exemplo, $ man 3 printf Para depurar seus programas, use gdb. info gdb para aprender a usá-lo. Há várias bibliotecas disponíveis; entre as primeiras que você vai querer usar estão ncurses, para lidar com modo texto, e svgalib, para modo gráfico. Se você se sentir-se corajoso o suficiente para abordar programação em X11, há bibliotecas como XForms, Qt, Gtk e muitas outras, que tornam a programação em X11 uma moleza. Dê uma olhada em <http://www.xnet.com/~blatura/linapp6.html> . Muitos editores podem funcionar como um IDE; emacs e jed, por exemplo, também permitem coloração por sintaxe, identação automática e assim por diante. Alternativamente, pegue o pacote rhide de <ftp://sunsite.unc.edu:/pub/Linux/devel/debuggers/>. É um clone do IDE Borland, e é provável que você goste. 99.. OO 11%% RReessttaannttee Mais que 1%, na verdade... 99..11.. UUssaannddoo ttaarr && ggzziipp No Unix há alguns programas amplamente usados para arquivar e compactar arquivos. tar é usado para fazer "pacotes" ---é como PKZIP mas ele não compacta, apenas empacota. Para fazer um novo pacote: $ tar -cvf <nome_do_pacote.tar> <file> [file...] Para extrair arquivos de um pacote: $ tar -xpvf <nome_do_pacote.tar> [file...] Para listar o conteúdo de um pacote: $ tar -tf <nome_do_pacote.tar> | less Você pode compactar arquivos usando compress, que é obsoleto e não deve ser mais usado, ou gzip: $ compress <file> $ gzip <file> que cria um arquivo compactado com extensão (compress) ou .gz (gzip). Esses programas compactam apenas um arquivo de cada vez. Para descompactar, use: $ compress -d <file.Z> $ gzip -d <file.gz> LPM. Também há os utilitários unarj, zip e unzip (compatível com PK??ZIP). Arquivos com extensão .tar.gz ou .tgz (empacotado com tar, depois compactados com gzip) são tão comuns no mundo Unix como arquivos .ZIP no DOS. Aqui está como listar o conteúdo de um archive .tar.gz: $ tar -ztf <arquivo.tar.gz> | less 99..22.. IInnssttaallaannddoo AApplliiccaattiivvooss Primeiro: instalar pacotes é trabalho do superusuário. A maioria dos aplicativos do Linux são distribuídos como um arquivo .tar.gz, que normalmente contém um diretório chamado /nomedopacote/ contendo arquivos e/ou subdiretórios. Uma boa regra é instalar esses pacotes a partir do diretório /usr/local com o comando # tar -zxf <archive.tar.gz> e depois ler o arquivo README ou INSTALL. Em muitos casos, o pacote é distribuído em fonte, que você terá que compilar para criar os binários; freqüentemente, bastará digitar make e depois make install. Obviamente, você precisará do compilador gcc ou g++. Outros pacotes devem ser descompactados a partir de /; é o caso dos arquivos .tgz do Slackware. Outros arquivos contêm os arquivos, mas não um subdiretório. Sempre liste o conteúdo do pacote antes de instalar. As distribuições Debian e Red Hat têm seu próprio formato de pacotes; respectivamente, .deb e .rpm. Este está ganhando ampla aceitação; para instalar um pacote .rpm, digite # rpm -i pacote.rpm 99..33.. DDiiccaass IInnddiissppeennssáávveeiiss CCoommpplleettaammeennttoo ddee ccoommaannddoo: pressionar <TAB> quando da emissão de um comando completará a linha para você. Exemplo: se você quer executar gcc este_e_um_nome_longo.c;, basta digitar gcc est<TAB> (se você tiver outros arquivos que comecem com os mesmos caracteres, forneça caracteres suficientes para resolver qualquer ambiguidade). RRoollaaggeemm ddee tteellaa: pressionar <SHIFT + PAG UP> (a tecla cinza) lhe permite rolar a tela algumas páginas para trás, dependendo de quanta memória de vídeo você tiver. IInniicciiaalliizzaannddoo aa tteellaa: se acontecer de você executar more ou cat em um arquivo binário, sua tela pode ficar cheia de lixo. Para consertar, digite reset, ou esta seqüência de caracteres: echo CTRL-V ESC c RETURN. CCoollaannddoo tteexxttoo: no console, veja abaixo; no X, clique e arraste para selecionar o texto um janela xterm, e depois clique o botão do meio (ou os dois botões juntos se você tiver um mouse de 2 botões) para colar. Há também o xclipboard (aliás, somente para texto); não se confunda pela demora da resposta. UUssaannddoo oo mmoouussee: se você instalou o gpm, um driver de mouse para o console, você pode clicar e arrastar para selecionar texto, e depois clicar para colar o texto selecionado. Funciona de um CV ("console virtual") para outro. MMeennssaaggeennss ddoo kkeerrnneell: dê uma olhada em /var/adm/messages ou /var/log/messages como superusuário para ver o que o kernel tem a lhe dizer, incluindo mensagens de inicialização. O comando dmesg também é útil. 99..44.. OOnnddee EEnnccoonnttrraarr AApplliiccaattiivvooss Se você está pensando se existem aplicativos para substituir os seus antigos do DOS/Win, eu sugiro que você consulte os principais repositórios de software para Linux: <ftp://sunsite.unc.edu/pub/Linux> , <ftp://tsx-11.mit.edu/pub/linux> , e <ftp://ftp.funet.fi/pub/Linux> . Outro excelente lugar é a "Linux Applications and Utilities Page" em <http://www.xnet.com/~blatura/linapps.shtml> . 99..55.. AAllgguummaass CCooiissaass qquuee VVooccêê nnããoo CCoonnsseegguuiiaa FFaazzeerr O Linux pode fazer um monte de coisas que eram chatas, difíceis ou impossíveis de se fazer no DOS/Win. Aqui está uma pequena lista que pode aguçar seu apetite: · at permite rodar programas em uma hora determinada; · awk é uma linguagem, simples mas poderosa, para manipular arquivos de dados (e mais). Por exemplo, sendo data.dat seu arquivo de dados multi-campos, $ awk '$2 ~ "abc" {print $1, "\t", $4}' data.dat imprime os campos 1 e 4 de cada linha de data.dat cujo segundo campo contenha "abc". · cron é útil para fazer tarefas periodicamente, em determinadas datas e horas. Digite man 5 crontab. · file <arquivo> diz o que é o arquivo (texto ASCII, executável, pacote, etc.); · find (veja também a Seção ``Diretórios: Traduzindo Comandos'') é um dos comandos mais poderosos e mais úteis. É usado para encontrar arquivos que correspondam a várias características dadas, e para desempenhar ações sobre esses arquivos. O uso geral de find é: $ find <diretório> <expressão> onde <expressão> inclui critérios de busca e ações. Exemplos: $ find . -type l -exec ls -l {} \; encontra todos os arquivos que sejam ligações simbólicas e mostra para o que cada um aponta. $ find / -name "*.old" -ok rm {} \; encontra todos os arquivos que correspondam ao padrão e os apaga, pedindo sua confirmação antes. $ find . -perm +111 encontra todos os arquivos cujas permissões correspondam a 111 (executável). $ find . -user root encontra todos os arquivos que pertençam ao superusuário. Há várias possibilidades aqui---LPM. · grep encontra padrões de texto em arquivos. Por exemplo, $ grep -l "geologia" *.tex lista os arquivos *.tex que contenham a palavra "geologia". A variante zgrep funciona em arquivos gzipados. LPM; · eexxpprreessssõõeess rreegguullaarreess são uma maneira complexa mas muito poderosa de fazer busca em texto. Por exemplo, ^a[^a-m]X{4,}txt$ corresponde a uma linha que começa com `a', seguida por qualquer caractere exceto os que estão no intervalo a-m, seguido por 4 ou mais `X', e termina com `txt'. Expressões regulares são usadas em editores avançados, less, e muitos outros programas. Digite man grep para uma introdução. · script <arquivo_script> copia o conteúdo da tela em arquivo_script até que você digite o comando exit. Útil para depuração; · sudo permite que os usuários façam algumas das tarefas do superusuário (p.ex., formatar e montar discos; LPM); · uname -a dá informações sobre o seu sistema; · Os seguintes comandos freqüentemente são úteis: bc, cal, chsh, cmp, cut, fmt, head, hexdump, nl, passwd, printf, sort, split, strings, tac, tail, tee, touch, uniq, w, wall, wc, whereis, write, xargs, znew. LPM. 99..66.. EExxtteennssõõeess CCoommuunnss ee PPrrooggrraammaass RReellaacciioonnaaddooss Você pode se deparar com várias extensões de arquivos. Excluindo as mais exóticas (i.e. fontes, etc.), aqui está uma lista de quem é o que: · 1 ... 8: man pages. No caso improvável de você ainda não ter, pegue o man. · arj: pacote feito com o arj. · dvi: arquivo de saída produzido pelo TeX (veja abaixo). xdvi para visualizá-lo; dvips para transformá-lo em arquivo PostScript .ps. · gz: pacote feito com gzip. · info: arquivo info (tipo de alternativa às páginas de manual). Pegue o info. · lsm: arquivo do Linux Software Map. É um arquivo ASCII contendo a descrição de um pacote. · ps: arquivo PostScript. Para visualizá-lo ou imprimi-lo pegue gs e, opcionalmente, ghostview ou gv. · rpm: pacote Red Hat. Você pode instalá-lo em qualquer sistema usando o gerenciador de pacotes rpm. · taz, tar.Z: pacote feito com o tar e compactado com compress. · tgz, tar.gz: pacote feito com o tar e compactado com gzip. · tex: arquivo texto a ser submetido ao TeX, um poderoso sistema de composição. Pegue o pacote tex, disponível em várias distribuições; mas cuidado com o NTeX, que tem fontes corrompidas e é incluído em algumas versões do Slackware. · texi: arquivo texinfo, que pode produzir tanto arquivos TeX como info (qv. info). Pegue o texinfo. · xbm, xpm, xwd: arquivo gráfico. Pegue o xpaint. · Z: pacote feito com compress. 99..77.. CCoonnvveerrtteennddoo AArrqquuiivvooss Se você precisar intercambiar arquivos texto entre DOS/Win e Linux, cuidado com o problema do "fim de linha". No DOS, cada linha termina com CR/LF ("carriage return" e "line feed"), enquanto no Linux termina com LF. Se você tentar editar um arquivo texto do DOS no Linux, cada linha provavelmente terminará com um estranho caractere `M'; um texto do Linux sob o DOS aparecerá como uma única e quilométrica linha, sem parágrafos. Há um par de ferramentas, dos2unix e unix2dos, para converter os arquivos. [NT: Há também o todos, e o utilitário tr] Se seus arquivos contiverem caracteres acentuados, assegure-se de que eles tenham sido feitos no Windows (com o Write ou Notepad, digamos) e não sob o DOS; caso contrário, todos os caracteres acentuados ficarão bagunçados. Para converter arquivos Word ou WordPerfect para texto puro, a solução é um pouco mais difícil, mas possível. Você precisará de uma das ferramentas que podem ser encontradas nos sites CTAN; uma delas é <ftp://ftp.tex.ac.uk> . Pegue o pacote word2x do diretório /pub/tex/tools/', ou tente um dos pacotes disponíveis no diretório /pub/tex/support/. Eu só experimentei word2x, e funciona muito bem. 1100.. FFiimm ddaa HHiissttóórriiaa,, ppoorr EEnnqquuaannttoo Parabéns! Você aprendeu um pouquinho de UNIX e está pronto para começar a trabalhar. Lembre-se que seu conhecimento do sistema ainda é limitado, e que espera-se que você pratique mais com o Linux para usá-lo confortavelmente. Mas se tudo o que você precisa fazer é pegar uma porção de aplicativos e começar a trabalhar neles, o que eu incluí aqui é suficiente. Tenho certeza de que você gostará de usar o Linux e continuará aprendendo mais sobre ele---com todo mundo é assim. Eu aposto também que você nunca voltará ao DOS/Win! Eu espero ter me feito entender, e que tenha feito um bom serviço aos meus 3 ou 4 leitores. 1100..11.. DDiirreeiittooss AAuuttoorraaiiss Documentos COMO FAZER do Linux são amparados pelos direitos autorais dos seus respectivos autores. Eles podem ser reproduzidos e distribuidos completos ou em partes, através de qualquer meio físico ou eletrônico, desde que esta notificação de direitos autorais seja mantida em todas as cópias. A redistribuição comercial é permitida e encorajada; todavia, o autor gostaria de ser notificado de qualquer uma destas distribuições. Todas as traduções, trabalhos derivados ou agregados incorporando qualquer documento COMO FAZER do Linux deve ser amparado por esta notificação de direitos autorais. Isto é, você não pode produzir um trabalho derivado de um COMO FAZER e impor restrições adicionais a sua distribuição. Exceções a estas regras podem ser feitas sob certas condições; por favor contacte o cordenador do COMO FAZER do Linux no endereço dado abaixo. Rapidamente falando, queremos promover a disseminação desta informação através de quantos canais for possível. Todavia, desejamos manter os direitos autorais nos documentos COMO FAZER, e gostaríamos de ser notificados de qualquer plano para redistribuir os COMO FAZER. Se você tiver qualquer dúvida, por favor contacte Tim Bynum, cordenador do COMO FAZER do Linux, em linux-howto@sunsite.unc.edu através do correio eletrônico. 1100..22.. NNoottaa ddoo AAuuttoorr "From DOS to Linux HOWTO" foi escrito por Guido Gonzato, guido@ibogfs.cineca.it. Muito obrigado a Matt Welsh, autor de "Linux Installation and Getting Started", a Ian Jackson, autor de "Linux frequently asked questions with answers", a Giuseppe Zanetti, autor de "Linux", a todos aqueles que me enviaram sugestões, e especialmente a Linus Torvalds e GNU, que nos deram o Linux. Este documento é fornecido sem garantias. Eu me esforcei para escrevê-lo com o máximo de exatidão, mas se você usar a informação nele contida, estará o fazendo por sua própria conta e risco. Em nenhuma hipótese eu serei responsável por quaisquer danos resultantes do uso desta obra. Seu retorno é bem-vindo. Para quaisquer pedidos, sugestões, flames, etc., sinta-se à vontade para entrar em contato comigo. [NT: sugestões e críticas (construtivas) a respeito da tradução devem ser enviadas para o mantenedor atual]. Curta o Linux e a vida, Guido =8-)