Mini-curso de Linux

Sistemas Abertos -Este material pode ser acessado em: http://www.sistemasabertos.com.br/linux

Este material é copyleft, podendo ser copiado, reproduzido, alterado sem autorização do autor. Foi baseado no material mais completo denominado Guia FocaLinux (http://focalinux.cipsga.org.br) de Gleydson Mazioli da Silva. O objetivo deste material é mostrar tópicos essenciais de Linux, em uma aula de aproximadamente 4 horas. Quem desejar colaborar com este material original, enviando correções e sugestões, acesse o material focalinux e mande e-mail para o autor gleydson@cipsga.org.br ou para somente esta introdução para akira@sistemasabertos.com.br.

1) Inicialização e desligamento da máquina

1.1)Ligando o computador

Para ligar o computador pressione o botão POWER ou I/O localizado em seu painel frontal do micro.

Após o pressionamento do botão POWER no gabinete do micro, imediatamente entrará em funcionamento um programa residente na memória ROM (Read Only Memory - memória somente para leitura) da placa mãe que fará os testes iniciais para verificar se os principais dispositivos estão funcionando em seu computador (memória RAM, discos, processador, portas de impressora, memória cache, etc).

Quando o ROM termina os testes básicos, ele inicia a procura do setor de boot nos discos do computador que será carregado na memória RAM do computador. Após carregar o setor de boot, o sistema operacional será iniciado). O setor de boot contém a porção principal usada para iniciar o sistema operacional.

No Linux, o setor de boot normalmente é criado por um gerenciador de inicialização (um programa que permite escolher qual sistema operacional será iniciado). Deste modo podemos usar mais de um sistema operacional no mesmo computador (como o DOS e Linux). O gerenciador de inicialização mais usado em sistemasLinux na plataforma Intel X86 é o LILO.

Caso o ROM não encontre o sistema operacional em nenhum dos discos, ele pedirá que seja inserido um disquete contendo o Sistema Operacional para partida.

1.2) Desligando o computador

Para desligar o computador primeiro digite (como root): "shutdown -h now", "halt" ou "poweroff", o Linux finalizará os programas e gravará os dados em seu disco rígido, quando for mostrada a mensagem "power down", pressione o botão POWER em seu gabinete para desligar a alimentação de energia do computador.

NUNCAdesligue diretamente o computador sem usar o comando shutdown, halt ou poweroff, pois podem ocorrer perda de dados ou falhas no sistema de arquivos de seu disco rígido devido a programas abertos e dados ainda não gravados no disco.

Salve seus trabalhos para não correr o risco de perde-los durante o desligamento do computador.

1.3) Reiniciando o computador

Reiniciar quer dizer iniciar novamente o sistema. Não é recomendável desligar e ligar constantemente o computador pelo botão ON/OFF, por este motivo existe recursos para reiniciar o sistema sem desligar o computador. No Linux você pode usar o comando reboot, shutdown -r now e também pressionar simultâneamente as teclas <CTRL> <ALT> <DEL> para reiniciar de uma forma segura.

Observações:

Prefira o método de reinicialização explicado acima e use o botão reset somente em último caso.


2) Usuário e super-usuário


O Linux possui um usuário com plenos poderes no Sistema Operacional, podendo por exemplo:


Este usuário é considerado o "super-usuário" do sistema e por padrão é o usuário de login root. O seu número de identifcação (user id ou uid) é sempre 0 (zero). Para saber se você está utilizando uma conta de super-usuário, execute whoami (quem sou eu).

Mesmo os usuários mais experientes do Linux, costumam criar uma conta de usuário comum no sistema, para executar as tarefas do dia-a-dia, no sentido de evitar acidentes em seu sistema. Para criar uma conta de usuário comum, você deve executar como usuário root:

adduser seunome

passwd seunome

O primeiro comando cria uma conta de login "seunome" e o segundo comando define uma senha para esta conta.

3) Páginas de Manual

As páginas de manual acompanham quase todos os programas Linux. Elas trazem uma descrição básica do comando/programa e detalhes sobre o funcionamento de opção. Uma página de manual é visualizada na forma de texto único com rolagem vertical. Também documenta parâmetros usados em alguns arquivos de configuração.

A utilização da página de manual é simples, digite:

man [comando/arquivo]

onde:

comando/arquivo

Comando/arquivo que deseja pesquisar.

A navegação dentro das páginas de manual é feita usando-se as teclas:

Exemplo, man ls


4) Comandos básicos

pwd = exibe o diretório atual (no qual você se encontra)

cd - Muda diretório.

ls = Lista os arquivos, mesmo que dir do DOS.

  Parâmetros comuns : -a = mostra arquivos ocultos

                                   -l = mostra bytes, permissoes, diretorio, etc

Obs: no ls os nomes de arquivos nos sistemas *X (Unix, linux, etc) não precisam ter só 8 letras. Além disso, podem ser usados caracteres curingas, tais como :

*   substitui qualquer conjunto de caracteres

?   substitui caracteres isolados

Exemplo : se você quiser listar os arquivos que começam com a letra u, entre com o seguinte comando : ls u* .

more = exibe o conteúdo de um arquivo pagina a pagina, do mesmo modo que no DOS

Exemplo: ls | more

Cat = Mostra o conteúdo de um arquivo binário ou texto.

Exemplo: cat /etc/passwd

4.1) Comandos equivalentes entre DOS e LINUX

Esta seção contém os comandos equivalentes entre estes dois sistemas e a avaliação entre ambos. Grande parte dos comandos podem ser usados da mesma forma que no DOS, mas os comandos Linux possuem avanços para utilização neste ambiente multiusuário/multitarefa.

O objetivo desta seção é permitir as pessoas com experiência em DOS fazer rapidamente no Linux as tarefas que fazem no DOS. A primeira coluna tem o nome do comando no DOS, a segunda o comando que possui a mesma função no Linux e na terceira coluna as diferenças.

      DOS       Linux                        Diferenças
     --------  ------------ --------------------------------------------------
     cls       clear        Sem diferenças
    
     dir       ls -la       A listagem no Linux possui mais campos (as 
                            permissões de acesso) e o total de espaço ocupado 
                            no diretório e livre no disco deve ser visto 
                            separadamente usando o comando du e df.
                            Permite também listar o conteúdo de diversos 
                            diretórios com um só comando (ls /bin /sbin /...)
     dir/s     ls -lR       Sem diferenças.
     
     cd        cd           Poucas diferenças. cd sem parâmetros retorna ao 
                            diretório de usuário e também permite o uso 
                            de "cd -" para retornar ao diretório anteriormente 
                            acessado.
     
     del       rm           Poucas diferenças. O rm do Linux permite 
                            especificar diversos arquivos que serão apagados 
                            (rm arquivo1 arquivo2 arquivo3). Para ser mostrados 
                            os arquivos apagados, deve-se especificar o 
                            parâmetro "-v" ao comando, e "-i" para pedir 
                            a confirmação ao apagar arquivos. 
     
     md        mkdir        Uma só diferença: No Linux permite que vários 
                            diretórios sejam criados de uma só vez 
                            (mkdir /tmp/a /tmp/b...) 
     
     copy      cp           Poucas diferenças. Para ser mostrados os arquivos 
                            enquanto estão sendo copiados, deve-se usar a 
                            opção "-v", e para que ele pergunte se deseja 
                            substituir um arquivo já existente, deve-se usar 
                            a opção "-i".
   
     echo      echo         Sem diferenças
    
     path      path         No Linux deve ser usado ":" para separar os 
                            diretórios e usar o comando 
                            "export PATH=caminho1:/caminho2:/caminho3:"
                            para definir a variável de ambiente PATH.
                            O path atual pode ser visualizado através 
                            do comando "echo $PATH"
    
     ren       mv           Poucas diferenças. No Linux não é possível 
                            renomear vários arquivos de uma só vez 
                            (como "ren *.txt *.bak"). É necessário usar 
                            um shell script para fazer isto. 
    
     doskey    -----        A edição de teclas é feita automáticamente pelo 
                            bash.
     
     edit      vi, ae,      O edit é mais fácil de usar, mas usuário
               emacs        experientes apreciarão os recursos do vi ou 
                            o emacs (programado em lisp).
     
     help      man, info    Sem diferenças
     
     more      more, less   O more é equivalente a ambos os sistemas, mas 
                            o less permite que sejam usadas as setas para 
                            cima e para baixo, o que torna a leitura do 
                            texto muito mais agradável. 
     
     move      mv           Poucas diferenças. Para ser mostrados os arquivos 
                            enquanto estão sendo movidos, deve-se usar a 
                            opção "-v", e para que ele pergunte se deseja 
                            substituir um arquivo já existente deve-se usar 
                            a opção "-i". 
     
     xcopy     cp -R        Pouca diferença, requer que seja usado a 
                            opção "-v" para mostrar os arquivos que 
                            estão sendo copiados e "-i" para pedir 
                            confirmação de substituição de arquivos.

5) Gerenciamento de diretórios

cp

 Copia arquivos

cp [opções] [origem] [destino]

onde:

origem

Arquivo que será copiado. Podem ser especificados mais de um arquivo para ser copiado usando "Curingas"

destino

O caminho ou nome de arquivo onde será copiado. Se o destino for um diretório, os arquivos de origem serão copiados para dentro do diretório.

opções

i, --interactive

Pergunta antes de substituir um arquivo existente.

-f, --force

Não pergunta, substitui todos os arquivos caso já exista.

-r

Copia arquivos dos diretórios e subdiretórios da origem para o destino. É recomendável usar -R ao invés de -r.

-R, --recursive

Copia arquivos e sub-diretórios (como a opção -r) e também os arquivos especiais FIFO e dispositivos.

-v, --verbose

Mostra os arquivos enquanto estão sendo copiados.

O comando cpcopia arquivos da ORIGEM para o DESTINO. Ambos origem e destino terão o mesmo conteúdo após a cópia.

Exemplos:

cp teste.txt teste1.txt

Copia o arquivo teste.txt parateste1.txt.

cp teste.txt /tmp

Copia o arquivo teste.txt para dentro do diretório /tmp.

cp * /tmp

Copia todos os arquivos do diretório atual para /tmp.

cp /bin/* .

Copia todos os arquivos do diretório /binpara o diretório em que nos encontramos no momento.

cp -R /bin /tmp

Copia o diretório /bine todos os arquivos/sub-diretórios existentes para o diretório /tmp.

cp -R /bin/* /tmp

Copia todos os arquivos do diretório /bin(exceto o diretório /bin) e todos os arquivos/sub-diretórios existentes dentro dele para /tmp.

cp -R /bin /tmp

Copia todos os arquivos e o diretório /binpara /tmp.

mv

 Move ou renomeia arquivos e diretórios. O processo é semelhante ao do comando cp mas o arquivo de origem é apagado após o término da cópia.

mv [opções] [origem] [destino]

Onde:

origem

Arquivo/diretório de origem.

destino

Local onde será movido ou novo nome do arquivo/diretório.

opções

-f, --force

Substitui o arquivo de destino sem perguntar.

-i, --interactive

Pergunta antes de substituir. É o padrão.

-v, --verbose

Mostra os arquivos que estão sendo movidos

O comando mvcopia um arquivo da ORIGEM para o DESTINO (semelhante ao cp), mas após a cópia, o arquivo de ORIGEM é apagado.

Exemplos:

mv teste.txt teste1.txt

Muda o nome do arquivo teste.txt parateste1.txt.

mv teste.txt /tmp

Move o arquivo teste.txt para /tmp. Lembre-se que o arquivo de origem é apagado após ser movido.

mv teste.txt teste.new (supondo que teste.new já exista

Copia o arquivo teste.txt por cima de teste.new e apaga teste.txt após terminar a cópia.

mkdir

Cria um diretório no sistema. Um diretório é usado para armazenar arquivos de um determinado tipo. O diretório pode ser entendido como uma pasta onde você guarda seus papeis (arquivos). Como uma pessoa organizada, você utilizará uma pasta para guardar cada tipo de documento, da mesma forma você pode criar um diretório vendas para guardar seus arquivos relacionados com vendas naquele local.

mkdir [opções] [caminho/diretório] [caminho1/diretório1]

onde:

caminho

Caminho onde o diretório será criado.

diretório

Nome do diretório que será criado.

opções:

--verbose

Mostra uma mensagem para cada diretório criado. As mensagens de erro serão mostradas mesmo que esta opção não seja usada.

Para criar um novo diretório, você deve ter permissão de gravação. Por exemplo, para criar um diretório em /tmp com o nome de teste que será usado para gravar arquivos de teste, você deve usar o comando "mkdir /tmp/teste".

Podem ser criados mais de um diretório com um único comando (mkdir /tmp/teste /tmp/teste1 /tmp/teste2).

rmdir

Remove um diretório do sistema. Este comando faz exatamente o contrário do mkdir. O diretório a ser removido deve estar vazio e você deve ter permissão de gravação para remove-lo.

rmdir [caminho/diretório] [caminho1/diretório1]

onde:

caminho

Caminho do diretório que será removido

diretório

Nome do diretório que será removido

É necessário que esteja um nível acima do diretório(s) que será(ão) removido(s

Por exemplo, para remover o diretório /tmp/teste você deve estar no diretório tmpe executar o comando rmdir teste.

rm

Apaga arquivos. Também pode ser usado para apagar diretórios e sub-diretórios vazios ou que contenham arquivos.

rm [opções][caminho][arquivo/diretório] [caminho1][arquivo1/diretório1]

onde:

caminho

Localização do arquivo que deseja apagar. Se omitido, assume que o arquivo esteja no diretório atual.

arquivo/diretório

Arquivo que será apagado.

opções

-i, --interactive

Pergunta antes de remover, esta é ativada por padrão.

-v, --verbose

Mostra os arquivos na medida que são removidos

-r, --recursive

Usado para remover arquivos em sub-diretórios. Esta opção também pode ser usada para remover sub-diretórios.

-f, --force

Remove os arquivos sem perguntar.

Use com atenção o comando rm, uma vez que os arquivos e diretórios forem apagados, eles não poderão ser mais recuperados.

Exemplos:

6) Mcedit

Este editor de textos também possui uma linha de status no topo da tela, mas, além disso, tem uma linha com as teclas de atalho de seus comandos principais no rodapé da tela. Grande parte de suas funções são acessadas via menu, que aparece ao se pressionar a tecla F9. Observe no topo da tela a linha de status: ela muda para um menu que abre as opções do editor, pelas quais você pode navegar facilmente com as setas de direção.

A grande atração deste editor é que as teclas de atalho principais estão associadas às teclas Fn, onde n varia de 1 até 12. Para iniciar o editor digite na linha de comando: mcedit. Agora você está na tela inicial do mcedit; para abrir o arquivo de exemplos digite F9 e selecione o menu Arquivo->Abrir/Carregar e em seguida informe o nome do arquivo que iremos abrir: teste.txt. Pronto, o arquivo teste.txt estará aparecendo na sua tela. Movimente-se por sobre ele, experimente as teclas que estão na tabela abaixo e avalie-o para seu uso.

Tabela : Teclas de atalho do Mcedit

Teclas

Finalidade

F10

Sair do Mcedit.

F9 Arquivo->Abrir/Carregar

Abrir arquivo nome_do_arquivo.

F2

Salvar o Arquivo Corrente.

F12

Salvar como ... (pergunta o nome do arquivo novo).

F8

Apaga a linha corrente.

F3

Marca o ponto inicial do bloco a ser movimentado e, repetindo-se a tecla, marca o final do bloco.

F5

Copia o bloco marcado com F3 para a posição do cursor.

F6

Move o bloco marcado com F3 para a posição do cursor.

Ctrl-u

Desfaz a última ação efetuada.

 

7) Estrutura básica de diretórios do Sistema Linux

O sistema Linux possui a seguinte estrutura básica de diretórios:

/bin

Contém arquivos programas do sistema que são usados com frequencia pelos usuários.

/boot

Contém arquivos necessários para a inicialização do sistema.

/cdrom

Ponto de montagem da unidade de CD-ROM.

/dev

Contém arquivos usados para acessar dispositivos (periféricos) existentes no computador.

/etc

Arquivos de configuração de seu computador local.

/floppy

Ponto de montagem de unidade de disquetes

/home

Diretórios contendo os arquivos dos usuários.

/lib

Bibliotecas compartilhadas pelos programas do sistema e módulos do kernel.

/lost+found

Local para a gravação de arquivos/diretórios recuperados pelo utilitário fsck.ext2. Cada partição possui seu próprio diretório lost+found.

/mnt

Ponto de montagem temporário.

/proc

Sistema de arquivos do kernel. Este diretório não existe em seu disco rígido, ele é colocado lá pelo kernel e usado por diversos programas que fazem sua leitura, verificam configurações do sistema ou modificar o funcionamento de dispositivos do sistema através da alteração em seus arquivos.

/root

Diretório do usuário root.

/sbin

Diretório de programas usados pelo superusuário (root) para administração e controle do funcionamento do sistema.

/tmp

Diretório para armazenamento de arquivos temporários criados por programas.

/usr

Contém maior parte de seus programas. Normalmente acessível somente como leitura.

/var

Contém maior parte dos arquivos que são gravados com frequencia pelos programas do sistema, e-mails, spool de impressora, cache, etc.

8) Utilizando o conjunto de ferramentas mtools

No Unix existe um conjunto de ferramentas que permitem ao usuário manipular arquivos em discos flexíveis no formato MS-DOS. Dentre as mais utilizadas, podem ser encontradas as seguintes:

mcd [diretorio] - Muda o diretório corrente da unidade especificada.

mcopy fonte [destino] - Copia arquivo especificado em [fonte] para a localização de [destino]. Caso o destino não seja especificado, o diretório corrente é assumido. Exemplo: mcopy exemplo1.txt a:

mdel arquivo - Remove o arquivo especificado do disco.

mdir [drive] [arquivos] - Exibe o conteúdo do diretório corrente do drive especificado ou lista os arquivos citados como argumentos.

 

mformat drive - Formata o drive especificado no padrão MS-DOS.

mmkdir diretorio - Cria um diretório no sistema de arquivo MS-DOS.

Em todos os comandos, quando o nome drive não é especificado (como em a: ou b: ), é assumido que as transações serão efetuadas no drive a: .

9) X Window ( Ambiente Gráfico )

9.1) O que é X Window?

É um sistema gráfico de janelas que roda em uma grande faixa de computadores, máquinas gráficas e diferentes tipos de máquinas e plataformas Unix. Pode tanto ser executado em máquinas locais como remotas através de conexão em rede.

9.2) A organização do ambiente gráfico X Window

Em geral o ambiente gráfico X Window é dividido da seguinte forma:

·         O Servidor X - É o programa que controla a exibição dos gráficos na tela, mouse e teclado. Ele se comunica com os programas cliente através de diversos métodos de comunicação.

O servidor X pode ser executado na mesma máquina que o programa cliente esta sendo executado de forma transparente ou através de uma máquina remota na rede.

Existem vários tipos de gerenciadores de janelas disponíveis no mercado entre os mais conhecidos posso citar o Window Maker (feito por um Brasileiro), o After Step, Gnome, KDE, twm (este vem por padrão quando o servidor X é instalado), Enlightenment, IceWm, etc.

A escolha do seu gerenciador de janelas é pessoal, depende muito do gosto de cada pessoa e dos recursos que deseja utilizar.

Esta organização do ambiente gráfico X traz grandes vantagens de gerenciamento e recursos no ambiente gráfico UNIX, uma vez que tem estes recursos você pode executar seus programas em computadores remotos, mudar totalmente a aparência de um programa sem ter que fecha-lo (através da mudança do gerenciador de janelas), etc.

9.3) Iniciando o X

O sistema gráfico X pode ser iniciado de duas maneiras:

style="font-size: 10pt; font-family: Symbol;">·         Automática- Usando o programa xdm que é um programa que roda no ambiente gráfico X e apresenta uma tela pedindo nome e senha para entar no sistema (login). Após entrar no sistema, o X executará um dos gerenciadores de janelas configurados.