Jump to Navigation

IntroSoftwareLivre

'''
Introdução ao Linux'''

Começando pelo começo, Unix é o nome de um sistema operacional de grande porte, com ambições muito grandes mesmo para o ano de 1969, quando foi criado.Foi inspirado no Multics da década de 60 e construído pelo consórcio entre o Massachusets Institute of Technology (conhecido como MIT), pela General Eletric (GE) e pelos laboratórios Bell (Bell Labs) e American Telephone and Telegraph (AT&T).
A intenção do Multics era ser multi-tarefa e multi usuário, ou seja que pude-se rodar programas de vários usuários diferentes simultaneamente no mesmo computador. Por isso ele era o sistema operacional mais arrojado de sua época.
A Bell Labs retirou sua participação no desenvolvimento do sistema mas Ken Thompsom não desistiu de pesquisar o sistema, e passou a perseguir o objetivo de criar algo melhor mas com os mesmos recursos do multics, o UNIX.
Em 1973 outro pesquisador da Bell Labs, Dennis Ritchie , reescreveu todo o sistema UNIX em uma linguagem de programação que ele mesmo criara, o C.
O sistema cresceu, e muitas multi-nacionais passaram a rodar UNIX em seus super-computadores e ma in-frames10.1, se tornando assim o sistema mais confiável de sua época, e ainda hoje é muito utilizado por muitas outras empresas de grande porte mesmo sendo muito, muito caro.
Anos depois, um professor de ciências da computação, Andrew S. Tanenbaum, desenvolveu um sistema Unix com o código aberto, seu nome é Minix, o sistema foi escrito para facilitar suas aulas sobre sistemas operacionais. Ainda hoje é usado por estudantes de computação de todo mundo, inclusive aqui no Brasil

Figura 10.1: Linus Torvalds
\includegraphics[scale=.5]{figs/linus.eps}

Num escuro inicio de inverno de um dos países mais nórdicos do mundo, mais precisamente no mês de agosto em 1991, um pacato jovem finlandês, iniciou o projeto Linux. Seu nome:Linus Torvalds, então estudante de ciências da computação da Universidade de Helsink, capital da Finlândia.
O Linux é um sistema operacional livre, uma re-implementação das especificações POSIX10.2 para sistemas com extensões System V e BSD. Isso significa que o Linux, é bem parecido com Unix, mas não vem do mesmo lugar e foi escrito de outra forma.
Torvalds se limitou a criar, em suas próprias palavras, "um Minix melhor que o Minix" ("a better Minix than Minix").
Até que numa calma manhã do dia 05 de Outubro de 1991, Linus anunciou a primeira versão "oficial" do Linux, versão 0.02 .
Depois de finalizar o kernel, Linus deu ao seu filhote o rumo que desencadeou seu grande sucesso: passou a distribuir o código-fonte do kernel pela internet para que outros programadores e principalmente hackers,pudessem aprimorar o sistema.
O anúncio oficial foi com essas palavras:
``Você suspira por melhores dias do Minix 1.1, quando homens serão homens e escreverão seus próprios "device drivers" ? Você está sem um um bom projeto e está ansioso em colocar as mãos em um S.O. no qual você possa modificar de acordo com suas necessidades? Você está achando frustrante quando tudo trabalha em Minix ? Chega de atravessar noites para obter programas que trabalhem correto ? Então esta mensagem pode ser exatamente para você ? Como eu mencionei a um mês atrás, estou trabalhando em uma versão independente de um S.O. similar ao Minix para computadores AT-386. Ele está, finalmente, próximo ao estágio em que poderá ser utilizado(embora possa não ser o que você esteja esperando), e eu estou disposto a colocar os fontes para ampla distribuição. Ele está na versão 0.02..., contudo, eu tive sucesso rodando bash, gcc, gnu-make, gnu-sed, compressão, etc. nele.''
Figura 10.2: Tux, mascote do Linux
\includegraphics[scale=.4]{figs/tux.eps}


'''Software Livre'''

Tudo começou na década de 80, no MIT, o departamento de computação adquiriu da Xerox uma imensa impressora, cheia de recursos, uma das melhores de sua época, mas o servidor que controlaria sua impressão não tinha um driver compatível com a impressora, então os técnicos contataram a Xerox sobre o problema e a empresa se recusou a dar suporte. Revoltados com a situação alunos e professores concentraram seus esforços para escrever um driver compatível, sem sucesso pediram o código fonte do driver para a Xerox ... e mais uma vez foram ignorados. Então os garotos conseguiram da própria Xerox um driver para outro tipo de servidor e conseguiram, por engenharia reversa, desenvolver um driver compatível... e anunciaram então a criação da Free Software Fundation.
Figura 10.3: Mascote do projeto GNU \includegraphics[scale=.4]{figs/gnu.eps}
Figura 10.4: Richard Stallman, trabalhando \includegraphics[width=\linewidth]{figs/rms.eps}
Uma instituição que promovia a abertura de código de programas fechados, e o desenvolvimento de software livre... Esse movimento, encabeçado por Richard Stallman, tomou grandes proporções dentro e fora do campus, e passou a perseguir o objetivo de desenvolver uma implementação livre do UNIX, essa iniciativa se chama GNU10.3, uma licença de uso foi criada para os softwares e bibliotecas componentes desse projeto, são elas a GPL10.4 e LGPL10.5.


'''Distribuições linux'''

Um kernel por si só não faz absolutamente nada, afinal ele apenas gerencia o que os outros fazem. Para poder usar o computador é necessário programas, muitos programas. No caso do linux os programas básicos também estão sob a GPL e são livres e são livres e gratuitos.
Uma distribuição linux é uma coleção de softwares básicos que compõe o sistema, e cada usuário pode fazer a sua e distribuir desde que respeite as licenças originais do software. Assim muitos grupos de usuários criaram a sua própria distribuição linux, com vários focos diferentes, algumas pra jogos, outras para escritório, algumas para cientistas e por ai vai.
Atualmente existem mais de 500 distribuições linux, cada uma com foco diferente, as principais são: http://fedora.redhat.com
'''
Escolhendo uma distribuição Linux'''

Essa que é a parte mais legal, não existe uma melhor ou pior (pior existe!), existe aquela que se encaixa melhor no seu perfil e em sua aplicação. Resumindo, não vou citar nenhuma como sendo obrigatório.
Então, escolha uma e crie seu CD. Não vou falar de como instalar via disquete, isso fica por sua conta pesquisar!
Na prática as próximas linhas mostra o que rola por trás de alguns instaladores ou simplesmente o que precisa ser feito para instalar um linux !
'''

Primeiro BOOT'''

Insira o CD da distro e deixe carregar (dar BOOT), se não carregar, verifique a BIOS se está devidamente configurada para fazer o BOOT pelo CD-ROM e depois verifique seu CD.
'''
Particionamento'''

Nesta parte é que muitos se perdem, então, vamos tentar entender 'a coisa':
Como chamar meu disco-rígido (HD)?
Conhecendo o seu hardware, as placas mães, possuem normalmente, 2 dispositivos IDE, o Primário e o Secundário, onde cara dispositivo possui capacidade para 2 discos, sendo eles chamados de Master e Slave.

Então, temos a seguinte tabelinha de identificação de dispositivo:

Primário Master     hda
Primário Slave     hdb
Secundário Master     hdc
Secundário Slave     hdd



Obs.: os dispositivos SCSI10.17 possuem outra nomenclatura, sendo 'sd' no lugar de 'hd'.


Como criar as partições ?
Sabendo onde está seu disco-rígido e como chamar ele, iniciemos o particionamento.

Para acessar a tabela de particionamento do Primário-Master, use o seguinte comando:

 1. fdisk /dev/hda

Obs.: mede o comando conforme a posição do seu disco-rígido.

Agora, quais partições criar, vai muito de escolha e finalidade, então faremos o básico para não deixar ninguém perdido!

Vamos criar 2 partições, sendo elas:

$1)$SWAP, destinado a auxílio da memória RAM, neste caso, seu tamanho costuma ser recomendado como o dobro (2x) a quantidade de memória RAM do computador. Em casos de falta de espaço, coloque no mínimo o mesmo valor da RAM, nunca menos. Já, quando você tiver de 512MB ou mais, você pode definir apenas a mesma quantidade.

$2)$ Barra (/), partição raiz, destinada a armazenar todos os arquivos do sistema, logs e arquivos dos usuários.

Como os dispositivos, as partições também tem uma identificação, baseada em números, cada partição recebe um número, iniciando em 1.

Os HDs podem conter no máximo 4 partições 'primárias', caso seja necessário mais partições, é preciso criar uma como 'extendida', sendo que só podemos criar uma extendida, dentro dessa extendida podemos criar inúmeras outras partições.

Neste exemplo, não haverá extendida ... não há necessidade!

Vejamos agora como particionar:

 1. fdisk /dev/hda

Command (m for help): p
;; o 'p' serve para listar as partições do HD

Disk /dev/hda: 80.0 GB, 80060424192 bytes
255 heads, 63 sectors/track, 9733 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
   /dev/hda1   *           1         974     7823623+  83  Linux
   /dev/hda2            1276        4462    25599577+   c  W95 FAT32 (LBA)
   /dev/hda3            4463        9733    42339307+   5  Extended
   /dev/hda5            4463        4467       40131   83  Linux
   /dev/hda6            4468        4533      530113+  82  Linux swap / Solaris
   /dev/hda7            4534        7083    20482843+  83  Linux
   /dev/hda8            7084        7593     4096543+  83  Linux

   ;; se tiver partições (como este caso), será preciso apagar todos!


  Command (m for help): d
   Partition number (1-8): 1

   Command (m for help): d
   Partition number (1-8): 2

   Command (m for help): d
   Partition number (1-8): 3

   Command (m for help): d
   Partition number (1-8): 4

Veja que não é preciso apagar os números maiores que 4, pois eles estão vinculados a partição extendida, que ao ser eliminada, remove seus vínculos.
continuando, agora vamos criar as partições:

   Command (m for help): n
   Command action
   e   extended
   p   primary partition (1-4)

  ;; infome 'p'

    p
     Partition number (1-4): 1
 ;; informe '1'
     First cylinder (1-9733, default 1):
 ;; simplesmente tecle 'enter'
     Using default value 1
     Last cylinder or +size or +sizeM or +sizeK (1-9733, default 9733): +512M
 ;; para informar o tamanho, coloca-se o sinal de + junto do tamanho desejado e a
         unidade de medida (neste caso M de mega)

    Command (m for help): n
    Command action
    e   extended
    p   primary partition (1-4)
    p
    Partition number (1-4): 2
    First cylinder (64-9733, default 64):
    Using default value 64
    Last cylinder or +size or +sizeM or +sizeK (64-9733, default 9733):
 ;; ao teclar 'enter' aqui, você define a partição com todo o espaço livre disponivel.
    Using default value 9733
    Command (m for help): p
 ;; tecle 'p' para ver o que foi feito.

       Disk /dev/hda: 80.0 GB, 80060424192 bytes
       255 heads, 63 sectors/track, 9733 cylinders
       Units = cylinders of 16065 * 512 = 8225280 bytes

          Device Boot      Start         End      Blocks   Id  System
      /dev/hda1               1          63      506016   83  Linux
      /dev/hda2              64        9733    77674275   83  Linux

 ;; agora que temos as duas partições básicas, precisamos definir qual será a ROOT e
         qual será a SWAP.
 ;; primeiro, vamos definir a número 1 como SWAP, para isso, é preciso alterar o tipo
         de sistema dela de: 'Lixnux' para 'Linux swap'.
      Command (m for help): t
      Partition number (1-4): 1
      Hex code (type L to list codes): 82
      Changed system type of partition 1 to 82 (Linux swap / Solaris)

  ;; agora, vamos a partição ROOT, precisa ser definida como ativa.
      Command (m for help): a
      Partition number (1-4): 2

      Command (m for help): p
      Disk /dev/hda: 80.0 GB, 80060424192 bytes
      255 heads, 63 sectors/track, 9733 cylinders
      Units = cylinders of 16065 * 512 = 8225280 bytes

         Device Boot      Start         End      Blocks   Id  System
         /dev/hda1               1          63      506016   82  Linux swap / Solaris
         /dev/hda2   *          64        9733    77674275   83  Linux
 ;; pronto, agora parta salvar o que fizemos e seguir em frente!
         Command (m for help): w

 ;; em casos de desconforto, você pode sair sem salvar, digitando: q
 ;; veja outros comando usando o comando: m
'''
SWAP'''



A partição swap é um espaço do disco rígido reservado para o uso do sistema operacional como "complemento" da memória RAM. Quando a memória principal do sistema operacional está completamente "cheia" e existe a necessidade de executar alguma tarefa que exija mais consumo de memória, as informações que estão contida na memória principal são gravadas nesta partição em separado enquanto o sistema carrega para a memória principal as informações requeridas por esta tarefa. Assim que é encerrada, a memória principal é "esvaziada" e novamente recarregada com as informações contidas na partição swap.

Para instalar é simples, digite o seguinte comando:

mkswap /dev/hda1

Agora que ela já está pronta, podemos até mesmo usá-la digitando o seguinte comando:

swapon /dev/hda1

Caso queria desativar o SWAP, digite o comando abaixo:

swapoff /dev/hda1


'''ROOT ou demais partições'''

Aqui voltemos a ter novas discussões: qual sistema de arquivos usar?

Isso volta a ficar ao gosto do freguês e/ou aplicação. Particularmente, gosto muito de um chamado XFS, mas não está disponível em muitas distros, então, vejamos outros:

ext2 sistema recomendado para aplicações com arquivos gigantes, gigante lembra giga que é isso mesmo, quando forem ter arquivos maiores de 2 GB, é recomendado a utilização de ext2. Seu único problema é não conter o recurso de recuperação automática de arquivos, sendo assim, se a máquina for desligada incorretamente, você pode ter muitos problemas. Esse sistema de arquivos também é usando em máquinas mais lentas (antigas), onde não dispõe de muito poder de processamento.O sistema de arquivos ext2 é o padrão dos sistemas GNU/Linux. Possui muitas similaridades em comparação aos sistema VFAT utilizado no Windows, como o suporte à nomenclatura de arquivos com 256 caracteres. Porém um dos principais diferenciais é a possibilidade de atribuição de permissões especiais aos arquivos criados neste sistema pelo "dono". Somente iremos operar nestes arquivos de acordo com os atributos definidos pelo usuário que o criou (dono), como a leitura, a escrita e a gravação.

ext3 Na verdade, o ext3 não difere muito do sistema de arquivos ext2, porém apresenta o recurso journaling, que caracteriza-se por manter arquivadas no disco rígido uma imagem do estado do sistema de arquivos atualizada constantemente um arquivo na raíz da partição chamado journal. Com isto, toda vez que houver algum erro no sistema que necessite da reinicialização, o estado do sistema de arquivos é automaticamente restaurado baseando-se apenas nas informações registradas neste arquivo. Na prática, isto substitui a necessidade da utilização do fsck, em que ao realizar a checagem da integridade do sistema de arquivos, consome muito tempo e indisponibiliza o sistema por longos intervalos.

reiserfs Criado pela empresa Namesys, o sistema de arquivos ReiserFS foi desenvolvido visando adequar-se ao conceito "Alta disponibilidade". Por exemplo, quando ocorre uma queda no sistema resultante de falhas em arquivos ou falta de energia, ao reiniciarmos as partições ext2, teremos uma verificação de sua integridade feita automaticamente pelo programa e2fsck. Mas dependendo do tamanho e da quantidade de partições, este processo requer um tempo considerável vários minutos, algo bastante indesejado em circunstâncias em que existe a necessidade de alta disponibilidade das máquinas. No sistema de arquivos ReiserFS, ao invés de realizar a checagem total, ele apenas consulta o arquivo journal, onde o mesmo apenas informa as definições prévias para a restauração.
Dentre outras características importante do ReiserFS está nos seus pequenos clusters, que possuem tamanho máximo de 512 bytes, ideal para a utilização em armazenamento de inúmeros arquivos de pequeno volume, o que acarreta menor perda de espaço.

Mas chega de conversa, vejamos agora o comando para formatar a partição:

mkfs.ext2 /dev/hda2

Em caso de escolher outro formato, basta trocar o final de: '.ext2' para o desejado, como exemplo: mkfs.ext3 ou mkfs.reiserfs.

next up previous contents


'''
Montando a partição ROOT'''


Agora ficou fácil, basta escolher um diretório dentro do /mnt ou use mesmo.
Neste caso, vamos usar o diretório: /mnt/target

mkdir /mnt/target
mount /dev/hda2 /mnt

Pronto, agora você já tem os passos iniciais de uma instalação, basta agora decidir o que quer instalar e mandar bala!


'''Estrutura dos diretórios'''

Aqui vai uma breve descrição dos principais diretórios de sistema:


Diretório Raiz
Como qualquer outro sistema operacional, os sistemas GNU/Linux realizam a manipulação de diversos dados e informações, possuindo para isto uma estrutura de arquivos e diretórios bem definida e padronizada. Para cada tipo de arquivo e de acordo com suas funcionalidades e importância, existe um local específico para seu armazenamento. Além do diretório principal do sistema, representado por / existe uma série outros diretórios especificados pela padronização FHS10.18

Os diretórios que compõe a estrutura do diretório raíz que são: /bin
/boot
/dev
/etc
/home
/lib
/mnt
/opt
/proc
/root
/sbin
/tmp
/usr
/var
Segue abaixo a descrição detalhada sobre a estrutura e seus respectivos diretórios


/bin binários essenciais
O diretório /bin contém todos (ou a maioria) os arquivos binários com os comandos essenciais dos usuários, tais como os programas da linha de comando, entre outros.


/boot inicialização do sistema
O diretório /boot contém todos os arquivos necessários para a inicialização do sistema (como o boot loader, kernel...).


/dev - dispositivos
Todo e qualquer dispositivo, tais como portas seriais, discos rígidos, scanners, mouse, modens, etc., em sistemas baseados em UNIX são tratados como arquivos denominados device nodes nodo de dispositivo ou simplesmente device. Para ter acesso às funcionalidades de qualquer dispositivo, deveremos recorrer aos seus respectivos devices. E onde se encontram estes arquivos? O diretório /dev contém todos os arquivos de dispositivos (device) necessários para cada dispositivo em que o kernel do Linux suporta. Neste diretório também temos um script chamado MAKEDEV, o qual nos possibilita a criação de novos dispositivos de maneira fácil e prática, conforme nossas necessidades. Aqui está uma tabela dos principais dispositivos:


/dev/fd0     /mnt/floppy
/dev/cdrom     /mnt/cdrom
/dev/hda     primário hd master
/dev/hdb     primário hd slave
/dev/hdc     secundário hd master
/dev/hdd     secundário hd slave
/dev/sda     scsi
/dev/sr0     emulação scsi



/etc configuração
O diretório /etc contém todos os arquivos diversos de configuração local do computador utilizado, desde os arquivos de configurações diversas tais como a tabela para montagem de partições, o gerenciador de inicialização LILO, scripts, etc. Além deste diretório, existem outros diretórios.


/etc/X11     Arquivos de configuração local para o servidor X.
/etc/rc.d     Arquivos de configuração e scripts para a inicialização.


/home dados pessoais
Em virtude dos sistema Unix (e suas variantes) ter sido concebido para ser sistema multi-usuário, o diretório /home é designado exclusivamente para o armazenamento dos arquivos pessoais das contas de usuário do sistema, incluindo personalizações específicas de sua conta no sistema.
Para cada conta de usuário criado, é acrescentado à este diretório um novo diretório que utiliza a mesma nomenclatura definida para ser o username. Por exemplo, para conta do usuário "Ednei Pacheco de Melo", do qual possui o username "darkstar", teremos um diretório /home/darkstar/ para o armazenamento de todos os arquivos e configurações pessoais desta conta.


/lib bibliotecas essenciais
O diretório /lib contém bibliotecas compartilhadas necessárias para a execução dos arquivos contidos nos diretórios /bin e /sbin. Ainda neste diretório são encontrados os módulos do kernel, essenciais para as funcionalidades básicas do sistema. Estes módulos são armazenados numa estrutura especificada em /lib/modules-[VERSÃO]. As bibliotecas necessárias para as aplicações hospedadas em /usr não pertencem à /lib.



/mnt ponto de montagem
O diretório /mnt foi definido para ser utilizado única e exclusivamente para a montagem de unidades e partições para armazenamento de arquivos, como disquetes, zip-drives, discos rígidos, partições, memórias eletrônicas, etc. Em algumas distribuições, a montagem de determinadas unidades disquetes e CD/DVD-ROMs são feitas diretamente num diretório situados na raíz /floppy e /cdrom, respectivamente.
Basicamente existem dois subdiretórios em sua estrutura:


/mnt/cdrom     Montagem de mídias de CDs/DVDs.
/mnt/floppy     Montagem de disquetes.

Podemos criar outros subdiretórios para a que possamos realizar a montagem de outros dispositivos. Por exemplo, no Slackware existe o subdiretório /mnt/hd para montagem de outros discos rígidos ou partições disponíveis no sistema.


/opt compatibilidade entre aplicativos
O diretório /opt, apesar de não pertencer à norma FHS, foi mantido em virtude da necessidade de manter a compatibilidade com antigos programas que ainda são muito utilizados atualmente. Em uma consulta realizada na página eletrônica da Slackware LinuxBR, obtivemos outras informações muito interessantes sobre este diretório:
``Pacotes de software opcional. A idéia atrás do /opt é que cada pacote de software seja instalado para /opt/<software package>, o que facilita para uma desinstalação subseqüente. Slackware distribui algumas coisas no /opt (como o KDE em /opt/kde), mas você é livre para colocar o que quiser no /opt''

"Estrutura de diretórios do Slackware LinuxBR", por r_linux & mistif.

Conforme a informação acima, o KDE encontra-se instalado neste diretório, em /opt/kde/. Já o Gnome, em /usr/share/gnome/.




/proc informações e processos do kernel
O diretório /proc contém um sistema de arquivo virtual, com informações gerais do sistema e processo do kernel. Na verdade, o seu conteúdo não faz parte dos arquivos de sistema; ele é apenas um sistema de arquivo virtual para que os administradores do sistema tenham acesso às informações do processamento do kernel em forma de arquivos para consulta, onde inclusive podemos realizar passagem de informações ao kernel por eles através de parâmetros específicos.



/root- o home do administrador do sistema
O diretório /root é definido para ser utilizado exclusivamente no armazenamento de dados e arquivos pessoais do superusuário o root. Ele é mantido na raíz principal e não é situado em /home, em decorrência de uma possibilidade de pane geral do sistema, caso este esteja separado em uma partição. Ao iniciarmos sistema como superusuário para realizar alguma tarefa de manutenção específica, ficaríamos preso à necessidade de ter seus arquivos pessoais disponíveis, e como provavelmente esta partição não se encontrará (pelo fato de utilizar o nível de manutenção), teremos complicações para realizarmos a autenticação do superusuário. Não é recomendado o uso deste diretório para qualquer finalidades que não seja para a administração e/ou manutenção do sistema, em especial atividades comuns à usuários tais como leitura do correio eletrônico, armazenamento de dados diversos, etc. Para estas atividades, o administrador deverá ter ou criar para si uma conta de usuário comum.


/sbin binários administrativos
O diretório /sbin somente armazena arquivos binários essenciais para a administração do sistema, onde os mesmos são utilizado somente pelo superusuário ou durante a inicialização do sistema. Todos os executáveis necessários para diversas outras atividades pertinentes estarão disponíveis, como as operações com pacotes, módulos, processos, configurações, partições, etc.



/tmp arquivos temporários
O diretório /tmp armazena arquivos temporários gerados pelo sistema. Todos os usuários têm permissão de leitura e escrita nele. Geralmente este diretório é limpo a cada inicialização ou a intervalos relativamente freqüentes. Por este motivo, deveremos evitar a guarda de arquivos por um determinado tempo neste diretório, mesmo que eles sejam inúteis.



/usr - aplicativos e utilitáios gerais
O diretório /usr é a segunda maior hierarquia de diretórios do sistema. Todos os aplicativos e utilitários do sistema encontram-se aqui. Sua composição contém a seguinte estrutura:


/usr/X11R6     Sistema X Windows, versão 11, release 6.
/usr/bin     A maioria dos comandos de usuário.
/usr/dict     Listas de palavras.
/usr/doc     Documentação miscelânea.
/usr/etc     Configuração do sistema.
/usr/games     Jogos e outros programas educacionais.
/usr/include     Arquivos header (cabeçalhos) incluídos por programas C.
/usr/lib     Bibliotecas principais dos programas.
/usr/local     Hierarquia local, utilizado para programas que não "pertencem" ao sistema (distribuição).
/usr/man     Manual digital dos principais comandos.
/usr/sbin     Arquivos de administração do sistema não vitais.
/usr/share     Informação independente da arquitetura.
/usr/src     Armazenamento de código fonte de diversas aplicações inerentes da distribuição (inclusive do próprio kernel).



/VAR
O diretório /var contém informações variáveis, como arquivos e diretórios em fila de execução, arquivos temporários transitórios, etc. Segue abaixo sua composição:


/var/adm     Informações administrativa do sistema (obsoleto). Atalho simbólico até /var/log.
/var/catman     Páginas do manual formatadas localmente.
/var/lib     Informação do estado das aplicações.
/var/local     Informação variável do software de /usr/local.
/var/named     Arquivos DNS, somente rede.
/var/nis     Arquivos base de dados NIS.
/var/run     Arquivos relevantes a processos execução do sistema.
/var/spool     Diretórios de trabalhos em fila para realizar-se depois.
/var/tmp     Arquivos temporários, utilizado para manter /tmp menor possível.

Em virtude da existência de antigos programas ainda em vigor, deverão existir alguns subdiretórios para a compatibilidade com os mesmos em /var. Os diretórios que compõe esta estrutura são: /var/backups, /var/cron, /var/lib, /var/local, /var/msgs e /var/preserve.



'''Introdução a linha de comando'''

Nos primórdios da computação, os comandos eram dados aos computadores através de plugues, depois vieram os fantásticos cartões perfurados, uma revolução, e finalmente veio o console.
Console é o modo texto, aquela telinha preta com letras cinzas que você vê ao iniciar o computador, nos ambientes unix em geral é a forma mais transparente de comunicação com o sistema operacional. O quero dizer é que não existem intermediários entre o sistema operacional e o console, ou seja ele é o próprio sistema operacional ! O núcleo do sistema é completamente capaz de exibir mensagens no console mas não possui ferramentas para receber comandos, quem faz esse trabalho é o interpretador de comandos, popular mente conhecido como Shell.
O shell usado nessa oficina é o Bash10.19 assim como em 90% das máquinas com linux ao redor do mundo, por falta de recursos e tempo não vamos no aprofundar nesse assunto, mas que tal darmos pelo menos uma pincelada no assunto ? Veja a tabela abaixo:
Comando Unix     Descrição     Exemplo
adduser     Para inserção de usuários no sistema.     adduser nome_do_usuário
cal     Exibe calendário     cal 2004
cat     Mostra o conteúdo de um arquivo     cat sabores.txt
cd     Muda o diretório     cd Pizzas
cp     Copia arquivos     cp jiloh.txt legume.txt
date     Informa a hora e o dia     date
dd     É utilizado para realizar cópia de arquivos e transferência de dados conforme sua estrutura.     dd if=[ARQUIVO/DADOS] of=[ARQUIVO/DADOS]
df     Mostra estatísticas sobre utilização do disco     df
du     Mostra o espaço ocupado por um arquivo ou conjunto de arquivos.     du -sh
free     Exibe um relatório sobre a memória RAM e SWAP do sistema.     free
fsck     Realiza uma checagem da unidade em questão, procurando por áreas e blocos danificados. Muito útil quando da ocorrência de erros na unidade de disco rígido.     fsck.[FS] /dev/partição
halt     O comando Halt é para desligar a o Sistema.     halt
kill     Elimina um processo existente no sistema através do numero.     kill numero_do_processo
less     Navega entre o conteúdo de um arquivo     less sabores.txt
ln     Cria links para apontar determinados arquivos ou diretórios do sistema.     ln -s de_onde para_onde
ls     Lista os arquivos de um diretório     ls .
man     Exibe manual de utilização de algum programa     man programa
mkdir     Cria novo diretório     mkdir Pizzas
mount     Esse comando serve para montar sistemas de arquivos.     mount /mnt/cdrom
mv10.20     Move arquivos e diretórios     mv mussarela.jpg Pizzas
passwd     Muda sua senha     passwd
ps     Exibe os processos os quais estão sendo rodados no sistema.     ps aux
pwd     Este comando apenas mostra diretório atual     pwd
reboot     Reboota a máquina.     reboot
rmdir     Remover um diretório já existente.     rmdir nome_do_diretório
rm     Remove arquivos     rm jiloh.txt
shutdown     Faz a mesma função do comando halt mas em hora programada.     shutdown -h 10:45
su     Ele serve para um usuário virar root no sistema, o usuário que quiser virar root no sistema tem que ter a senha.     su
superformat     Esse comando é para formatar disquetes.     superformat /dev/fd0
talk     Permite conversar com outros usuários do sistema     talk usuário
top     Exibe todos os processos em execução, além de outros fatores importantes, como a utilização geral da CPU e ocupação da memória.     top
touch     Cria arquivo vazio     touch jiloh.txt
umount     O umount é para desmontar os sistemas de arquivo que foram montados.     umount /mnt/cdrom
unzip     Para a descompactação dos arquivos zip.     unzip nome_do_arquivo.zip
userdel     Elimina a conta de usuário do sistema.     userdel nome_do_usuário
who     Informa os usuários conectados ao sistema e seus respectivos terminais     who
zip     Para compactação de arquivo zip     zip nome_do_arquivo.zip nome_do_arquivo




'''tar'''


O comando tar é um gerenciador de backups em fita. Atualmente usado com extenções bzip2 e gzip, é muito empregado para criar pacotes compactados.

Exemplos:

Descompacta arquivo:

tar -xvzj nome_do_arquivo.tar.gz

Compacta diretórios e arquivos:

tar -cvjf nome_do_arquivo.tar.bz2 diretório1 diretório2 ...


x     extrair arquivos.
c     criar novo pacote.
v     mostra atividade do programa.
j     para os arquivos bz2.
z     para os arquivo gz.
f     tratamento de arquivos.