Hugo Cisneiros (Eitch), hugo arroba devin ponto com ponto br
Versão 4.0, 2006

The Linux Manual

3.1. Primeiros Contatos

Índice

3.1.1. O Início
3.1.2. Multi-Tarefa e Multi-Usuário
3.1.3. A interface texto (Console)
3.1.4. A interface gráfica (X-Window)
3.1.5. Estrutura de diretórios no Linux
3.1.6. O interpretador de comandos (Shell)
3.1.7. Documentação

Saiba agora algumas coisas básicas para depois conseguir se virar no sistema...

3.1.1. O Início

A inicialização do Linux é muito importante... Primeiro porque você está iniciando o melhor sistema existente, segundo porque as mensagens que aparecem durante o boot serão muito úteis na hora de executar algumas tarefas no Linux: tais como montar dispositivos (partições, CD-ROMs), ver o que está sendo iniciado automaticamente, o que está sendo reconhecido pelo kernel e outras coisas mais que com certeza veremos mais à frente.

É indispensável que você observe as mensagens de boot atentamente... Mas tem um probleminha, se tudo passa muito rápido, ou você quer consultar as mensagens de boot depois (e não quer ter de reiniciar a máquina pra ver...), existe um comando que mostra as mensagens de boot do kernel. Este comando é o dmesg, ele vai mostrar o processo de boot do kernel todo sem problemas.

Logo após todas as mensagens de boot, você será presenteado com uma tela de login do usuário. Como veremos mais adiante, o Linux é multi-usuário, ou seja, suporta vários usuários. Dependendo da configuração usada na instalação, esta tela de login pode ser em modo gráfico ou texto. É aqui que começa o nosso uso no sistema!

Na instalação você deve ter escolhido uma senha para o root e deve também ter criado um usuário normal (se não criou, é recomendável que você criasse, mas isso podemos fazer depois). Logue-se como root ou como usuário normal usando o nome do usuário e a senha escolhida. Você ou cairá na interface gráfica, ou na texto (dependendo da distribuição)... Mas antes de usar vamos entender mais conceitos? É o que trataremos nas seções à seguir.

3.1.2. Multi-Tarefa e Multi-Usuário

O Linux é multi-tarefa e multi-usuário, mas o que isso quer dizer? Multi-tarefa é a capacidade que o sistema tem de executar várias tarefas de uma só vez, dividindo assim o uso da memória. Enquanto multi-usuário é a capacidade do sistema lhe dar com várias pessoas ou usuários, cada um com suas preferências, cada um com seus arquivos, suas permissões e assim por diante.

Como um exemplo de multi-tarefa, podemos citar que você pode consultar um arquivo texto que está no diretório X, enquanto acessa o disquete e o CD-ROM, tudo ao mesmo tempo. Ou seja, você faz as coisas, mas não fica preso somente a elas, pode executar outras tarefas enquanto uma já estiver sendo executada. Todos os sistemas atuais são multi-tarefa, então este conceito não deve ser muito novo para você. Um exemplo de sistema que não é multi-tarefa é o DOS (ugh).

É muito importante destacar o multi-usuário do Linux. Tudo vai ser dividido por usuários e junto com essas divisões haverá também as restrições. Há um usuário principal no Linux, chamado root. Este usuário pode acessar, controlar e fazer tudo no sistema. Enquanto os usuários normais só poderão acessar seus documentos, ou os que o sistema (root) permitir. Uma ética importante para o Linux é nunca usar o usuário root... Então é recomendável que você crie um usuário primeiro e use ele, só utilize o root para tarefas administrativas! Por que isso? O usuário root tem o poder em tudo, inclusive de fazer muita besteira no sistema... Você não quer fazer besteira, ou quer? :)

3.1.3. A interface texto (Console)

A interface texto do Linux é indispensável para o uso do sistema. É nesta interface que você vai encontrar uma quantidade enorme de utilitários e comandos que irão lhe ajudar na administração do dia a dia. Se a tela de login for no modo texto, você se logará e logo após será presenteado com o interpretador de comando, onde você poderá mexer realmente no sistema. A interface texto não é tão amigável como a gráfica, mas certamente tem suas utilidades e é recomendado que todos os usuários não fiquem só presos a interface gráfica e que conheçam bem o modo texto. Outro nome que podemos dar à interface texto é console.

Então vamos ao que interessa, o modo texto é dividido inicialmente em 6 telas, em cada tela poderá se logar um usuário. Experimente apertar a combinação de teclas Alt-F1, Alt-F2, ..., Alt-F6. Isto o levará para os consoles 1, 2, 3, 4, 5 e 6. A partir do 7, o Linux reserva especialmente para as interfaces gráficas funcionarem. Como o Linux é um sistema multi-tarefa e multi-usuário, você pode se logar em todos ao mesmo tempo, com quaisquer usuários. Você pode por exemplo se logar como root no console 1 para qualquer emergência e ficar usando um usuário normal no console 2. Caso você esteja no modo gráfico e queira passar para os consoles do modo texto, basta apenas você utilizar a combinação de teclas Ctrl-Alt-F1, Ctrl-Alt-F2 e por aí vai.

Lembre-se sempre que a interface texto é o poder do Linux! Você pode estar se perguntando como pode conviver com o ambiente texto, mas eu posso te garantir que você convive muito bem. Existem vários programas para o modo texto que você provavelmente vai querer usar... Você vai poder usar IRC (BitchX, irsii), WWW (lynx ou links), ICQ (micq), visualizar imagens (zgv), jogar joguinhos (quake, overkill, dopewars), editar arquivos (vim, emacs, nano ou joe) e um monte de coisas mais. A interface texto do Linux, ao contrário da do DOS, é bem poderosa :) Vá se acostumando com a idéia de querer usar ela.

3.1.4. A interface gráfica (X-Window)

A interface gráfica vem crescendo cada vez mais no Linux. O que permite que o Linux tenha estes recursos gráficos todos é o servidor X (X-Window). Em todas as atuais distribuições Linux é incluído o Xorg (ou XFree86, a sua versão mais antiga), um servidor X totalmente gratuito para Linux/Unix. Mas o servidor X é apenas quem vai fornecer o recurso de gerar a interface gráfica. Para que haja um desktop, é necessário também a existência de um gerenciador de janelas (ou Window Managers) que são programas que usam a biblioteca do X-Window para gerar as aplicações, as janelas, a aparência do modo gráfico no Linux.

Por exemplo, o WindowMaker é um gerenciador de janelas, ele usa a biblioteca do X-Window para gerar suas janelas e seus programas, como o dock. Sem um gerenciador de janelas, é inútil se usar um servidor X, pois ele rodará, mas o usuário não poderá fazer nada nele. Quer ver? Experimente executar o comando X. Irá se abrir uma interface gráfica, com o mouse, mas o usuário não vai ter controle nenhum. Para finalizar esta seção aperte Ctrl-Alt-Backspace (combinação de teclas que encerra forçadamente o servidor X).

Outros exemplos de gerenciadores de janelas: KDE, GNOME, Fluxbox, BlackBox, IceWM, XFCE, Enlightenment e por aí vai.

Iremos falar das interfaces gráficas mais adiante, por enquanto ficaremos aprendendo como mexer no console, que é a parte mais emocionante e a que mais se aprende.

3.1.5. Estrutura de diretórios no Linux

Diretórios! Ou pastas? Eis a questão! A raiz do Linux fica no diretório / e dentro deste diretório existem vários outros, cada um significando uma coisa. Vamos aqui aprender o significado de cada um para sabermos onde usar as coisas e onde colocar os arquivos adequadamente e organizadamente. A estrutura de diretórios no Linux é basicamente dividida assim:

Diretório Serve pra?
/bin Arquivos executáveis que são usados pelo sistema freqüentemente. Aqui encontramos por exemplo os interpretadores de comandos (bash, ash, etc), o df, chmod, date, kill, dmesg, pwd, ls e muito mais. São os comandos essenciais :)
/boot Neste diretório ficam os arquivos de boot, como os mapas de boot e as imagens do kernel.
/dev Este é um diretório que carrega consigo todos os arquivos-dispositivos.
/etc Arquivos de configuração do Linux. Este é o diretório que carrega todas as configurações dos principais (senão todos) os programas do Linux. Ele contém por exemplo os arquivos de usuários e senhas, arquivos de inicialização, configurações de rede e mais uma bolada de configuração pra deixar qualquer um doido.
/home Diretório dos usuários. Cada usuário tem um diretório dentro deste diretório :)
/lib Algumas bibliotecas essenciais para o funcionamento do Linux e também os módulos do kernel.
/proc Este é um diretório especial, ele contém informações que o kernel gera e algumas configurações também.
/root É um diretório HOME. Só que aqui é o do usuário administrador (root).
/sbin Executáveis que têm funções administrativas, geralmente usados pelo root. Aqui se encontram programas para verificar e criar sistemas de arquivos, optimizar o uso do HD, configurar dispositivos, gerenciar módulos do kernel, etc.
/tmp Diretório temporário. Neste diretório, vários utlitários criam arquivos que só serão usados por um tempinho e depois descartados. Não há nenhuma informação importante aqui, pois pode ser acessado por qualquer usuário.
/usr Um dos maiores diretórios, este contém as bibliotecas e arquivos gerais dos vários programas instalados no sistema. Sua estrutura é bem parecida com a raiz em sí. Ele também tem um lib, bin, sbin e por aí vai.
/var Informações variáveis que estão sempre em constante mudança, como arquivos de logs, de travas, informações, e-mails do sistema, etc.

Tabela 3.1. Estrutura de diretórios no Linux

Cada diretório tem seus subdiretórios com muita coisa para explorar. Você já pode ir dando uma olhada para ver como tudo é organizado.

3.1.6. O interpretador de comandos (Shell)

Pronto. Você acaba de se logar no sistema, o que fazer agora? A primeira coisa que você tem de saber é o com o que você está usando: um interpretador de comandos. Você estará num prompt parecido com alguns destes:

madoka:/home/hugo$
[hugo@madoka hugo]$

Você está dentro de um interepretador de comandos, que no caso é o bash. O interpretador de comandos é um mediador entre o usuário e a máquina. Você digita algum comando e o interpretador lê o que você digitou e executa a tarefa correspondente. Sem um interpretador de comandos, não haveria possibilidade de o usuário interagir com o sistema. Os interpretadores mais comuns são: sh, bash, ash, csh, tcsh e ksh. Na maioria dos casos, você estará usando o bash (que na minha opinião é realmente o melhor!).

[Nota] Nota

Nos prompts do Linux, quando se acaba com o símbolo $, isto quer dizer que você está logado com um usuário normal. Se você estiver logado com o root, ao invés do símbolo $, no final do prompt existirá o símbolo #

Você pode ir testando seu interpretador de comandos executando comandos simples, ou fazendo scripts shell, ou o que seja. Caso você queira usar outro interpretador de comandos, você pode mudar a entrada no arquivo /etc/passwd para o usuário, ou pode simplesmente executar a shell dentro de uma shell. Por exemplo, se você digitar csh, você entrará nesta shell. Quando quiser sair da shell, utilize o comando exit (ou logout, ou também apertando Ctrl-D). Experimente testando todas os interpretadores que citamos aqui.

3.1.7. Documentação

Ler é sempre importante! Da mesma forma que você deve estar lendo este manual, existem muitas coisas para se ler e aprender no Linux.

3.1.7.1. As páginas de manual

O que você faz quando está confuso com algum comando? Não sabe como ele funciona, quais são seus parâmetros, o que ele faz e essas coisas... No Linux há uma maneira bem fácil de entender melhor e detalhadamente os comandos. Este método são as páginas de manual (manpages). Cada comando tem sua página de manual e dentro desta há a descrição do comando, para que ele serve, quais são seus autores, quais são seus parâmetros, bugs conhecidos, arquivos e outros comandos relacionados, etc. Para acessar uma página de manual, você utiliza o seguinte comando:


$ man comando

Por exemplo, se você está com dúvida sobre o comando ls, simplesmente digite man ls e aparecerá um manual falando apenas deste comando, com seus parâmetros e tudo mais. Este recurso é muito bom porque o usuário consegue uma ajuda bem rápida e referencial.

3.1.7.2. Documentos disponíveis

Um recurso muito bom de ser utilizado são as várias documentações do Linux. Se você tiver instalado toda a documentação, você poderá encontrá-los no diretório /usr/share/doc. As distribuições antigamente colocavam esses documentos no /usr/doc. Dentre estes vários documentos, podemos citar os HOWTOs, que são documentos que ensinam a fazer alguma coisa em específico. Também há os FAQs que respondem a dúvidas freqüêntemente perguntadas pelos usuários e alguns históricos de listas de discussões.

Ler a documentação é indispensável para o aprendizado de novas coisas e na especialização de certos recursos que o Linux pode oferecer. A maioria dos documentos estão em inglês, mas também há vários traduzidos para a língua portuguesa através do projeto LDP-BR (Linux Documentation Project Brasil), localizado no endereço:

http://br.tldp.org

RTFM! Err.. o que é isso? Bem, Read The Fine Manual (Ou não? :)

3.1.7.3. Comandos de ajuda

Além do comando man podemos contar com uma série de outros comandos que ajudam no dia a dia. Temos o info, que é semelhante ao man, traz informações sobre um certo comando. O comando locate procura por arquivos que estão incluídos no banco de dados do updatedb (Se você executar o comando updatedb, ele vai varrer seu disco e vai colocar todos os nomes dos arquivos no banco de dados, para o locate consultar depois). Há também o whatis que procura no banco de dados algum comando relacionado a uma certa palavra (para criar o banco de dados de comandos, digite makewhatis). Estes comandos vão certamente ser companheiros nas horas de aperto.

3.1.7.4. Listas de discussão

Lista de discussão é um recurso muito usado no mundo todo. Aqui no Brasil temos várias listas de discussões relacionadas com o Linux. Podemos citar dentre elas a lista de discussão linux-br. A lista linux-br é a mais movimentada do Brasil e pode ser acessada no endereço:

http://linux-br.conectiva.com.br