Revista Do Linux  
EDIÇÃO DO MÊS
  Shell Script
  Software Livre 2000
  Projeto Kylix
  Alta disponibilidade
  Anatomia de um ataque
  Auto-Escola Linux
  Configurando Periféricos
  Código aberto
  Ensino público
  FlagShip
  Hard e Soft
  Linux para iniciantes
  Linux para mouses

Auto-escola Linux
Ele é considerado considerado difícil e árido... Preparamos um passo a passo dos comandos e conceitos elementares para o iniciante


Fábio Minami
minami@RevistaDoLinux.com.br

Franklin Carvalho
franklin@pimenta.com

É estranho encontrar um artigo como este em uma publicação Linux, uma vez que ele é sempre considerado um sistema árido, difícil e somente acessível para gente iniciada. Mas queremos com isso ajudar a derrubar não só esse, mas todos os outros mitos, e provar que ele pode ser viável até para quem é absolutamente leigo.

Qualquer usuário de outros sistemas operacionais conhecidos encontrará também no Linux uma árvore de diretórios. Usa-se sempre a imagem de uma árvore para que se entenda que de um diretório raiz se ramificam os demais diretórios (os galhos). Mas para compreender essa analogia, a imagem da árvore deverá estar invertida, de cabeça para baixo, de modo que a raiz esteja acima e a ramificação se estenda para baixo, como em um organograma. Por isso se diz que um diretório sempre tem um pai e filhos, e para ir para qualquer lugar dessa árvore, subir em direção ao diretório raiz ou descer pelos subdiretórios, pode-se usar o comando cd (change directory).

Na imagem de um organograma de uma empresa teríamos o esquema da figura 1.

Na imagem de um árvore de diretórios, seriam substituídos apenas os nomes (figura2).

Abaixo do diretório raiz, pode-se criar e remover diretórios, que são pastas que conterão os arquivos (files), e para isso dois outros comandos serão usados:

mkdir (make directory) e
rmdir (remove directory).

Logo ao iniciar, após fornecer o nome do usuário (root) e senha, você verá algo assim:

[root@maq1 /root]#

Digite pwd para saber em que lugar da árvore de arquivos você está, o que devolverá o seguinte resultado:


[root@maq1 /root]# pwd
/root
[root@maq1 /root]#

Isso quer dizer que você está no diretório root, logo abaixo do diretório raiz, o qual é representado por "/". Sempre que digitar o comando pwd, será apresentado o caminho completo até o subdiretório corrente desde o diretório raiz. Na linha de comando aparecem o nome do usuário, a identificação da máquina e o nome do diretório corrente. Por exemplo:


[root@maq1 /root]# cd /usr/X11R6/lib/X11/icewm
[root@maq1 icewm]# pwd
/usr/X11R6/lib/X11/icewm
[root@maq1 icewm]# 

No exemplo acima, você se encontrava no diretório /root. Em seguida, alternou para /usr/X11R6/lib/X11/icewm através do comando cd. Ao digitar pwd ele exibiu todo o caminho desde o diretório raiz.

Como dissemos, todo diretório tem um pai e filhos, sendo que o diretório raiz é o diretório de maior hierarquia, o pai de todos os outros. Para subir do diretório filho para o pai digite:


[root@maq1 icewm]# cd ..
[root@maq1 X11]#

Aqui você subiu um nível, e se continuar a repetir o comando cd .. em determinado momento, subindo nível a nível, chegará ao diretório raiz.

Ao usar o parâmetro .., estamos indicando o diretório acima ou pai. Ex:


[root@maq1 X11]# cd ..
[root@maq1 lib]# pwd
/usr/X11R6/lib
[root@maq1 lib]# cd ..
[root@maq1 X11R6]# pwd
/usr/X11R6
[root@maq1 X11R6]# cd ..
[root@maq1 /usr]# pwd
/usr
[root@maq1 /usr]# cd ..
[root@maq1 /]# pwd
/
[root@maq1 /]# 

Para subir ou descer na árvore de diretórios, você não precisa alternar diretório por diretório, seguindo burocraticamente, degrau a degrau, nível a nível. Pode-se cortar caminho e ir diretamente ao endereço pretendido, bastando indicar o caminho como nesses dois exemplos:

[root@maq1 /]# cd /usr/X11R6/lib/

ou

[root@maq1 icewm]# cd /

Recapitulando:


cd .. - sobe um nível
cd / - ir para o diretório raiz
cd /home/joao/sp/contrato - direto ao subdiretório especificado. 

Agora vamos aprender a criar diretórios e a removê-los. Suponha que estamos no subdiretório /home e queremos criar diretórios filhos, ou subdiretórios. Siga a seqüência:


[root@maq1 /root]# cd /home
[root@maq1 /home]# mkdir joao
[root@maq1 /home]# cd joao
[root@maq1 joao]# mkdir sp
[root@maq1 joao]# cd sp
[root@maq1 sp]# mkdir contrato
[root@maq1 sp]# cd contrato
[root@maq1 contrato]# 

Observe que ao usar o cd sem a presença da barra ("/"), estamos informando ao diretório pai que queremos alternar para um diretório filho. É o que se chama de comando natural, de cima para baixo, de pai para filho. Estamos "descendo" na árvore de diretórios.

Para remover diretórios você usará o comando rmdir. Observe a seqüência abaixo para entender como podemos remover os diretórios.


[root@maq1 /contrato]# pwd
/home/joao/sp/contrato
[root@maq1 /contrato]# cd /
[root@maq1 /]# rmdir /home/joao/sp/contrato/
[root@maq1 /]# rmdir /home/joao/sp/ 
[root@maq1 /]# rmdir /home/joao/ 
[root@maq1 /]# 

Se dentro desses diretórios houvesse arquivos, da maneira como foi executado o comando de remoção de diretório, a operação não teria sido executada. Surgiria na linha de comando algo assim:


[root@maq1 /]# rmdir /home/joao/
rmdir: /home/joao: Diretório não vazio
[root@maq1 /]# 

Quase sempre os comandos representam uma operação genérica e precisam freqüentemente de parâmetros e argumentos que especifiquem exatamente o que se deseja executar. Se houvéssemos colocado o parâmetro -p junto ao comando rmdir ele teria removido todo o caminho até o diretório corrente. Removendo assim o diretório filho /home/joao e seu pai /home, em uma única operação, contanto que não houvesse arquivos dentro desses diretórios. Para remover os diretórios e seus conteúdos usaríamos outro comando:

[root@maq1 /]# rm -rf /home/joao

Como vimos, além de um comando novo, o rm, usamos um parâmetro -rf, e como argumento o nome do diretório a ser excluído, incluindo os diretórios filhos e seus conteúdos.

Cuidado! Nunca use o comando rm -rf / a não ser que tenha um bom backup pois todo o seu sistema será apagado.

Dentro de um diretório você usará intensivamente as operações com os arquivos e aqui o leque de comandos é realmente extenso, mas os mais importantes são:


ls (list directory), para exibir o conteúdo dos diretórios ou pastas
cp (copy), para copiar arquivos ou diretórios
rm (remove), para remover arquivos ou diretórios
mv (move), para mover arquivos para outros arquivos ou diretórios
cat (concatenate), para exibir o conteúdo ou concatenar arquivos
chmod (change mode), para alterar as permissões de arquivos e diretórios
lpr (line printer), enviar para a impressora
more (mais), navega uma listagem para baixo
less (menos), navega uma listagem para cima ou para baixo 
mount (montar), para montar dispositivos e máquinas em seu sistema
tar (tape archive), para copiar arquivos e diretórios em um único arquivo
man (manual), ou páginas de manual de comandos e programas.

O man é o comando mais importante. Antes de usar qualquer comando, em caso de não conhecê-lo bem ou a alguns de seus parâmetros, é aconselhável verificar sua documentação. Sempre que quiser consultar a descrição de um comando, basta digitar na linha de comando, ou bash (Bourne Again Shell), man comando ou man programa.

Exemplos:


[root@maq1 /root]# man rmdir
[root@maq1 /root]# man mkdir
[root@maq1 /root]# man ls
[root@maq1 /root]# man cp
[root@maq1 /root]# man tar
[root@maq1 /root]# man bash
[root@maq1 /root]# man vi

Um grande esforço internacional de voluntários e distribuições se incumbe de aprimorar e acrescentar sempre mais man pages, traduzindo-as para o maior número possível de línguas, que vão do óbvio inglês ao inesperado esperanto. Tente isso:

[root@maq1 /root]# man rmdir

Use as setas para cima e para baixo, PageUp e PageDown, Home e End para navegar nas páginas de manual. Quando quiser encerrar a consulta digite Q (quit) e retornará à linha de comando. É a melhor fonte de consulta, que você terá todo o tempo, em suas sessões Linux. Não deixe de usá-la.

Um detalhe que não podemos ignorar em nossa primeira aula da auto-escola, é o fato de existirem arquivos e diretórios ocultos. Estes sempre se iniciam com um ponto (.).

Dentro de um diretório, você poderá pedir uma listagem e ela não conterá alguns arquivos ou diretórios, que estão ocultos por algum motivo. Geralmente, por uma questão de segurança e integridade do sistema.

Outra coisa que você deverá saber para operar o Linux é o conceito de "pontos de montagem". Drives de CD-ROM, de discos ZIP, de disquetes, outras máquinas da rede, sempre serão representados por diretórios, embora na verdade tenham sido "montados" para aparecerem assim.

Todos os usuários diferentes de root têm seus arquivos num diretório chamado /home. Os diretórios básicos são:

/bin

Aqui estão os comandos essenciais do sistema operacional.

/usr/bin

Contém os comandos e binários do sistema.

/dev

Aqui residem os arquivos de dispositivo, como placas de som ou vídeo, modems e demais periféricos.

etc

Contém os arquivos de configuração, que podem ser abertos por um editor de texto, pois são basicamente scripts.

/home

Aqui estão todos os arquivos dos usuários, com exceção do root.

Por exemplo, se o usuário for jose, seu diretório pessoal poderia ser /home/jose

/root

É o diretório do administrador de sistemas. Os usuários normais não têm acesso a este diretório.

/lib

Contém as bibliotecas compartilhadas que são necessárias para inicializar o sistema e executar alguns comandos.

/mnt

É utilizado para montar os dispositivos temporários. Assim, o diretório do CD-ROM será /mnt/cdrom, o do disquete, /mnt/floppy e o dos arquivos DOS /mnt/dos.

/proc

Tudo que estiver neste diretório virtual não existe fisicamente no disco, pois encontra-se na memória RAM.

/tmp

É utilizado para armazenar arquivos temporários que, ao final de um processo, são eliminados.

/var

É utilizado como repositório de arquivos de log, e-mail, dados vários (daí o nome /var), e principalmente os arquivos de registro do sistema.

Particularidades

A sintaxe do Linux tem algumas particularidades: as letras maiúsculas são diferentes das minúsculas (case sensitive), as extensões dos arquivos são opcionais, já que podemos ver as características de um arquivo com o comando file. Mas lembre-se: JOSE é diferente de Jose, também diferente de jose, assim como JoSe. A isso chamamos case sensitive. Aquele conceito do Windows de que a extensão identifica o tipo do arquivo não é obrigatório. Um arquivo executável (binário) pode se chamar 1.2, ou programa, ou sent-23.bin.app. Os nomes podem ser longos até 256 caracteres e não se usa espaços em branco, em geral usa-se o - (hífen) e o _ (sublinhado) para separar os nomes de arquivos.

São muito conhecidos os curingas * e ? para uso com comandos, só que são mais abrangentes do que no Windows/DOS e ainda existem as expressões regulares que tornam esse recurso muito mais poderoso. Veja o artigo sobre o assunto na Revista do Linux edição número 3, por Aurelio Marinho Jargas.

Observe que o * é 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 ou qualquer combinação de caracteres que comece com p e termine com r; *c* corresponde a Picked e Peck.

Não há um recurso como o Undelete, então pense duas vezes antes de apagar algo.

Outra coisa importante a assinalar é que em todos os exemplos anteriores aparece o seguinte identificador:

[root@maq1 /root]#

Isso quer dizer que você se logou como usuário root, ou superusuário, e que a você tudo é permitido, principalmente fazer besteira.

Trata-se de uma política condenável em Linux você trabalhar como usuário root, a não ser que pretenda instalar novos programas, alterar o seu sistema, remover diretórios essenciais e tarefas que podem comprometer a segurança do sistema e torná-lo vulnerável a ataques. Para sanar esse defeito, que é claro você não conhecia, digite:

[root@maq1 /root]# useradd jose

Em seguida:

[root@maq1 /root]# passwd jose

Entre com a senha do novo usuário (você), confirme-a uma vez mais, em seguida digite:

[root@maq1 /root]# logout

E agora forneça o novo login do usuário recém-criado e a senha, e na linha de comando você verá a seguinte alteração:

[jose@maq1 jose]$

Nem você nem ninguém tem poderes para danificar o sistema. Só para citar o que significa isso, ao iniciar o Gnome como usuário root, ele alerta que isso é um procedimento arriscado, e sugere que você se "log" novamente como usuário comum.

Para instalar outros programas ou fazer alterações que envolvam responsabilidades, você poderá, a qualquer momento, alternar outro terminal usando Control + Alt + F2, Control + Alt + F3 (até F6), e depois de fazer a alteração desejada, dê um "logout" e volte a ser um usuário normal. É o melhor procedimento de segurança.

Comandos

Vamos praticar um pouco com os seis comandos mais usados em Linux, que são ls, cp, mv, rm, cd e mkdir. Claro que em um primeiro passeio você desejará dar uma olhadinha nos diretórios, agora que sabe navegar na árvore. Outro segredinho a ser contado é que as duas teclas mais usadas no teclado de um linuxer são o Tab e a seta para cima.

Com Tab completamos caminhos, nomes de arquivos e diretórios e com a seta para cima acessamos o histórico de comandos, normalmente os últimos mil.

Você já leu sobre os diretórios gerais do Linux e sabe que deve criar seus diretórios sempre abaixo de /home. Pois bem, vamos criar um diretório novo chamado documentos abaixo de /home.

[jose@maq1 /]$ mkdir /home/documentos

em seguida alternamos para o diretório criado, usando Tab.

Digite :

[jose@maq1 /]$ cd /ho <TAB>

e mágica, o Tab completa o caminho escrevendo cd /home/.

Complete novamente continuando o caminho com a partícula do:

[jose@maq1 /]$ cd /home/do <TAB>

e o caminho será completado como cd /home/documentos. Acho que você entendeu porque a tecla Tab é uma das duas mais usadas na linha de comando. Em caso de "empate", ou seja, há mais de uma possibilidade, teclando Tab uma vez mais, elas serão mostradas. E como os comandos são em geral muito repetitivos, acessar o histórico é muito mais fácil que redigitar. Teclando a seta para cima e escolhendo no histórico um comando que queira repetir, basta teclar Enter após a seleção.

Vamos listar agora o conteúdo do diretório /usr/X11R6/bin, que contém a grande maioria dos aplicativos de interface gráfica, só para conhecer melhor seus nomes e características.

[jose@maq1 /documentos]$ ls /usr/X11R6/bin

Acontece que são muitos arquivos e a listagem passa rapidamente pela tela, sem que você possa congelar sua exibição. Para isso, você pode tomar as seguintes providências ao listar o diretório:

ls, usando um redirecionamento para um arquivo do tipo texto
ls, usando um paginador de tela como o more ou o less
ls, selecionando subgrupos de arquivos, por letra inicial
ls, usando um redirecionamento para a impressora


[jose@maq1 /documentos]$ ls /usr/X11R6/bin > graficos
[jose@maq1 /documentos]$ ls /usr/X11R6/bin | less
[jose@maq1 /documentos]$ ls /usr/X11R6/bin | more
[jose@maq1 /documentos]$ ls /usr/X11R6/bin/a*
[jose@maq1 /documentos]$ ls /usr/X11R6/bin | lpr

Usamos nos exemplos acima três novidades: um curinga (*), um pipe (|) e um redirecionamento (>). O curinga foi usado para listar apenas arquivos iniciados com a letra a, o pipe (duto) foi usado para "canalizar", "conduzir", a saída para dois paginadores, o less e o more, e também para a impressora, e por último um redirecionamento para um arquivo texto, nomeado por "graficos".

Para fazer um redirecionamento, como por exemplo ao invés de exibir a saída na tela, que é a saída padrão, e desviá-la para outra saída como para um arquivo, use o sinal >. Para listar um diretório diretamente para um arquivo, ou para juntar vários arquivos texto em um único arquivo, use esses exemplos:


[jose@maq1 /]$ ls /usr/bin >dir_usr_bin
[jose@maq1 /]$ cat /home/*.txt >/home/textos

No exemplo acima foi criado um arquivo "textos", contendo vários outros de extensão .txt. No caso de você voltar a repetir a operação sem destruir o conteúdo anterior, adicionando novos arquivos de outro diretório por exemplo, use então o >>. O comando ficaria assim:

[jose@maq1 /]$ cat /home/artigos/*.txt >>/home/textos

Para imprimir o arquivo "textos" pode-se usar:

[jose@maq1 /]$ lpr /home/textos

ou

[jose@maq1 /]$ cat /home/textos |lpr

Agora usamos um pipe (duto), que tem por função "canalizar" a saída para outro programa, o de impressão.

Lidando com arquivos, as tarefas mais corriqueiras são sempre as de copiar, deletar, mover, exibir e buscar. Respectivamente executadas pelos comandos cp, rm, mv, cat e find. Para os que estão acostumados a usar o comando rename do DOS, encontrarão essa funcionalidade no comando mv, que move também de um nome para outro. A grande maioria de novos usuários de Linux vem sempre da plataforma Windows, e uma ferramenta fundamental para continuar a ler os disquetes, copiar arquivos do velho para o novo sistema, também ler os discos de ZIP drive, é o conjunto mtools. Não deixe de instalá-lo.

Vamos usar alguns exemplos para os comandos corriqueiros e para o uso do mtools.

Copiar todos os arquivos do diretório /home para outro novo:


[jose@maq1 /]$ cp /home/* /novo_diretório/
[jose@maq1 /]$ cp arquivo1 arquivo2
[jose@maq1 /]$ cp /usr/bin/* .

No último exemplo, há um ponto (.) no final da linha, que indica "copie para o diretório corrente" (aqui).

Mover (renomear) arquivos:


[jose@maq1 /]$ mv arquivo1 arquivo2
[jose@maq1 /]$ mv /home/* /novo_diretório/

Deletar arquivos. Note que o parâmetro -f indica remoção "forçada", sem pedir confirmação ao usuário:


[jose@maq1 /]$ rm -f arquiv*
[jose@maq1 /]$ rm -f /usr/local/bin/Ted
[jose@maq1 /]$ rm /home/*

Deletar diretórios. O parâmetro -r indica remoção sem confirmação, e junto com -f indica remoção de diretório e arquivos:

[jose@maq1 /]$ rm -rf /home/

E o mais fatal dos comandos, a remoção de tudo a partir do diretório raiz, geralmente é seguido de suicídio. Nunca o use:

[jose@maq1 /]$ rm -rf /*

Concatenar e exibir arquivos:


[jose@maq1 /]$ cat arquivo1 arquivo2 arquivo3 >arquivo_geral
[jose@maq1 /]$ cat arquivo_novo
[jose@maq1 /]$ cat arquivo_velho >arquivo_novo
[jose@maq1 /]$ cat arquivo_velho |lpr

Busca de arquivos:


[jose@maq1 /]$ find / -iname ’Art*.rpm’
[jose@maq1 /]$ find /home/ -iname ’*.txt’

Esse comando de busca vai selecionar todo o seu sistema, em todos os discos presentes, inclusive disquete e CD-ROM:

[jose@maq1 /]$ find -iname *

Ferramentas mtools. Observe que não é preciso montar a unidade de disquetes. Se você digitar mtools, aparecerá na tela:


[jose@maq1 /]$ mtools
Supported commands:
mattrib, mbadblocks, mcat, mcd, mcopy, mdel, mdeltree, mdir
mdoctorfat, mdu, mformat, minfo, mlabel, mmd, mmount, mpartition
mrd, mread, mmove, mren, mshowfat, mtoolstest, mtype, mwrite
mzip 

Essa é a listagem das ferramentas e para saber um pouco de sua sintaxe, siga esses exemplos:


[jose@maq1 /]$ mdir a:
[jose@maq1 /]$ mdir a:/arquivos_velhos/*
[jose@maq1 /]$ mcopy a:/*.xls /gnumeric/
[jose@maq1 /]$ mcopy /home/textos a:
[jose@maq1 /]$ mformat a:
[jose@maq1 /]$ mcd a:/arquivos/
[jose@maq1 /]$ mcd a:/
[jose@maq1 /]$ mlabel a:
[jose@maq1 /]$ mtype a:/primeiro.txt
[jose@maq1 /]$ mmd a:/novo

Para conhecer melhor as ferramentas digite:

[jose@maq1 /]$ man mtools

Sobre discos de ZIP, formatados para DOS, que é o caso mais comum, basta montá-los. Existe mais de uma maneira e inclusive há ferramentas gráficas, mas vai aqui uma "receitinha". Primeiro crie um diretório /zip abaixo de /mnt:

[root@maq1 /]# mkdir /mnt/zip/

e depois você deverá montar o disco de ZIP:


[root@maq1 /]# modprobe ppa
[root@maq1 /]# mount -t vfat /dev/sda4 /zip

ou

[root@maq1 /]# mount -t vfat /dev/sda1 /zip

para desmontar e ejetar o disco:


[root@maq1 /]# umount /mnt/zip/
[root@maq1 /]# eject /dev/sda4

ou

[root@maq1 /]# eject /dev/sda1

Para não ter a trabalheira de digitar isso tudo de novo, principalmente quando estiver consultando muitos discos, crie um script de nome montazip dentro do diretório /usr/bin:


#!/bin/bash/
modprobe ppa
mount -t vfat /dev/sda4 /mnt/zip
echo ........Disco ZIP montado!

e outro de nome desmontazip:


#!/bin/bash
umount /mnt/zip
eject /dev/sda4
echo ........Disco ZIP desmontado!

A seguir, altere as permissões dos dois arquivos criados, permitindo execução:


[root@maq1 /]# chmod 775 montazip
[root@maq1 /]# chmod 775 desmontazip

Agora basta digitar, a partir de qualquer diretório, o nome de um dos dois scripts para montar ou desmontar o disco de ZIP. Observe que você não poderá desmontar um disco ZIP se o diretório corrente for /mnt/zip, que o representa. E já que estamos falando de montagem de dispositivos, vamos aprender a montar e desmontar o drive de disquetes e o de CD-ROM:


[root@maq1 /]# mount /mnt/cdrom
[root@maq1 /]# umount /mnt/cdrom
[root@maq1 /]# mount /mnt/floppy
[root@maq1 /]# umount /mnt/floppy

E para formatar um disquete no bash:

[root@maq1 /]# fdformat /dev/fd0H1440

Pacotes RPM e TAR

Como último item de nosso passeio pelo bash, resta falar sobre pacotes RPM e TAR, que são os tradicionais formatos de pacotes de instalação de programas, que se encontram às toneladas na Internet.

Genericamente, para o RPM usamos quatro parâmetros: -i, -q, -U e -e.

Para instalar use -i, para consultar -q, para atualizar -U e para desinstalar -e. Exemplo:


[root@maq1 /]# rpm -i nome_do_pacote.rpm
[root@maq1 /]# rpm -ivh nome_do_pacote.rpm
[root@maq1 /]# rpm -Uvh nome_do_pacote.rpm
[root@maq1 /]# rpm -q nome_do_pacote_instalado
[root@maq1 /]# rpm -e nome_do_pacote_instalado

Para um pacote como o mtools:


[root@maq1 /]# rpm -ivh mtools (instalar)
[root@maq1 /]# rpm -q mtools (consultar)
[root@maq1 /]# rpm -e mtools (desinstalar)

Quando o formato de instalação for .tar, identificado geralmente por arquivos nomeados por arquivo.tar.gz. Além do formato tar, ainda estão compactados, o que é indicado pelo gz de gunzip, um compactador. Para "descompactar e desempacotar" o pacote tar, use:

[jose@maq1 /]# tar zxvf nome_do_pacote.tar.gz

Se for apenas um arquivo com extensão tar, não compactado, use:

[jose@maq1 /]# tar xvf nome_do_pacote.tar

Consulte a documentação dentro do diretório criado para maiores detalhes de como finalizar a instalação do pacote tar.

Conclusão

Embora o usuário iniciante possa usar única e exclusivamente a interface gráfica para fazer tudo que está descrito acima, pouco a pouco adquirirá novos hábitos, e certamente irá perdendo o medo de usar os temidos terminais para digitar comandos no modo texto.

Trata-se de um aprendizado natural e rito de passagem para um universo muito mais poderoso, que não exclui mas complementa a interface gráfica.

 

A Revista do Linux é editada pela Conectiva S/A
Todos os Direitos Reservados.

Política de Privacidade