Certo, agora você já avaliou o Linux, já instalou, já reiniciou a máquina e até já está vendo esta página no Linux (tomara!) ;)
O que mais você deve saber sobre o Linux? Vou mostrar agora algumas coisas úteis.
Editando arquivos de configuração
Alguma vez você será instruído a editar algum arquivo de configuração. E dirão para você: "comente a linha que diz blablablá...". Comentar significa: invalidar a linha para que o programa que depende desse arquivo não consulte essa linha.Para fazer isso, você só precisa adicionar o símbolo
# (chama-se "tralha") no início da linha. Num arquivo de configuração, tudo que vem depois do # não conta.Exemplo: um arquivo de configuração de um programa hipotético que disca para seu provedor:
numero: 1234-5678Digamos que mude o telefone do seu provedor, mas só por uma semana (a operadora de telefones fixos da sua área está com problemas). Você não precisa apagar a respectiva linha, afinal é só uma semana. Então, você pode comentála, e colocar a provisória no lugar, assim:
login: fulano
init-string: ATZ
#numero: 1234-5678Talvez este exemplo não seja o melhor, mas acho que me fiz entender, certo?
numero: 2345-6789
login: fulano
init-string: ATZ
Essa louca estrutura de diretórios
(veja um outro artigo sobre esse assunto neste link)Ela é a mesma estrutura do UNIX (talvez com mínimas variações, imperceptíveis para nós usuários comuns). Vou tentar explicar cada diretório.
| Diretório | Conteúdo |
|---|---|
| /bin | É onde ficam os arquivos binários usados por todos os usuários. Binários são os arquivos executáveis. |
| /boot | Arquivos relacionados ao boot e ao kernel. Aqui fica o próprio Kernel (chamado vmlinuz), assim como os arquivos de configuração do GRUB (um dos gerenciadores de inicialização, ou boot loaders). |
| /dev | Arquivos que representam os dispositivos físicos (hardware), como os HD's, placas de som, de vídeo, disposivos da placa-mãe, impressora etc. |
| /etc | Não, aqui não fica o lixo. No /etc ficam os arquivos de configuração do sistema operacional e da maioria dos programas. É um diretório muito importante. |
| /lib | Aqui ficam algumas das bibliotecas do sistema, mas não todas. Se você não sabe programar (eu, por exemplo, não sei), você provavelmente nunca vai entrar nesse diretório, e nem vai saber de sua existência. |
| /mnt | Em geral, os dispositivos de armazenamento são montados em subdiretórios deste diretório. Explico melhor mais tarde. |
| /opt | Aqui ficam os arquivos de programas de terceiros, que não vieram com a sua distribuição. Por exemplo, minha distribuição não inclui suporte a Java, então a instalação do JDK da Sun instalou seus arquivos em /opt/sun-jdk. Da mesma forma, o Acrobat Reader, que não veio com minha distribuição, se instalou no /opt. |
| /proc | Mais um que não será muito visitado tão cedo. Aqui ficam os arquivos temporários do kernel. |
| /root | É como se fosse o /home do superusuário. Aqui ficam os arquivos pessoais do superusuário, mas como ele é super, o home dele é separado dos "mortais". |
| /sbin | É onde ficam os arquivos binários (=executáveis) do superusuário. Geralmente, arquivos que iniciam servidores ou programas de administração do sistema ficam aqui, já que somente o superusuário irá rodar esses programas. |
| /tmp | Guarda os arquivos temporários, como o \Windows\Temp no MS Windows 9x. |
| /usr | É um dos diretórios mais importantes. Aqui ficam muitas coisas (ele merecia uma descrição como essa para seus subdiretórios). Inclui arquivos executáveis, bibliotecas, código-fonte (incluindo os fontes do kernel)... |
| /var | Aqui ficam arquivos variados (parece que todos os diretórios poderiam se chamar /var, não é mesmo?). =) Inclui o spool de impressão, os arquivos de cache, alguns temporários... Não é muito visitado no uso cotidiano. |
Usuários do DOS, deleitai-vos
Sabe quando você tem que dar um comando com um nome de arquivo imenso, com grande chance de errar? O shell do Linux tem a solução para seus problemas! O recurso de auto-completar (auto-completion, em inglês). Suponhamos que você tenha no diretório corrente os arquivos:aaabcdPara ver o arquivo
abewrerp
itorptniotr
mnjkfnjkru
mnjkfnjkru.aaaaa
mnjkfnjkru.bbbbb
mnjkfnjkru.aabb
aaabcd, você pode usar o comando cat aa e logo depois teclar >TAB, que o nome do arquivo será completado para aaabcd. Se você der um cat a, serão listados todos os arquivos que se começam com a, para você continuar com a próxima letra, até ele saber a qual arquivo você está se referindo. Um cat i já completa para cat itorptniotr. Um cat m completa para cat mnjkfnjkru, e se você agora apertar , são listados os 4 arquivos que começam com estas letras. Se você agora apertar .a, ele completa para cat mnjkfnjkru.aa, e se você apertar a novamente, ele completa o comando todo, dando um espaço ao final, ficando assim cat mnjkfnjkru.aaaaa.E tem mais!: Isso funciona para comandos também! Se você digitar
fdi, ele vai completar pra fdisk. E um f lista todos os mais de 100 comandos que começam com a letra f.Nota: recentemente descobri que o Windows XP também dispõe de uma certa forma de auto-completar no "Prompt do MS-DOS". Se a sua dúvida é "Quem copiou de quem?", eu só digo que o Linux dispõe do auto-completar há mais de 10 anos. ;)
Semelhanças para o MS-DOS
(mais uma vez, este documento também aborda a questão)Os comandos do MS-DOS foram todos baseados em comandos do shell do UNIX. Então, ainda guardam uma boa semelhança. Alguns exemplos:
| MS-DOS | bash (é o shell padrão do Linux) |
|---|---|
| copy | cp |
| move | mv |
| ren | mv (não existe "renomear", e sim "mover de um nome para outro" |
| del | rm (de remove, em vez de delete) |
| cd | cd |
| md | mkdir |
| rd | rmdir |
| attrib | chmod (e a sintaxe é diferente. Leia mais no manual do chmod, digitando man chmod) |
| help | man (o man é muito mais poderoso que o help. Falarei mais sobre isso depois) |
/home para /mnt, eu posso usar tanto cd /mnt quanto cd ../mnt. Note que a barra (/) não é invertida no Linux! No DOS era \, mas no Linux é /. Se você usar a barra invertida, não vai funcionar.Diferenças para o DOS
O DOS é uma interface bastante simples. No Linux, isso que vemos como interface de modo texto é na realidade um shell. Shell é um interpretador de comandos. Isso significa que ele lê o que você escreveu e interpreta, em vez de logo chamar o comando que você digitou. Parece a mesma coisa? Vou mostrar por que não é. Uma das facilidades mais básicas de um interpretador de comandos é a expansão do comando.Por exemplo: Naquele nosso exemplo anterior, onde tínhamos 7 arquivos num dado diretório, se quiséssemos apagar os arquivos
aaabcd e mnjkfnjkru.aaaaa, como faríamos? rm aaabcd, depois rm mnjkfnjkru.aaaaa, certo? (espero que você se lembre de usar o rm {aaabcd,mnfkfnjkru.aaaaa}. Parece inútil? Se quiséssemos apagar então esses 2 arquivos, e mais o mnfkfnjkru.aabb, poderíamos fazer: rm {aaabcd,mnfkfnjkru.aa*}. Vou parar por aqui, e deixar você se preocupar com isso mais tarde, quando for do seu interesse.Como buscar ajuda?
A ajuda no Linux costuma se bastante eficiente. O sistema original de ajuda na realidade consiste de um manual para cada comando ou aspecto do sistema. Esses manuais são acessados com o comandoman. Experimente um man cp. Ele vai te informar toda a sintaxe do comando cp, e cada um dos parâmetros possíveis de se usar com este comando. Para saber mais sobre o man, adivinhe: man man !Vai fundo, que só se tem a ganhar lendo os manuais.
Sobre comandos e parâmetros
No UNIX costuma ser assim, e no Linux não é diferente. A sintaxe de um comando costuma ser:comando -parâmetros --outrosparâmetros objetoPor exemplo, o comando
Exemplo:
ls -a --recursive /opt
(isso lista o conteúdo do diretório /opt, mostrando também arquivos ocultos (-a), e percorrendo todos os subdiretórios do /opt (--recursive)
cp pode ser usado para copiar um diretório e todo seu conteúdo para outro local. O parâmetro para isto é --recursive. O comando fica então:cp --recursive diretório destinoOutro exemplo, o comando
Exemplo:
cp --recursive /home/pablo/trabalho /home/pablo/diversao
(isso copia o diretório /home/pablo/trabalho e todo seu conteúdo para /home/pablo/diversao
tar. Para extrair um arquivo compactado do tipo .tar.gz, usa-se o comando tar -zxvf arquivo_compactado Esse exemplo mostra 2 coisas: você em geral pode (e deve) juntar todos os parâmetros (-zxvf junta os parâmetros -z, -x, -v e -f). E o --recursive do exemplo anterior precisa de 2 traços (--) porque é uma opção longa, isto é, tem mais de uma letra. Então, o padrão para os comandos em UNIX é este:comando -opções_curtas --opção_longa1 --opção_longa2 objeto_do_comando
Exemplo:
tar -xzvf meuarquivo.tar.gz --preserve
(isso descompacta (-x) o arquivão meuarquivo.tar.gz (-f meuarquivo.tar.gz) gzipado (-z),
mostra na tela todos os arquivos sendo extraídos (-v),
e preserva as permissões dos arquivos (--preserve)).



