Total de visualizações de página

domingo, 1 de maio de 2016

Linux: O guia Definitivo para Iniantes





14 Apr 2007, 09:36
Tudo o que você precisa saber inicialmente sobre LINUX, e não tinha para quem Perguntar...

Auto-Escola Linux

Ele é considerado difàcil e írido... Preparamos um passo a passo dos comandos e conceitos elementares para o iniciante em Linux...
>

É 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 peracionais 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).

Numa imagem de um organograma de uma empresa teràamos o esquema ordenado.

Numa imagem de um írvore de diretórios, seriam substituàdos apenas os nomes
- manteriamos uma ordem...

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

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

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.

--------------------- Milorde ---------------------------------

espero que tenha gostado 

Nenhum comentário:

Postar um comentário