Linux - Breve introdução, bom para iniciantes

Para o pessoal que está procurando um breve manual inicial sobre Linux. Esse manual é voltado para os iniciantes que pretendem escolher sua distribuição e iniciar no mundo Linux.

[ Hits: 54.930 ]

Por: Geraldo Gustavo Araújo Resende em 30/10/2007 | Blog: http://www.geraldoresende.net23.net


Sistema de arquivos



Como todo sistema operacional, o Linux deve possuir uma maneira de armazenar e recuperar os arquivos criados pelos usuários e pelo próprio sistema. Chamamos isso de sistema de arquivos.

No Linux, ele funciona seguindo um conceito bem diferente do que normalmente estamos acostumados com ambientes Windows e similares. No Windows, todos os arquivos do disco são indexados por uma tabela, chamada FAT (File Allocation Table) - NTFS nas versões mais novas - e cada unidade de disco é representado por uma letra. O Linux difere desse padrão utilizando uma estrutura semelhante a uma árvore invertida. Na verdade isso é bem simples. Nessa estrutura todos os arquivos e unidades de disco ficam acessíveis a partir da "raiz" da árvore, ou diretório raiz, representado por /. Essa estrutura é a mesma utilizada pelos sistemas Unix em geral.

As vantagens desse sistema são:
  • Não há necessidade de atribuir unidades aos discos; a única limitação da quantidade de discos/partições na máquina é o próprio hardware;
  • A fragmentação é menor, já que o espaço para os arquivos é alocado de forma mais otimizada.

Uma estrutura típica de diretórios no Linux é apresentada a seguir:

/bin

Arquivos executáveis (binários) de comandos essenciais pertencentes ao sistema e que são utilizados com freqüência.

/sbin

Arquivos de sistema essenciais.

/boot

Arquivos estáticos de boot ou inicialização.

/dev

Arquivos de dispositivos de entrada/saída.

/etc

Configuração do sistema da máquina local com arquivos diversos para a administração de sistema.

/lib

Arquivos de bibliotecas compartilhadas usadas com freqüência.

/mnt

Ponto de montagem de partição temporária.

/tmp

Arquivos temporários gerados por alguns utilitários.

/var

Ficam os arquivos de informação variável.

/home

Diretórios dos usuários.

/root

Diretório local do super-usuário (root)

/usr

Todos os arquivos de usuários devem estar aqui (Ex: quando você instala um programa o executável geralmente fica em: /usr/local/bin).

Mais comandos:

mkdir - Criar diretório.

Exemplo:

$ mkdir imagens

rmdir - Apaga um diretório sem conteúdo.

Exemplo:

$ rm imagens

df - Mostra o espaço livre em um ou mais discos montados ou partições. Se não for passado nenhum parâmetro, todos os sistemas de arquivo montados serão apresentados.

Atributos disponíveis:
  • -t <fstype> = Informações apenas sobre sistemas de arquivo do tipo especificado;
  • -x <fstype> = Informações sobre todos os sistemas de arquivo, menos os do tipo especificado.

Exemplo:

$ df
$ df -t vfat


du - Apresenta um relatório de utilização de espaço em disco para cada arquivo ou diretório especificado, assim como todos os subdiretórios dos diretórios especificados.

Atributos disponíveis:
  • -a, --all = Mostra o espaço ocupado por todos os arquivos;
  • -b, --bytes = Mostra o espaço ocupado em bytes;
  • -h, --human = Mostra o espaço ocupado em formato legível por humanos (Kb, Mb) ao invés de usar blocos;
  • -k = Mostra o espaço ocupado em Kbytes;
  • -m = Mostra o espaço ocupado em Mbytes.

Exemplos:

$ du -h
$ du -k


Outra característica muito importante do sistema de arquivos do Linux (e dos sistemas Unix como um todo) são as permissões. Como já foi dito, cada conta tem permissão apenas de alterar os seus próprios documentos. Isso é conseguido através da combinação das contas, que já foram comentadas acima, com o conceito de grupos. Grupos são exatamente o que o nome sugere, ou seja, grupos de usuários. Num ambiente Linux padrão já existem grupos pré-definidos, tais como adm, daemon, sys, mas ainda podem existir outros grupos criados pelo administrador do sistema (exemplo: na PUC poderíamos ter alunos, professores, funcionários). As permissões são três:
  • Permissão de leitura (read), significando que você pode examinar o conteúdo do arquivo;
  • Permissão de escrita (write), significando que você pode alterar ou apagar o arquivo;
  • Permissão de execução (execute), significando que você pode executar o arquivo como um programa.

No caso de diretórios, as permissões têm um significado diferente:
  • Permissão de leitura (read), significa que você pode listar o conteúdo do diretório;
  • Permissão de escrita (write), significa que você pode adicionar ou remover arquivos naquele diretório;
  • Permissão de execução (execute), significa que você pode listar a informação sobre os arquivos naquele diretório.

OBS: Não se preocupe com a diferença entre permissão de leitura e execução para diretórios; basicamente elas funcionam juntas. Ou o diretório tem as duas ou nenhuma.

Agora, combinando as permissões que acabamos de mostrar com o conceito de usuários e grupos, temos as ferramentas necessárias para o controle de acesso aos arquivos implementado no Linux. É bastante simples de se ver:

$ ls -l
-rwxr-xr-x  2 user group 1024 Jan 01 00:00 file

Aqui podemos exemplificar o sistema de permissões. A primeira coluna mostra um conjunto de 10 caracteres. Esse conjunto de caracteres indica as permissões e o tipo do arquivo (arquivo regular, diretório, arquivo especial, etc). A terceira coluna mostra quem é o proprietário do arquivo. A quarta coluna mostra a que grupo pertence o arquivo. As demais colunas contêm as outras informações como tamanho, data, nome do arquivo.

Como interpretar os caracteres da primeira coluna? Bem, como já foi explicado, o sistema de permissões do Linux se baseia em três direitos apenas: leitura (read, indicado pela letra r), escrita (write, indicado pela letra w) e execução (execute, indicado pela letra x). Lendo da esquerda para direita, o primeiro caractere indica o tipo do arquivo. No caso, o traço (-) indica que é um arquivo regular. Se fosse um diretório, por exemplo, no lugar do traço haveria a letra d. Os próximos três caracteres exibem as permissões para o proprietário do arquivo (indicado na terceira coluna, no caso user). Ele tem permissões de leitura(r), escrita(w) e execução(x). O conjunto de três caracteres seguintes exibe as permissões para o grupo ao qual o arquivo pertence (indicado na quarta coluna, no caso group). Aqui o grupo tem permissões de leitura(r) e execução(x).

O conjunto restante de três caracteres exibe as permissões para todos os demais usuários ou grupos que não são os mesmos do proprietário e do grupo ao qual o arquivo pertence. (normalmente nos referenciamos a este conjunto como others). Ou seja, qualquer outro usuário que não seja user ou não faça parte de group tem permissão de leitura(r) e execução(x) no arquivo.

Alguns comandos para manipular permissões:

chown - Muda dono de um arquivo/diretório. Opcionalmente pode também ser usado para mudar o grupo. Você deve ter permissões de gravação no diretório/arquivo para alterar seu dono/grupo.

Parâmetros disponíveis:
  • -v, --verbose = Mostra os arquivos enquanto são alterados;
  • -R, --recursive = Altera dono e grupo de arquivos no diretório atual e sub-diretórios.

Exemplos:

$ chown joao teste.txt
$ chown joao.users teste.txt


chmod - Altera as permissões de acesso ao arquivo. Pode-se utilizar a letra corresponde à permissão que se deseja alterar ("r" para leitura, "w" para escrita) ou então utilizar uma numeração corresponde ao conjunto de permissões. Este comando será melhor discutido em aula.

Exemplos:

Acrescentar permissão de leitura ao arquivo "teste.txt":

$ chmod +r teste.txt

Acrescentar permissões de escrita e execução ao arquivo "prog.exe":

$ chmod +wx prog.exe

Acrescentar permissões de leitura, escrita e execução ao arquivo "prog.exe":

$ chmod 777 prog.exe

Em Linux temos ainda o seguinte conceito: "Tudo pode ser tratado como se fosse um arquivo". Assim como os arquivos, a maior parte dos periféricos presentes numa estação Linux permite operações de leitura e/ou escrita. Por exemplo: uma impressora. Quando os dados são enviados para a impressora é como se o usuário estivesse escrevendo nela.

No Linux funciona de maneira semelhante, apenas existe uma diferença, o conteúdo que é enviado "diretamente para a impressora" é escrito num "arquivo especial", que faz a ponte entre o computador e a impressora. Esse sistema não existe somente para a impressora, mas para todos os dispositivos que o Linux controla, incluindo unidades de disquetes, de disco e leitores de CD-ROM.

Dito isso, agora introduzimos um conceito muito importante: montar um dispositivo. Montar um dispositivo nada mais é do que torná-lo disponível ao sistema. Já foi dito que o Linux pode tratar os dispositivos como arquivos, porém faz uso de arquivos especiais. Quando montamos um dispositivo, seja ele um disquete, CD-ROM ou outro periférico, é estabelecida uma "ligação" do dispositivo com o periférico especificado. Por exemplo: quando montamos um CD-ROM, o kernel faz a comunicação com o leitor de CD e verifica se existe alguma mídia no drive e tenta reconhecer o formato da mídia que está lá.

Caso ele reconheça o formato, será feita uma "ligação" do periférico leitor de CD-ROM com o dispositivo cdrom, disponibilizando o conteúdo da mídia no diretório especificado pelo comando de montagem. O mesmo acontece para outros dispositivos como unidade de disquete ou fita.

Outro detalhe muito importante quando montamos um dispositivo no Linux é que o kernel considera o dispositivo como se estivesse sendo utilizado, até que ele seja desmontando. Isso significa que, por exemplo, ao montar um CD, ele não irá mais responder ao botão de eject, até que seja desmontado, mesmo que ele não esteja em uso (isso porque a unidade de leitura de CD é controlada logicamente).

Esse tipo de proteção existe para evitar a perda de informações, pois como foi dito, o kernel considera o dispositivo em uso e normalmente algumas operações de escrita são deixadas para momentos nos quais o sistema operacional está "ocioso", pois o acesso ao disquete ou unidade de disco demora muito do ponto de vista do processador.

OBS.:O drive de disquete, por ter um meio mecânico que ejeta o disquete, não pode ser controlado com tanta segurança, mas é muito importante que não retiremos o disquete do drive enquanto ele estiver montado, pois dados importantes poderão ser perdidos.

Comandos:
  • mount - Utilizado para "montar" um dispositivo.
  • umount - Utilizado para "desmontar" um dispositivo.

Montando um disquete exemplo:

$ mount /dev/fd0 /mnt/floppy

Desmontando um disquete exemplo:

$ umount /dev/fd0

Montando um cdrom exemplo:

$ mount /dev/cdrom /mnt/cdrom

Desmontando um cdrom exemplo:

$ umount /dev/cdrom

Ou seja:

mount <nome_do_dispositivo> <ponto_de_montagem>
umount <nome_do_dispositivo_montado> ou
umount <nome_do_ponto_onde_está_montado>

No Linux há algumas facilidades como o pacote mtools contendo comandos para procedimentos com disquetes.

Exemplo de comandos mtools:
  • mdir - lista os arquivos do disquete;
  • mdel - apaga arquivos do disquete;
  • mcopy - copia os arquivos do disquete ou para o disquete.

$ mcopy a:arquivo.txt /home/
ou
$ mcopy arquivo.txt a:

mcopy a:<nome_do_arquivo> <local_a_ser_copiado>

mformat - formata o disquete

$ mformat a:

Página anterior     Próxima página

Páginas do artigo
   1. Histórico
   2. Instalação do sistema Linux Conetiva 8.0
   3. Processo de login
   4. Shell
   5. Sistema de arquivos
   6. Processos
   7. Rede
   8. Utilitários para arquivamento e compressão
   9. Alguns utilitários gráficos
Outros artigos deste autor

Erro no alsamixer após atualização no Ubuntu 7.04

Leitura recomendada

Escritório 100% GNU/Linux: viável e econômico

Siduction - Nova distro baseada no Debian SID

Nova geração Linux

Gerenciando arquivos com o Shell

ArchBang, o Arch Linux fácil!

  
Comentários
[1] Comentário enviado por InFog em 30/10/2007 - 13:07h

Quando esse artigo foi escrito? Acho que está mais para cópia de um antigo artigo do que para algo atual... Mandrake? Conectiva?

InFog

[2] Comentário enviado por danillofa em 30/10/2007 - 13:31h

ja vi isso em algum livro o.0

fica no ar

[3] Comentário enviado por geraldoresende em 30/10/2007 - 13:35h

E ai galera... blz.... esse artigo eh parte de um trabalho na universidade, eh uma breve apostila para alunos do primeiro de um minicurso que eu no 7 período ministrei... eh um resumo feito por mim mediante varios artigos e livros, e no curso foi usado Conectiva, pois foi o sistema que melhor atendia a situaçao.

Espero que gostem.

Atenciosamente Geraldo Resende

[4] Comentário enviado por maran em 31/10/2007 - 00:01h

Bom tudo bem que foi escrito em um trabalho e tal
mais vc fal oque era bom pra iniciantes e bom pra iniciantes mandrake e td mais????

tem que atualizar né...
Mais ta legal ^^

[5] Comentário enviado por vencedorgo em 31/10/2007 - 09:33h

Muito bom !!!
Principalmente para os iniciantes fundamentar sua ideia da maneira correta sobre o linux.

[6] Comentário enviado por slackrichard em 31/10/2007 - 10:01h

precisa ser atualizado a maioria das afirmações ai já não são validas, e sem falar que voce esqueceu de atualizar as distros. Ta faldano o kurumin, o ubunto. a conectiva não existemais nem a mandrake agora é mandriva. Outra coisa a conectiva deixou de ser baseada no redhat a partir da versão 7, onde toda a sua base foi reformulada.
sem falar no sistema de pacotes do slackware, hoje ja existe uma serie de ferramentas para isto tão boas quanto o apt,rpm e afins.

Então da so uma renovada ai e siga sempre assim.

[7] Comentário enviado por cguerra em 31/10/2007 - 16:00h

o cara só deu mancada quando disse que o Slack está sem gerenciador de pacotes...


além de falar da antiga mandrake e conectiva, que se uniram a algum tempo já!


e a distro que ele instalou é um pouco antiginha, Conectiva 8 surgiu em 2001 ou 2002...

além de existir distros mais fáceis para iniciantes, tipo Ubuntu e derivador, Kubuntu, Edubuntu...e o Kurumin!

[8] Comentário enviado por dbahiaz em 31/10/2007 - 16:54h

Geraldo,
Seria um otimo artigo, se não fosse por algumas informações desatualizadas, como ja foi dito, acho que isso pode confundir um pouco os usuarios novos, mais tem muita informação valida, parabéns, só de curiosidade qual distrito vc ta usando atualmente?

[9] Comentário enviado por albfneto em 10/07/2008 - 11:11h

O artigo é de 2007, mas é curioso, pq slackware, debian estão diferentes, agoram muito mais amigáveis...
e Mandrake, acho, não existe mais, é o Mandriva, agora!
Hoje existem vários Linux brasileiros, muitos!
a distro pux ainda existe?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts