SlideShare una empresa de Scribd logo
1 de 67
Descargar para leer sin conexión
1                    Sistemas Operacionais                             Luiz Arthur


                     Sistema Operacional Linux
O Linux é uma versão gratuita distribuída do primeiro UNIX desenvolvido por Linus
Torvalds na Universidade Helsinque na Finlândia em 1991. Foi originalmente
desenvolvido a partir do desejo de Linus, em trabalhar com um sistema mais
completo que o Minix que era um pequeno sistema Unix criado para fins didáticos
pelo renomado professor Andrew Tanenbaum.

No Linux o Kernel (núcleo , com as funções básicas do sistema operacional) mais o
conjunto de ferramentas GNU compõem o Sistema Operacional. O kernel que é a
base principal de um sistema operacional, poderá ser construído ou moldado de
acordo com a configuração do seu computador e dos periféricos que possui.

O código fonte do Kernel do Linux é liberado e licenciado como Free Software
(software livre) o aviso de copyright do Kernel feito por Linus descreve
detalhadamente que nem mesmo o próprio Linus Torvalds pode fechar o sistema
para ser usado apenas comercialmente.

Isto quer dizer que, não é necessário pagar nada para usar o Linux, e não é
crime fazer cópias para instalar em outros computadores.

O Linux segue o padrão POSIX que é o mesmo usado por sistemas UNIX e suas
variantes. Assim, aprendendo o Linux você não encontrará muita dificuldade em
operar um sistema do tipo UNIX, FreeBSD, HPUX, SunOS, etc., bastando apenas
aprender alguns detalhes encontrados em cada sistema.
2                     Sistemas Operacionais                              Luiz Arthur


Software Livre - GNU

O projeto GNU trás o objetivo de desenvolver um sistema operacional Unix-like
totalmente livre. Livre se refere à liberdade, e não ao preço, isto significa que
você está livre para executar, distribuir, estudar, mudar e melhorar o software.

Um sistema Unix-like consiste de muitos programas diferentes. Por exemplo, X
Window, TeX, Berkeley network utilities, GNU Emacs, compilador GNU C, GNU C
library, Bash, Ghostscript, etc.

O projeto GNU não é somente o desenvolvimento e a distribuição de alguns
softwares livres. O coração do projeto GNU é a idéia que todo software deve ser
livre, e que a liberdade do usuário vale a pena ser defendida.

O projeto GNU visa também que a idéia de liberdade permita que os usuários
ajudem-se mutuamente, evoluindo assim o nível de conhecimento do usuário, bem
como, do software.

Em 1992, o GNU já havia encontrado ou criado todos os componentes principais do
sistema exceto o kernel. Então o kernel do Linux tornou-se disponível, mas o kernel
do Linux não foi escrito para o projeto GNU, mas o Linux e quase completamente
GNU e desta forma fizeram uma combinação útil. Ou seja, o GNU precede o Linux.

Ironicamente, a popularidade do Linux normalmente desmerece o método de
comunicar a idéia GNU.
3                    Sistemas Operacionais                              Luiz Arthur



Para rodar o Linux é necessário apenas, um computador 386 SX com 2 MB de
memória (para um kernel até a série 2.2.x) ou 4MB (para kernels 2.4 e superiores) e
40MB disponíveis em seu disco rígido para uma instalação básica e funcional.

O código fonte aberto do kernel Linux permite que qualquer pessoa veja como o
sistema funciona (útil para aprendizado), corrija algum problema ou faça alguma
sugestão de melhoria.

Outro ponto em que o Linux se destaca é o suporte oferecido aos dispositivos de
última geração, ou ainda aos dispositivos mais antigos (sendo que, a maioria dos
dispositivos ultrapassados são suportados pelo Kernel). Este é um ponto de tomadas
de decisão forte para empresas que desejam manter seus micros em funcionamento
e pretendem investir em avanços tecnológicos com as máquinas que possui.

O suporte ao sistema também se destaca por ser mais eficiente e rápido do que
qualquer programa sistema comercial disponível no mercado. Existem centenas de
consultores especializados espalhados ao redor do mundo. Você pode se inscrever
em listas de discussões e relatar suas dúvidas ou alguma falha do Linux, e sua
mensagem será vista por centenas de usuários na Internet e algum desses usuários
irá te ajudar ou avisará as pessoas responsáveis sobre a falha encontrada para
devida correção.
4                    Sistemas Operacionais                          Luiz Arthur


Algumas Características do Linux

 É livre e desenvolvido voluntariamente por programadores experientes, hackers
e contribuidores espalhados ao redor do mundo. A contribuição de voluntários
permite a melhoria e crescimento deste sistema operacional;

 Convive sem nenhum tipo de conflito com outros sistemas operacionais (com o
DOS, Windows, OS/2, FreeBSD, etc) no mesmo computador;

Multitarefa real;

Multiusuário;

Suporte a nomes extensos de arquivos e diretórios (255 caracteres);

Conectividade e suporte a outros tipos de plataformas como Apple, Sun,
Macintosh, Sparc, Alpha, PowerPc, ARM, Unix, Windows, DOS, etc;

Proteção entre processos executados na memória RAM;

Suporte a mais de 63 terminais virtuais (consoles);

 Modularização - O GNU/Linux somente carrega para a memória o que é usado
durante o processamento, liberando totalmente a memória assim que o
programa/dispositivo é finalizado;
5                    Sistemas Operacionais                            Luiz Arthur

Algumas Características do Linux

 Devido a modularização, os drivers dos periféricos e recursos do sistema podem
ser carregados e removidos completamente da memória RAM a qualquer
momento;

 Não há a necessidade de se reiniciar o sistema após a modificar a configuração
de qualquer periférico ou parâmetros de rede;

Não precisa de um processador potente para funcionar.

 O crescimento e novas versões do sistema (Kernel) não provocam lentidão, pelo
contrário, a cada nova versão os desenvolvedores procuram buscar maior
compatibilidade, acrescentar recursos úteis e melhor desempenho do sistema;

 Não é requerida uma licença para seu uso. O GNU/Linux é licenciado de acordo
com os termos da GPL;

 Acessa corretamente discos formatados pelo DOS, Windows, Novell, OS/2, NTFS,
SunOS, Amiga, Atari, Mac, etc;

Utiliza permissões de acesso a arquivos, diretórios e programas em execução na
memória RAM;
6                     Sistemas Operacionais                             Luiz Arthur


Algumas Características do Linux

 O Linux não é vulnerável vírus! Devido a separação de privilégios entre processos
e respeitadas as recomendações padrão de política de segurança e uso de contas
privilegiadas, programas como vírus tornam-se inúteis pois tem sua ação limitada
pelas restrições de acesso do sistema de arquivos e execução;

 Rede TCP/IP mais rápida que no rWindows e tem sua pilha de protocolos
constantemente melhorada;

 Roda aplicações DOS através do DOSEMU, QEMU, BOCHS. Roda também,
aplicações Windows através do WINE;

 Suporte a diversos dispositivos, tal como: infravermelho, rede via rádio amador,
dispositivos Plug-and-Play, USB, Fireware, Wireless, etc;

 Suporte nativo a firewalls de alta qualidade, com grande poder de segurança e de
graça;

Roteamento estático e dinâmico de pacotes da rede TCP/IP;

Possui recursos para atender a mais de um endereço IP na mesma placa de rede;

Entre incontáveis outras características.
7                     Sistemas Operacionais                             Luiz Arthur

Distribuições do Linux

Só o kernel do Linux não é suficiente para se ter uma sistema funcional, mas é o
principal.

Existem grupos de pessoas, empresas e organizações que decidem "distribuir" o
Linux junto com outros programas essenciais (como por exemplo editores
gráficos, planilhas, bancos de dados, ambientes de programação, formatação de
documentos, firewalls, etc). Este é o significado básico de distribuição.

Cada distribuição tem sua característica própria, tal como: sistema de
instalação, localização de programas, nomes de arquivos de configuração, etc.

           A escolha de uma distribuição é pessoal e depende das
                         necessidades de cada um.

Segue algumas distribuições e sua principais características:

Debian: Distribuição desenvolvida e atualizada através do esforço de voluntários
espalhados ao redor do mundo, seguindo o estilo de desenvolvimento GNU/Linux.
Por este motivo, foi adotada como a distribuição oficial do projeto GNU. Acompanha
mais de 8710 programas distribuídos em forma de pacotes.

SuSE: Distribuição comercial Alemã com coordenação norte-americana.
8                    Sistemas Operacionais                              Luiz Arthur


Red Hat Enterprise Linux: Distribuição comercial da Red Hat e voltada a
servidores de grande e médio porte.

Fedora: O Fedora Linux é a distribuição de desenvolvimento aberto patrocinada
pela RedHat e pela comunidade Linux, originada em 2002 e baseada em versões da
antiga linha de produtos RedHat Linux, que era à distribuição mais utilizada do
mundo. A distribuição Fedora dá prioridade ao uso do computador como estação de
trabalho. Por basear-se no RedHat o Fedora conta com softwares para manter o
sistema atualizado e utiliza pacotes de programas no formato RPM.

Mandrake & Conectiva: Mandrake (distribuição francesa que se instala
praticamente sozinha, boa auto-detecção de periféricos, inclusive web-cams),
Conectiva (distribuição brasileira, reconhecida internacionalmente, e era um
sistema tipicamente para PC e notebooks, com muitos pacotes de escritório e
desenho e etc. A instalação é muito simples e intuitiva, com todo o gerenciamento
centralizado. Além de ter a maioria dos manuais online e traduzidos para o
português.)

Kurumin: Uma distribuição baseada em Debian que roda diretamente a partir do
CD, sendo ideal para quem deseja testar uma distribuição Linux. Caso goste, o
usuário pode instalar diretamente no disco rígido. Distribuída a partir do CD,
suporta boa quantidade de hardwares disponíveis. A versão instalada possui suporte
a maioria dos winmodens mais encontrados no Brasil.
9                    Sistemas Operacionais                              Luiz Arthur


Slackware: Distribuição desenvolvida por Patrick Volkerding, tem como objetivo
para alcançar facilidade de uso e estabilidade. Foi a primeira distribuição a ser
lançada no mundo e costuma ser conservadora, provendo simplicidade, facilidade de
uso, flexibilidade e é altamente estável. Desde a primeira versão lançada em Abril
de 1993, o Projeto Slackware Linux tem buscado produzir a distribuição Linux mais
UNIX-like, ou seja, mais parecida com UNIX. O Slackware segue os padrões Linux
como o Linux File System Standard, que é um padrão de organização de diretórios e
arquivos para as distribuições. Enquanto as pessoas dizem que a Red Hat, Debian,
Kurumin e Mandriva são as melhores distribuição para usuários iniciantes, o
Slackware é o melhor para usuários mais "experientes", ou seja programadores,
administradores, etc.

Existem ainda inúmeras outras distribuições, tal como, Gentoo, Ubuntu, Knoopix
etc. Uma boa dica para se aprofundar no “mundo” Linux é pesquisar e experimentar
várias distribuições, e assim experimentar o melhor de cada uma.

A escolha de sua distribuição deve ser feita com muita atenção, não adianta muita
coisa perguntar sobre qual é a melhor distribuição, e ser levado pelas propagandas.

O melhor caminho para a escolha da distribuição, seria perguntar as características
de cada uma e porque as pessoas gostam dela ao invés de perguntar qual é a
melhor, porque quem lhe responder isto estará usando uma distribuição que se
encaixa de acordo com suas necessidades e esta mesma distribuição pode não ser a
melhor para lhe atender.
10                    Sistemas Operacionais                               Luiz Arthur


Ligando o computador com Linux

Qualquer computador PC quando ligado inicia uma série de ações complexas de
testes de hardware, programada por um programa especial chamado BIOS que está
armazenado em uma memória ROM (Read Only Memory - memória somente para
leitura). Está memória tem a função de dar a partida na máquina, reconhecendo os
dispositivos instalados e realizando a carga do sistema operacional.

Durante o boot, a BIOS realiza uma série de testes, cuja função é determinar com
exatidão os componentes de hardware instalados no sistema. Este teste é chamado
de POST (Power-On Self Test). É através do POST que o computador busca
informações sobre o número e tipos de placas, drivers de disquetes, HD's, portas
seriais, paralelas, USB's, monitor, mouse, teclado, etc, que estão presentes no
sistema.

Logo depois dos testes de hardware, a BIOS procura nos dispositivos de discos
rígidos, disquetes e CD-ROM um endereço especial chamado de setor de boot.

O setor de boot de um disquete está localizado no cilindro 0, cabeça 0, setor 1. Este
setor é criado por um programa de formatação de disquetes.

É no setor de boot que reside o software responsável por iniciar a carga do sistema
operacional.
11                    Sistemas Operacionais                             Luiz Arthur

O Linux possui dois gerenciadores de boot, o LILO (LInux LOader) e o GRUB (Grand
Unified Bootloader). Estes dois gerenciadores de boot são responsáveis pela carga
do Kernel do Linux e também pela a carga de outros Sistemas Operacionais, tal
como Windows, FreeBSD, etc.

A instalação, configuração, gerenciamento e passagens de parâmetros para os
gerenciadores de boot (LILO e GRUB) serão apresentados posteriormente. Por
enquanto a idéia é somente aprender a ligar o computador e escolher o Sistema
Operacional.

A figura a seguir apresenta à tela do LILO:




                                                           Note o balão vermelho.
                                                           Neste é passado ao
                                                           LILO qual é a opção de
                                                           boot que o usuário
                                                           deseja. Neste caso o
                                                           Linux, mas poderia ser
                                                           outro   SO    como   o
                                                           Windows. Após escolher
                                                           à opção basta teclar
                                                           ENTER e o SO Linux irá
                                                           ser    carregado    na
                                                           memória.
12                   Sistemas Operacionais                              Luiz Arthur


Processo de Carga do kernel

O kernel é a parte mais importante de qualquer sistema operacional. Considerado o
núcleo do sistema, ele é responsável pelas funções de baixo nível, como o
gerenciamento de memória, gerenciamento de processos, subsistemas de arquivos,
rede suporte aos dispositivos e periféricos conectados ao computador.

Assim quando o sistema é iniciado o gerenciador de boot (LILO ou GRUB) irá
carregar na memória um kernel, no qual está contido as funções básicas de um
Sistema Operacional.

Enquanto o Kernel é carregado na inicialização do sistema, ele exibe uma série de
mensagens úteis que irão informar a sua identificação, informações de CPU e
memória, dispositivos de hardware, discos, partições,serviços de rede, etc.

Durante o processo de boot o Linux executa diversos processos em uma ordem
programada, chamada de “nível de execução”, ou Runlevels. Este nível de
execução vai determinar quais serviços serão executados durante a carga.

Por exemplo, pode-se definir que um determinado nível vai chamar todos os serviços
que um servidor de rede precisa executar, como SSH, servidor HTTP, servidor FTP,
etc. Mas para uma situação de emergência, na qual o administrador precisa efetuar
alguma manutenção, podemos determinar um nível de execução no qual somente o
básico seja executado.
13                    Sistemas Operacionais                                  Luiz Arthur


No Linux existem sete níveis de execução predefinidos, de 0 à 6. Os serviços que
cada runlevel pode executar vai depender da distribuição do Linux e da
configuração que o administrador do sistema efetuou.

Por padrão, as distribuições utilizam o nível 0 para uma seqüência de desligamento
(shutdown) elegante e o nível 6 para o reboot (reiniciar o sistema). E os runlevels 3
a 5 são utilizados para carga normal do sistema.

A figura a seguir mostra um processo de boot no Slackware Linux:




                                                                Está é uma tela típica
                                                                de      um      sistema
                                                                operacional        Linux
                                                                sendo    iniciado.    No
                                                                balão vermelho está o
                                                                nível em que vai ser
                                                                iniciado o sistema.
                                                                Neste caso o runlevel
                                                                3.
14                   Sistemas Operacionais                                   Luiz Arthur

O nível de execução 1 (runlevel 1) é conhecido como monousuário, e é utilizado para
a manutenção do sistema, como, por exemplo, recuperar uma partição de dados com
problemas.

O administrador do sistema pode especificar no gerenciador de boot (LILO e GRUB)
o runlevel que ele deseja:
                                                Por convenção tudo que estivem com
LILO: Linux 1                                   fonte  courier     é   um   comando,
                                                parâmetro ou saída do computador.

Onde Linux é o nome da imagem do kernel.
Veja as definições de runlevels a seguir:

0 – O nível zero define um desligamento elegante e rápido do sistema.
1,s,single – Utilizado para manutenção do sistema, também chamado de
monousuário (single user) e somente o essencial é executado.
2 – Modo multiusuário com compartilhamento de arquivo de rede (NFS)
desabilitado.
3 – Modo multiusuário com todos os serviços habilitados, mas sem interface gráfica
para o login do sistema.
4 – Modo gráfico no Slackware idem ao modo 5, normalmente não usado em outras
distribuições.
5 – Modo multiusuário com todos os serviços habilitados, interface gráfica X11 e
login em modo gráfico.
6 – O nível seis é parecido com o nível zero, mas executa o reboot da máquina.
15                   Sistemas Operacionais                                 Luiz Arthur


Entrando no Sistema - Login

Assim que o boot fizer a sua parte. O usuário escolher o Kernel e o nível de
execução. O Linux irá apresentar uma tela de login, ou seja, uma tela requerendo
um nome de usuário do sistema e sua respectiva senha (palavra secreta que
somente o usuário deve saber).

No Linux e em sistemas Like-UNIX é sempre requerido um usuário e senha para
utilizar o Sistema Operacional. O que proporciona segurança.

A seguir telas de login que normalmente são apresentadas pelo Linux:
                                                  Aqui está um login em modo
                                                  texto (runlevels 1, 2 e 3).
                                                  Conforme apresentado no balão
                                                  vermelho é só informar no
                                                  login o nome do usuário e no
                                                  campo Password a senha do
                                                  mesmo usuário.

                                                  Observação a senha         não
                                                  aparece    enquanto          é
                                                  digitada!

                                                  Se o usuário e senha estiverem
                                                  corretos   um     prompt     de
                                                  comando irá aparecer.
16                    Sistemas Operacionais                              Luiz Arthur


O login pode também ser gráfico, caso o runlevel seja passado como 4 (no
Slackware) ou 5 (em outras distribuições). Porém, o principio é o mesmo devem ser
passados usuário e senha.




Algumas distribuições permitem que o Linux seja iniciado já com um ambiente
gráfico sem a necessidade de se digitar um usuário e uma senha, entretanto mesmo
nestes ambientes existe um usuário, só que não lhe é requisitado a senha e o login é
feito de forma automática.
17                    Sistemas Operacionais                                Luiz Arthur


Interpretador de comandos

Também conhecido como "shell". É o programa responsável em interpretar as
instruções enviadas pelo usuário e seus programas ao sistema operacional.

É a principal ligação entre o usuário, os programas e o kernel. O GNU/Linux possui
diversos tipos de interpretadores de comandos, entre eles destaca-se o bash, ash,
csh, tcsh, sh, etc. O mais usado é o bash. O interpretador de comandos do
DOS/Windows, por exemplo, é o command.com.

Aviso de comando (Prompt)

Aviso de comando (ou Prompt), é a linha mostrada na tela para digitação de
comandos que serão passados ao interpretador de comandos para sua execução.

A posição no qual o comando será digitado é marcado por um "traço" piscante na
tela, chamado de cursor. Tanto em shells texto como em gráficos é necessário o uso
do cursor para sabermos onde iniciar a digitação de textos e nos orientarmos quanto
a posição na tela.

O aviso de comando do usuário root (usuário administrador) é identificado por uma
"#" (tralha), e o aviso de comando de usuários é identificado pelo símbolo "$". Isto é
padrão em sistemas UNIX.
18                  Sistemas Operacionais                              Luiz Arthur


Segue uma tela com o prompt de comando do Linux:



                                                         No    balão    verde   é
                                                         apresentado o uso do
                                                         prompt    de    comando
                                                         através do comando dir
                                                         /, sua saída é dada logo
                                                         abaixo (em azul).


                                                         Já no balão vermelho é
                                                         apresentado o prompt
                                                         de comando esperando
                                                         por um comando.




Em ambientes gráficos, o cursor em modo texto é substituído por comando
representados por ícones, entretanto é comum, mesmo em sistemas gráficos usar
ambientes que recriam um prompt de comando no modo texto, um exemplo disso é o
konsole, xterm, etc.

Os recursos dos shells e dos promts de comandos serão estudados a fundo, mais a
diante.
19                   Sistemas Operacionais                              Luiz Arthur


Desligando o computador

O computador não deve ser desligado de forma bruta, com o interrompimento de
energia antes de desligar o computador é necessário retirar os processos que estão
na memória, caso isso não ocorra pode haver perdas de dados. Desta forma são
utilizados alguns comandos para que tudo transcorra bem durante o processo de
desligamento do computador.

Normalmente o único usuário que tem permissão de desligar o computador é o
usuário root, que é o administrador do sistema, o root tem permissão de fazer
qualquer coisa no computador, qualquer coisa mesmo inclusive apagar tudo o que
existe no computador, por isso tome muito cuidado quanto estiver usando este
usuário.

O comando mais comum para se desligar um sistema Linux é o shutdown. Com o
comando shutdown, o GNU/Linux finalizará os programas e gravará os dados em seu
disco rígido, e quando for mostrada a mensagem "power down", será possível
pressionar o botão power (energia) em seu gabinete para desligar a alimentação de
energia do computador de forma segura. Em computadores mais recentes com
gabinetes ATX, a energia será desligada de forma automática, sem a necessidade de
apertar o botão de power.
20                   Sistemas Operacionais                            Luiz Arthur
Então o comando shutdown exerce a tarefa de desligar o computador, mas o
comando faz mais do que isso, tal como, reiniciar o computador.

Porém para que o shutdown realize os procedimentos necessários o comando faz o
uso de opções e parâmetros, a sintaxe do comando fica assim:

#shutdown [opções] horário [mensagem]

As opções mais freqüentes são:
-r Reinicia (reboot) o sistema depois de terminada a seqüência de desligamento.
-h Paralisa (halt) o sistema depois de terminar a seqüência de desligamento, não
    reinicia a máquina só a desliga.
-k Manda a mensagem de desligamento, mas não inicia a seqüência de
    desligamento.
-c Cancela o comando shutdown recém executado.

Exemplos:

Para reiniciar o sistema imediatamente:
#shutdown -r now

Para desligar o sistema em 90 minutos:
#shutdown -h +90 “Desligando o SO em 90 minutos, para troca de hardware”

Para desligar o sistema imediatamente:
#shutdown -h now
21                   Sistemas Operacionais                             Luiz Arthur


O comando shutdown é utilizado para desligar ou reiniciar o sistema em horários
determinados. Durante este procedimento, o shutdown desabilita o sistema de login
para impedir que novos usuários entrem no sistema e envie mensagens
personalizadas nos terminais para todos os usuários conectados avisando que o
sistema será desligado.

A diferença entre trocar de runlevel para 0 ou 6 é que o comando shutdown é
administrativamente melhor, pois avisa aos usuários que haverá uma parada do
sistema. Já para o init não há nenhum tipo de aviso.

Existem outros comandos que fazem o desligamento do sistema, são eles:
porweroff, halt e init 0.

Já se o caso for apenas reiniciar o sistemas os comando mais comuns são:
reboot, init 6, e com o uso das teclas Ctrl+Alt+Del (todas pressionadas ao mesmo
tempo).

Para o desligamento de computadores mais recentes é possível ainda pressionar
apenas o botão do power, e o sistema irá chamar o init 0 e desligará o
computador corretamente, tome cuidado para não fazer o uso do botão power direto
em sistemas que não dão suporte ao desligamento automático.
22                    Sistemas Operacionais                               Luiz Arthur


Atividade 1

1.1 – Inicie o computador passando como parâmetro no LILO o runlevel 3.

1.2 – Desligue o computador utilizando o comando shutdown com opção de desligar
em 2 minutos após a execução do comando shutdown, passando ainda uma
mensagem aos usuários.

1.3 – No gerenciador de boot inicie o Linux com suporte ao login gráfico.

1.4 – Pesquise e teste às principais formas de se desligar e reiniciar um sistema
Linux.

1.5 – Para que serve o nível de execução single durante a inicialização de um
sistema Like-UNIX?

1.6 – Pesquise sobre o gerenciador de boot GRUB, descrevendo suas principais
características, e como é possível passar ao GRUB os runlevels.

1.7 – Quais são as diferenças entre LILO e GRUB?

1.8 – Como é possível ler as mensagens de inicialização do sistema depois que o
linux foi iniciado? Onde, ficam gravadas essas mensagens?
23                   Sistemas Operacionais                            Luiz Arthur


Arquivos

Os Arquivos são onde ficam gravamos nossos dados. Um arquivo pode conter um
texto, uma música, programa, planilha, etc.

Cada arquivo deve ser identificado por um nome, assim um arquivo pode ser
encontrado facilmente quando desejar usá-lo. Se estiver fazendo um trabalho de
história, nada melhor que salvá-lo com o nome historia.

Um arquivo pode ser binário (gerado por um compilador) ou texto (arquive que
contém apenas texto).

O GNU/Linux é Case Sensitive ou seja, ele diferencia letras maiúsculas e
minúsculas nos arquivos. O arquivo historia é completamente diferente do arquivo
Historia. Esta regra também é válido para os comandos e diretórios.

Um arquivo oculto no GNU/Linux é identificado por um "." no inicio do nome (por
exemplo, .bashrc). Arquivos ocultos não aparecem em listagens normais de
diretórios e arquivos, e deve ser usado o comando ls -a para listar também
arquivos ocultos.
24                    Sistemas Operacionais                             Luiz Arthur


Extensão de arquivos

A extensão serve para identificar o tipo do arquivo.

A extensão são as letras após um "." no nome de um arquivo, explicando melhor:

relatório.txt - O .txt indica que o conteúdo é um arquivo texto.
script.sh - Arquivo de Script (interpretado por /bin/sh).
system.log - Registro de algum programa no sistema.
arquivo.gz - Arquivo compactado pelo utilitário gzip.
index.html - Página de Internet (formato Hypertexto).

A extensão de um arquivo também ajuda a saber o que precisamos fazer para abri-
lo. Por exemplo, o arquivo relatório.txt é um texto simples e podemos ver seu
conteúdo através do comando cat, já o arquivo index.html contém uma página de
Internet e precisaremos de um navegador para poder visualizá-lo (como o lynx,
Mosaic ou o Netscape).

A extensão (na maioria dos casos) não é requerida pelo sistema operacional
GNU/Linux, mas é conveniente o seu uso para determinarmos facilmente o tipo de
arquivo e que programa precisaremos usar para abri-lo.
25                    Sistemas Operacionais                                Luiz Arthur


Tamanho de arquivos

A unidade de medida padrão nos computadores é o bit. A um conjunto de 8 bits
dá-se o nome de byte. Cada arquivo/diretório possui um tamanho, que indica o
espaço que ele ocupa no disco e isto é medido em bytes. O byte representa uma
letra (a, b, c, d, etc). Assim, se você criar um arquivo vazio e escrever o nome Linux
e salvar o arquivo, este terá o tamanho de 5 bytes. Espaços em branco e novas
linhas também ocupam bytes.

Além do byte existem as médidas Kbyte, Mbyte, Gbyte. Os prefixos K (quilo), M
(mega), G (giga), T (tera) etc. vêem da matemática. O "K" significa multiplicar por
10^3, o "M" por 10^6, e assim por diante. Esta letras servem para facilitar a leitura
em arquivos de grande tamanho. Um arquivo de 1K é a mesma coisa de um arquivo
de 1024 bytes.

Da mesma forma 1Mb (ou 1M) é igual a um arquivo de 1024K ou 1.048.576 bytes.
1Gb (ou 1G) é igual a um arquivo de 1024Mb ou 1048576Kb ou 1.073.741.824 bytes
(1 Gb é igual a 1.073.741.824 bytes, são muitos números!). Deu para notar que é
mais fácil escrever e entender como 1Gb do que 1.073.741.824 bytes.
26                    Sistemas Operacionais                            Luiz Arthur


A lista completa em ordem progressiva das unidades de medida é a seguinte:

                          Símbolo     Nome

                          K           Quilo
                          M           Mega
                          G           Giga
                          T           Tera
                          P           Peta
                          E           Eta
                          Z           Zetta
                          Y           Yotta

Arquivo texto e binário

Quanto ao tipo (conteúdo), um arquivo pode ser de texto ou binário:

texto: Seu conteúdo é compreendido pelas pessoas. Um arquivo texto pode ser uma
carta, um script, um programa de computador escrito pelo programador, arquivo de
configuração, etc.

Binário: Seu conteúdo somente pode ser entendido por computadores. Contém
caracteres incompreensíveis para pessoas normais. Um arquivo binário é gerado
através de um arquivo de programa (formato texto) através de um processo
chamado de compilação. Compilação é basicamente a conversão de um programa
em linguagem humana para a linguagem de máquina.
27                    Sistemas Operacionais                              Luiz Arthur


Diretório

Diretório é o local utilizado para armazenar conjuntos arquivos para melhor
organização e localização. O diretório pode ser visto como um arquivo que contém
referencias a um grupo de arquivos.

O diretório, como o arquivo, também é "Case Sensitive" (diretório /teste            é
completamente diferente do diretório /Teste).

Não podem existir dois arquivos com o mesmo nome em um diretório, ou um sub-
diretório com um mesmo nome de um arquivo em um mesmo diretório.

Um diretório nos sistemas Linux/UNIX são especificados por uma "/" e não uma ""
como é feito no DOS/Windows.

Diretório Raíz

O diretório / (chamado de root ou raiz) é o diretório principal do sistema. Dentro
dele estão todos os diretórios do sistema. O diretório Raíz é representado por uma
"/", assim se você digitar o comando cd / você estará acessando este diretório.

Nele estão localizados outros diretórios como o /bin, /sbin, /usr, /usr/local,
/mnt, /tmp, /var, /home, etc. Estes são chamados de sub-diretórios pois estão dentro
do diretório "/". A estrutura de diretórios também é chamada de Árvore de
Diretórios porque é parecida com uma árvore de cabeça para baixo.
28                    Sistemas Operacionais                               Luiz Arthur
Cada diretório do sistema tem seus respectivos arquivos que são armazenados
conforme regras definidas pela FHS (FileSystem Hierarchy Standard - Hierarquia
Padrão do Sistema de Arquivos) versão 2.0, definindo que tipo de arquivo deve ser
armazenado em cada diretório.

Diretório atual

É o diretório em que nos encontramos no momento. Você pode digitar o comando
pwd para verificar qual é seu diretório atual.

O diretório atual também é identificado por um "." (ponto). O comando ls . pode
ser usado para listar seus arquivos (mas, isto é desnecessário porque se não digitar
nenhum diretório, o comando ls listará o conteúdo do diretório atual).

Diretório home

Também chamado de diretório do usuário. Em sistemas GNU/Linux cada usuário
(inclusive o root) possui seu próprio diretório no qual poderá armazenar seus
programas e arquivos pessoais.

Este diretório está localizado em /home/[login], neste caso se o seu login for "joao"
o seu diretório home será /home/joao. O diretório home também é identificado por
um ~(til), você pode digitar tanto o comando ls /home/joao como ls ~ para listar
os arquivos de seu diretório home.
O diretório home do usuário root (na maioria das distribuições GNU/Linux) está
localizado em /root.
29                     Sistemas Operacionais                                Luiz Arthur


Diretório Superior

O diretório superior (upper directory) é identificado por .. (2 pontos).

Caso estiver no diretório /usr/local e quiser listar os arquivos do diretório /usr
você pode digitar, ls .. este recurso também pode ser usado para copiar, mover
arquivos/diretórios, etc.

Diretório Anterior

O diretório anterior é identificado por "-". É útil para retornar ao último diretório
usado.

Se você estiver no diretório /usr/local e digitar cd /lib, você pode retornar
facilmente para o diretório /usr/local usando cd -.
30                   Sistemas Operacionais                                Luiz Arthur


Estrutura básica de diretórios do Sistema Linux

O sistema GNU/Linux possui a seguinte estrutura básica de diretórios organizados
segundo o FHS:

/bin       Contém arquivos de programas do sistema que são usados com
           freqüência pelos usuários.

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

/mnt/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 do computador local.

/mnt/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.
31                  Sistemas Operacionais                             Luiz Arthur

/lost+found       Local para a gravação de arquivos/diretórios recuperados pelo
                  utilitário fsck. 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 freqüência
              pelos programas do sistema, e-mails, spool de impressora, cache,
              etc.
32                   Sistemas Operacionais                             Luiz Arthur


Nomeando Arquivos e Diretórios

No GNU/Linux, os arquivos e diretórios pode ter o tamanho de até 255 letras. Você
pode identifica-lo com uma extensão (um conjunto de letras separadas do nome do
arquivo por um ".").

Os programas executáveis do GNU/Linux, ao contrário dos programas de
DOS/Windows, não são executados a partir de extensões .exe, .com ou .bat. O
GNU/Linux (como todos os sistemas POSIX) usa a permissão de execução de arquivo
para identificar se um arquivo pode ou não ser executado.

Comandos
Comandos são ordens que passamos ao sistema operacional para executar uma
determinada tarefa.

Cada comando tem uma função específica, devemos saber a função de cada
comando e escolher o mais adequado para fazer o que desejamos, por exemplo:

                  ls     Mostra arquivos e diretórios
                  cd     Para mudar de diretório

É sempre usado um espaço depois do comando para separá-lo de uma opção ou
parâmetro que será passado para o processamento.
33                   Sistemas Operacionais                            Luiz Arthur


Um comando pode receber opções e parâmetros:

Opções

As opções são usadas para controlar como o comando será executado, por exemplo,
para fazer uma listagem mostrando o dono, grupo, tamanho dos arquivos você deve
digitar ls -l.

Opções podem ser passadas ao comando através de um "-" ou "--":

“-”
Opção identificada por uma letra. Podem ser usadas mais de uma opção com um
único hífen. O comando ls -l -a é a mesma coisa de ls -la.


“--”
Opção identificada por um nome. O comando ls --all é equivalente a ls -a.


Pode ser usado tanto "-" como "--", mas há casos em que somente "-" ou "--" esta
disponível.
34                   Sistemas Operacionais                            Luiz Arthur


Parâmetros

Um parâmetro identifica o caminho, origem, destino, entrada padrão ou saída
padrão que será passada ao comando.

Se você digitar: ls /usr/doc, o /usr/doc será o parâmetro passado ao comando ls,
neste caso queremos que ele liste os arquivos do diretório /usr/doc.

É normal errar o nome de comandos, mas não se preocupe, quando isto acontecer o
sistema mostrará a mensagem command not found (comando não encontrado) e
voltará ao aviso de comando. As mensagens de erro não fazem nenhum mal ao seu
sistema, somente dizem que algo deu errado para que você possa corrigir e
entender o que aconteceu.

Os comandos se encaixam em duas categorias: Comandos Internos e Comandos
Externos.
35                    Sistemas Operacionais                           Luiz Arthur


Comandos Internos

São comandos que estão localizados dentro do interpretador de comandos
(normalmente o Bash) e não no disco. Eles são carregados na memória RAM do
computador junto com o interpretador de comandos.

Quando é executado um comando, o interpretador de comandos verifica primeiro se
ele é um Comando Interno caso não seja é verificado se é um Comando Externo.

Exemplos de comandos internos são: cd, exit, echo, bg, fg, etc.

Comandos Externos

São comandos que estão localizados no disco. Os comandos são procurados no disco
usando o path (caminho/diretório no qual se encontra o comando) e executados
assim que encontrados.
36                   Sistemas Operacionais                              Luiz Arthur

Terminal Virtual (console)

Terminal (ou console) é o teclado e tela conectados em seu computador. O
GNU/Linux faz uso de sua característica multi-usuária usando os "terminais
virtuais". Um terminal virtual é uma segunda seção de trabalho completamente
independente de outras, que pode ser acessada no computador local ou
remotamente via telnet, rsh, rlogin, etc.

No GNU/Linux, em modo texto, você pode acessar outros terminais virtuais
segurando a tecla ALT e pressionando F1 a F6. Cada tecla de função corresponde a
um número de terminal do 1 ao 6 (o sétimo é usado por padrão pelo ambiente
gráfico X). O GNU/Linux possui mais de 63 terminais virtuais, mas apenas 6 estão
disponíveis inicialmente por motivos de economia de memória RAM (cada terminal
virtual ocupa aproximadamente 350 Kb de memória RAM, então desative a
quantidade que não estiver usando para liberar memória RAM para uso de outros
programas!).

Se estiver usando o modo gráfico, você deve segurar CTRL+ALT enquanto pressiona
uma tela de <F1> a <F6>.

Um exemplo prático: Se você estiver usando o sistema no Terminal 1 com o nome
"joao" e desejar entrar como "root" para instalar algum programa, segure ALT
enquanto pressiona <F2> para abrir o segundo terminal virtual e faça o login como
"root". Será aberta uma nova seção para o usuário "root" e você poderá retornar a
hora que quiser para o primeiro terminal pressionando ALT+<F1>.
37                   Sistemas Operacionais                             Luiz Arthur


Logout

Logout é o processo de saída do sistema, sem desligar, somente retira um usuário
logado (que fez o processo de login) no sistema.

A saída do sistema é feita pelos comandos logout, exit, das teclas CTRL+D, ou
quando o sistema é reiniciado ou desligado.

Sempre que um usuário entra no sistema ele faz o processo de login (passando
usuário e senha), porém quando por algum motivo o usuário for se distanciar do
computador é aconselhável que o usuário faça o processo de logout, isto ocorre
normalmente por motivos de segurança, caso contrário alguém pode, por exemplo,
se apoderar de seu usuário e senha!

Atenção, nunca em hipótese alguma deixe um usuário com login aberto, sempre
faça o logout principalmente se este usuário for o root. Caso alguém encontre o
usuário root logado no sistema e com um terminal virtual aberto fica extremamente
fácil apoderar-se de todo o sistema, desta forma, não adianta encher seu sistema
computacional com medidas de segurança (firewall, VPNs, etc) sendo que os
administradores deixam o login do usuário root a disposição de qualquer pessoa.
38                  Sistemas Operacionais                        Luiz Arthur


Bem agora sabemos:

 ●   Como iniciar o Linux com o LILO;
 ●   Que existem níveis de inicialização;
 ●   Que é necessário após iniciar o sistema o processo de login;
 ●   Acessar shells/consoles/terminais;
 ●   Que existem comando e esses contém opções e parâmetros;
 ●   Existem arquivos e diretórios;
 ●   Fazer logouts;
 ●   E por fim, desligar e ligar a máquina.


 Assim, iremos nos aprofundar em como administrar um sistema Linux,
     aprofundando os conhecimentos sobre este sistema operacional.
39                   Sistemas Operacionais                             Luiz Arthur


Gerenciamento de Arquivos

A necessidade de guardar informações em objetos que pudessem ser acessados
posteriormente de uma forma organizada vem de longe nos sistemas operacionais.
Para isso foram criados os sistemas de arquivos.

Nos sistemas de arquivos, de modo geral, os objetivos são organizar de forma
hierárquica os arquivos (informações) do sistema.

Todos os dados (arquivos e diretórios) são armazenados em sistemas de arquivos.
Um sistema de arquivo pode ser visto como um padrão de como os arquivos serão
gravados, armazenados, acessados, etc. Um sistema de arquivos é criado durante o
processo de formatação da unidade de armazenamento, existem vários tipos de
sistema de arquivos (ext2, ext3, reiselfs, ntfs, fat32, fat16, etc). Sistemas de
arquivos serão abordados posteriormente.

A identificação dos objetos de um sistema de arquivo no Linux é conhecida como
inode. Ele carrega as informações de onde o objeto está localizado no disco,
informações de segurança, data e hora de criação e última modificação, dentre
ourtas. Quando criamos um sistema de arquivo no Linux, cada dispositivo tem um
número finito de inodes que será diretamente proporcional ao número de arquivos
que este dispositivo poderá acomodar.
40                    Sistemas Operacionais                                Luiz Arthur


O sistema de arquivos Linux é semelhante a uma árvore de cabeça para baixo. No
topo da hierarquia do Linux existe um diretório raiz nomeado simplesmente de root
e identificado com o sinal “/”.

Atenção, não confunda diretório raiz (root) com o superusuário root.

A estrutura do sistema de arquivo Linux é definida por um padrão de mercado
chamado FHS. As distribuições não são obrigadas a seguir este padrão, mas elas
entendem a importância da localização dos arquivos e diretórios padronizados.


                                                                                bin
                                                /

                                                                              boot
                      proc

                                                                         dev
                          home
usuário1
                                  opt         mnt        lib           etc

   usuário2
41                         Sistemas Operacionais                                          Luiz Arthur


Gerenciamento Básico de Arquivos

Veremos agora alguns comandos para iniciarmos nossa atividade em um ambiente
Linux, a maioria deles é comum a qualquer UNIX, independente do fornecedor ou
distribuição.

- Listando o conteúdo de diretórios

O comando ls (list – listar) lista o conteúdo dos diretórios que informamos como
destino (alvo). Podemos utilizar o comando ls acompanhado ou não das opções de
listagem. O retorno do comando ls dependerá das opções fornecidas, porém será
sempre uma listagem dos arquivos, diretórios, links simbólicos (symbolic link) e
links fisícos (hard links) de um diretório qualquer.
                                                                    O $ ou o # na frente na linha
                                                                    simboliza o prompt de comando
Exemplo:                                                            e não faz parte de forma alguma
                                                                    do comando, assim o comando é
                                                                    apenas ls e não $ ls. Não digite
                                                                    $ ou # no comando!!!
$ ls /
bin    boot   dev   etc   home   lib   mnt   opt   proc   root   sbin   sys   tmp   usr   var

O comando ls têm a seguinte sintaxe:

$ ls [opções] [caminho/arquivo] [caminho1/arquivo1] ...
42                     Sistemas Operacionais                                       Luiz Arthur


onde:

   caminho/arquivo = Diretório/arquivo que será listado.
   caminho1/arquivo1 = Outro Diretório/arquivo que será listado.

Assim, podem ser feitas várias listagens de uma só vez.
                              Opções em negrito são importantes e as opções em negrito e
Opções do comando ls          sublinhadas são igualmente importantes e muito utilizadas.

-a, --all   Lista todos os arquivos (inclusive os ocultos) de um diretório.

-A, --almost-all Lista todos os arquivos (inclusive os ocultos) de um diretório,
exceto o diretório atual e o de nível anterior.

-B, --ignore-backups Não lista arquivos que terminam com ~ (Backup).

--color=PARAM Mostra os arquivos em cores diferentes, conforme o tipo de arquivo.
PARAM pode ser:

   never - Nunca lista em cores (mesma coisa de não usar o parâmetro --color).
   always - Sempre lista em cores conforme o tipo de arquivo.
   auto - Somente colore a listagem se estiver em um terminal.
43                     Sistemas Operacionais                                  Luiz Arthur


-d, --directory Lista os nomes dos diretórios ao invés do conteúdo.

-f Não classifica a listagem.

-F Insere um caracter após arquivos executáveis ('*'), diretórios ('/'), soquete ('='),
link simbólico ('@') e pipe ('|'). Seu uso é útil para identificar de forma fácil tipos de
arquivos nas listagens de diretórios.

-G, --no-group Oculta a coluna de grupo do arquivo.

-h, --human-readable Mostra o tamanho dos arquivos em Kbytes, Mbytes, Gbytes.

-H Faz o mesmo que -h, mas usa unidades de 1000 ao invés de 1024 para especificar
Kbytes, Mbytes, Gbytes.

-l Usa o formato longo para listagem de arquivos. Lista as permissões, data de
modificação, donos, grupos, etc.

-n Usa a identificação de usuário e grupo numérica ao invés dos nomes.

-L, --dereference Lista o arquivo original e não o link referente ao arquivo.

-o Usa a listagem longa sem os donos dos arquivos (mesma coisa que -lG).
44                   Sistemas Operacionais                           Luiz Arthur


-p Mesma coisa que -F, mas não inclui o símbolo '*' em arquivos executáveis. Esta
opção é típica de sistemas Linux.

-R Lista diretórios e sub-diretórios recursivamente.

--full-time Lista data e hora completa.

Classificação da listagem

A listagem pode ser classificada usando-se as seguintes opções:

-f   Não classifica, e usa -au para listar os arquivos.
-r   Inverte a ordem de classificação.
-c   Classifica pela data de alteração.
-X   Classifica pela extensão.
-U   Não classifica, lista os arquivos na ordem do diretório.

Uma listagem feita com o comando ls -la normalmente é mostrada da seguinte
maneira:

     -rwxr-xr--   1   gleydson user        8192 nov 4 16:00 teste
45                 Sistemas Operacionais                              Luiz Arthur


As explicações de cada parte da saída do comando ls:

-rwxr-xr--    São as permissões de acesso ao arquivo teste. A primeira letra (da
              esquerda) identifica o tipo do arquivo, se tiver um d é um diretório,
              se tiver um "-" é um arquivo normal.

1             Se for um diretório, mostra a quantidade de sub-diretórios existentes
              dentro dele. Caso for um arquivo, será 1.

gleydson      Nome do dono do arquivo teste.

user          Nome do grupo que o arquivo teste pertence.

8192          Tamanho do arquivo (em bytes).

nov           Mês da criação/ última modificação do arquivo.

4             Dia que o arquivo foi criado.

16:00         Hora em que o arquivo foi criado/modificado. Se o arquivo foi criado
              há mais de um ano, em seu lugar é mostrado o ano da criação do
              arquivo.

teste         Nome do arquivo.
46                         Sistemas Operacionais                                               Luiz Arthur
Exemplos com as opções ls mais utilizadas:

Para se ter uma listagem detalhada do diretório atual:

$ ls -l
total 0
drwx------          2 aula users 176 2006-03-19 16:51 Desktop

Uma listagem de todos os arquivos inclusive os ocultos:

$ ls -a
.     .bash_history       .dmrc           .kde       .local   .mcoprc      .screenrc    .Xauthority
..    Desktop             .ICEauthority   .kderc     .mcop    .qt          .ssh         .xsession-errors

Listar os arquivos arquivos do diretório raiz por ordem de alteração:

$ ls -c /
tmp    etc   dev    sys   proc   usr    opt   home   boot   root    var    bin   sbin   mnt   lib

Listar pela ordem da alteração inversa:

$ ls -cr /
lib    mnt   sbin   bin    var   root   boot   home   opt     usr   proc   sys   dev    etc   tmp

ou

$ ls -c -r /
lib    mnt   sbin   bin    var   root   boot   home   opt     usr   proc   sys   dev    etc   tmp
47                     Sistemas Operacionais                               Luiz Arthur


O comando ls assim como a maioria dos comandos possui a opção --help, que
normalmente exibe: sintaxe do comando, opções, parâmetros, dente outros.

Exemplo, de uma saída resumida do ls com à opção --help:
$ ls --help
Uso: ls [OPÇÃO]... [ARQUIVO]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuSUX nor --sort.

Argumentos obrigatórios para opções longas também o são para opções curtas
  -a, --all                  do not hide entries starting with .
  -A, --almost-all           do not list implied . and ..
      --author               print the author of each file
.
.
.
  -X                         sort alphabetically by entry extension
  -1                         list one file per line
      --help     display this help and exit
      --version output version information and exit

SIZE may be (or may be an integer optionally followed by) one of following:
kB 1000, K 1024, MB 1000*1000, M 1024*1024, and so on for G, T, P, E, Z, Y.

By default, color is not used to distinguish types of files. That is
equivalent to using --color=none. Using the --color option without the
optional WHEN argument is equivalent to using --color=always. With
--color=auto, color codes are output only if standard output is connected
to a terminal (tty).

Comunicar `bugs' para <bug-coreutils@gnu.org>.
48                Sistemas Operacionais                              Luiz Arthur


cd

O comando cd é utilizado para entrar em um diretório. É preciso ter a permissão de
execução para entrar em um diretório.

cd [diretório]

onde:

diretório – é o nome/caminho do diretório que deseja-se entrar.

Exemplos:

Usando o comando cd sem parâmetros ou cd ~, você irá ao seu diretório de usuário
(localizado no diretório /home).

cd /   retornará ao diretório raíz.
cd -   retornará ao diretório anteriormente acessado.
cd .. sobe um diretório, ou seja, onde você esta um nível mais próximo do /.
cd ../[diretório] sobe um diretório e entra imediatamente no próximo (por
exemplo, quando você está em /usr/sbin, você digita cd ../bin, o comando cd
retorna um diretório (/usr) e entra imediatamente no diretório bin (/usr/bin).
cd /usr/doc entra no diretório /usr/doc.
cd /tmp entra no diretório /tmp.
49                   Sistemas Operacionais                            Luiz Arthur


pwd

O comando pwd mostra o nome e caminho do diretório atual, que o usuário se
encontra.

Você pode usar o comando pwd para verificar em qual diretório se encontra caso
seu aviso de comandos (no prompt) não mostre isso.

Exemplo:

aula@darkstar$ pwd
/usr/doc

O comando pwd é muito útil para ajudar o usuário a se localizar quando este faz
muitas entradas e saídas dos diretórios e subdiretórios com o comando cd. Um bom
conselho é sempre passar como parâmetro a comandos o caminho inteiro onde se
encontra o diretório no qual se deseja chegar e não ir entrando um por um.

Exemplo, utilizar:

$ cd /usr/doc

ao invés de:
$ cd /usr
$ cd doc
50                   Sistemas Operacionais                             Luiz Arthur


mkdir

O comando mkdir cria um diretório no sistema. Um diretório é usado para
armazenar arquivos ou outros diretórios. O diretório pode ser entendido como uma
pasta onde você guarda seus papeis (arquivos). Como uma pessoa organizada, você
utilizará uma pastas 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   É o caminho onde o diretório será criado.
diretório É o 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).
51                   Sistemas Operacionais                              Luiz Arthur


rmdir

O 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   É o caminho do diretório que será removido.
diretório Nome do diretório que será removido.

Para remover um diretório é necessário que esteja-se um nível acima do diretório(s)
que será(ão) removido(s).

Para remover diretórios que contenham arquivos, use o comando rm com a opção -r.

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

Atenção, este comando é muito perigoso, pois ele apaga os diretórios (e arquivos
desse diretório com a opção -r), por isso sempre passe o caminho exato que será
apagado para que não haja erros, lembrando que o usuário root pode apagar todo o
sistema com o comando rmdir.
52                     Sistemas Operacionais                           Luiz Arthur


Os comandos de listagem e manipulação de diretórios devem ser estudados a fundo
por todos que pretendem ser administradores de sistemas e é somente praticando
que se adquire experiencia e propriedade para se trabalhar com diretórios.

Atividade 2

2.1 Liste o diretório /root.

2.2 Liste mostrando todos os arquivos e atributos de forma detalhada do diretório
/tmp.

2.3 Entre dentro do diretório /usr/doc e depois liste os arquivos apresentando o
tamanho (de forma compreensível pelos humanos) dos diretórios e arquivos
presentes neste diretório.

2.4 Crie dentro do diretório /tmp um diretório chamado atividade2.

2.5 Crie outro diretório chamado Atividade2 dentro do diretório /tmp, e depois
crie um subdiretório chamado sub1 e outro chamado sub2 dentro do subdiretório
Atividade2.

2.6 Apague o diretório /tmp/atividade2.

2.7 Apague o diretório /tmp/Atividade2 e todos os seus subdiretórios.
53                   Sistemas Operacionais                              Luiz Arthur


Comandos para manipulação de Arquivos

Os arquivos são agrupamentos de bytes que podem ser do tipo texto ou binário.
Assim como ocorre com os diretórios os arquivos são muito impotantes para o
sistema, desta forma, saber mante-los é muito importante para um administrador de
sistema, a seguir serão mostrados alguns comando para a manipulação e
gerenciamento de arquivos, alguns desses comando também se aplicam a diretórios
que nada mais são do que arquivos um pouco diferentes.

cat

O comando cat mostra o conteúdo de um arquivo binário ou texto.

cat [opções] [diretório/arquivo] [diretório1/arquivo1]

diretório/arquivo     Localização do arquivo que deseja visualizar o conteúdo.

Opções:

-n, --number Mostra o número das linhas enquanto o conteúdo do arquivo é
             mostrado.

-s, --squeeze-blank Não mostra mais que uma linha em branco entre um
                    parágrafo e outro.
54                   Sistemas Operacionais                              Luiz Arthur


O comando cat concatena arquivos, imprime seu conteúdo na tela e ainda pode
receber texto digitado pelo teclado e enviar para um arquivo.

Exemplos:

Para criar um arquivo chamado teste.txt execute o comando:

$ cat > teste.txt
Olá Mundo Linux

Agora você pode digitar qualquer texto. Quando terminar, precione as teclas Crtl+d
em uma linha vazia para finalizar a entrada de dados e salvar o arquivo teste.txt

Para ver o conteúdo do arquivo teste.txt execute:

$ cat teste.txt
Olá Mundo Linux

O cat também pode servir para concatenar arquivos. No comando abaixo o conteúdo
de texto.txt é subustituido pelo texto1.txt.
$ cat texto1.txt > texto.txt

Para adicionar o conteúdo e texto1.txt no final do arquivo texto.txt o comando é:
$ cat texto1.txt >> texto.txt
55                Sistemas Operacionais                             Luiz Arthur


rm

O comando 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-se 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 fazer perguntas.
-- arquivo            Remove arquivos/diretórios que contém caracteres especiais.

O separador "--" funciona com todos os comandos do shell e permite que os
caracteres especiais como "*", "?", "-", etc. sejam interpretados como caracteres
comuns.
56                    Sistemas Operacionais                              Luiz Arthur


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 do uso do comando rm:

rm teste.txt Apaga o arquivo teste.txt no diretório atual.

rm *.txt       Apaga todos os arquivos do diretório atual que terminam com .txt.

rm *.txt teste.novo       Apaga todos os arquivos do diretório atual que terminam
                          com .txt e também o arquivo teste.novo.

rm -rf /tmp/teste/*        Apaga todos os arquivos e sub-diretórios do diretório
                          /tmp/teste mas mantém o sub-diretório /tmp/teste.

rm -rf /tmp/teste          Apaga todos os arquivos e sub-diretórios do diretório
                          /tmp/teste, inclusive /tmp/teste.

rm -f -- --arquivo-- - Remove o arquivo de nome - -arquivo--.
57                Sistemas Operacionais                                Luiz Arthur


cp

O comando cp copia os arquivos para outros arquivos ou para diretórios. O comando
cp pode copiar um arquivo ou múltiplos arquivos.

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

onde:

origem     Arquivo que será copiado. Podem ser especificados mais de um arquivo
para ser copiado usando "Curingas" (veremos curingas a seguir).

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 e dispositivos.
58                Sistemas Operacionais                                  Luiz Arthur


-v, --verbose         Mostra os arquivos enquanto estão sendo copiados.

-s, --simbolic-link Cria link simbólico ao invés de copiar.

-l, --link            Faz o link no destino ao invés de copiar os arquivos.

-p, --preserve        Preserva atributos do arquivo, se for possível.

-u, --update          Copia somente se o arquivo de origem é mais novo que o
                      arquivo de destino ou quando o arquivo de destino não
                      existe.

-x                    Não copia arquivos que estão localizados em um sistema de
                      arquivos diferente de onde a cópia iniciou.
59                  Sistemas Operacionais                                  Luiz Arthur


O comando cp copia 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 para teste1.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 /bin para o diretório em que
              nos encontramos no momento.

cp -R /bin /tmp       Copia o diretório /bin e 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 /bin para /tmp.
60                Sistemas Operacionais                             Luiz Arthur


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.

-u, --update         Move somente arquivos antigos, ou novos arquivos.
61                  Sistemas Operacionais                            Luiz Arthur


O comando mv copia 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 para teste1.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 copía.
62                      Sistemas Operacionais                                   Luiz Arthur
Atividade 3

3.1 Crie um arquivo texto chamado atividade3.txt, e coloque o conteúdo: “Ola mundo
cruel”

3.2 Crie um arquivo texto chamado Atividade3.1.txt, e coloque o conteúdo: “OLA MUNDO
CRUEL”.

3.3 Visualise o conteúdo dos arquivos atividade3.txt e Atividade3.1.txt.

3.4 Crie um arquivo chamado chamado linux.txt, e coloque o conteúdo: “do Linux”.

3.5 Subistituá o conteúdo do arquivo linux.txt ao arquivo atividade3.txt e visualize os
arquivos.

3.6 Acrescente o conteudo do arquivo linux.txt ao arquivo Atividade3.1.txt e visualize os
arquivos.

3.7 Crie um diretório chamado aula3 e copie o arquivo atividade3.txt para este diretório.

3.8 Mova o arquivo Atividade3.1.txt para o diretório aula3.

3.9 Copie o conteudo do diretório aula3 para o diretório /tmp

3.10 Mova todos os arquivos txt e o diretório aula3 bem como seu conteúdo para o diretório
/tmp/atividade3/
63                    Sistemas Operacionais                               Luiz Arthur


Curingas

Curingas (ou referência global) é um recurso usado para especificar um ou mais
arquivos ou diretórios do sistema de uma só vez. Este é um recurso permite que
você faça a filtragem do que será listado, copiado, apagado, etc.

São usados 4 tipos de curingas no GNU/Linux:

"*" - Faz referência a um nome completo/restante de um arquivo/diretório.
 "?" - Faz referência a uma letra naquela posição.

[padrão] - Faz referência a uma faixa de caracteres de um arquivo/diretório.

Padrão pode ser:
[a-z][0-9] - Faz referência a caracteres de a até z seguido de um caracter de 0 até
9.

[a,z][1,0] - Faz a referência aos caracteres a e z seguido de um caracter 1 ou 0
naquela posição.

[a-z,1,0] - Faz referência a intervalo de caracteres de a até z ou 1 ou 0 naquela
posição.
64                   Sistemas Operacionais                            Luiz Arthur


A procura de caracteres é "Case Sensitive" assim se você deseja que sejam
localizados todos os caracteres alfabéticos você deve usar [a-zA-Z].

Caso a expressão seja precedida por um ^, faz referência a qualquer caracter
exceto o da expressão. Por exemplo [^abc] faz referência a qualquer caracter
exceto a, b e c.

Vamos dizer que tenha 5 arquivo no diretório /usr/teste: teste1.txt, teste2.txt,
teste3.txt, teste4.new, teste5.new.

Caso deseje listar todos os arquivos do diretório /usr/teste você pode usar o
coringa "*" para especificar todos os arquivos do diretório:

$ cd /usr/teste e ls * ou ls /usr/teste/*
65                  Sistemas Operacionais                            Luiz Arthur


Agora para listar todos os arquivos teste1.txt, teste2.txt, teste3.txt com
excessão de teste4.new, teste5.new, podemos usar inicialmente 3 métodos:

Usando o comando ls *.txt que pega todos os arquivos que começam com
qualquer nome e terminam com .txt.

Usando o comando ls teste?.txt, que pega todos os arquivos que começam com o
nome teste, tenham qualquer caracter no lugar do coringa ? e terminem com .txt.

Com o exemplo acima teste*.txt também faria a mesma coisa, mas se também
tivéssemos um arquivo chamado teste10.txt este também seria listado.

Usando o comando ls teste[1-3].txt, que pega todos os arquivos que começam
com o nome teste, tenham qualquer caracter entre o número 1-3 no lugar da 6a
letra e terminem com .txt. Neste caso se obtém uma filtragem mais exata, pois o
coringa ? especifica qualquer caracter naquela posição e [] especifica números,
letras ou intervalo que será usado.
66                   Sistemas Operacionais                         Luiz Arthur


Agora para listar somente teste4.new e teste5.new podemos usar os seguintes
métodos:

ls *.new que lista todos os arquivos que terminam com .new

ls teste?.new que lista todos os arquivos que começam com teste, contenham
qualquer caracter na posição do coringa ? e terminem com .new.

ls teste[4,5].* que lista todos os arquivos que começam com teste contenham
números de 4 e 5 naquela posição e terminem com qualquer extensão.
67   Sistemas Operacionais   Luiz Arthur


AA

Más contenido relacionado

La actualidad más candente

2. conceito de processos
2. conceito de processos2. conceito de processos
2. conceito de processosvini_campos
 
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Leinylson Fontinele
 
Linux - Sobre a Disciplina + Introdução ao Linux
Linux - Sobre a Disciplina + Introdução ao LinuxLinux - Sobre a Disciplina + Introdução ao Linux
Linux - Sobre a Disciplina + Introdução ao LinuxFrederico Madeira
 
Arquitetura básica de um computador
Arquitetura básica de um computadorArquitetura básica de um computador
Arquitetura básica de um computadorNécio de Lima Veras
 
Aula 2 - Sistemas operacionais - Windows
Aula 2 - Sistemas operacionais - WindowsAula 2 - Sistemas operacionais - Windows
Aula 2 - Sistemas operacionais - WindowsLucasMansueto
 
O protocolo ftp (file transfer protocol)
O protocolo ftp (file transfer protocol)O protocolo ftp (file transfer protocol)
O protocolo ftp (file transfer protocol)ErikHR
 
Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)Leinylson Fontinele
 
Sistema Operativos
Sistema OperativosSistema Operativos
Sistema OperativosBugui94
 
222097384 aulas-de-rede-tipos-de-servidores
222097384 aulas-de-rede-tipos-de-servidores222097384 aulas-de-rede-tipos-de-servidores
222097384 aulas-de-rede-tipos-de-servidoresMarco Guimarães
 
Sistema Operativo Open Source
Sistema Operativo Open SourceSistema Operativo Open Source
Sistema Operativo Open SourceDiogo Silva
 
Gerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas OperacionaisGerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas OperacionaisLeandro Júnior
 
Sistema operativo servidor
Sistema operativo servidorSistema operativo servidor
Sistema operativo servidorSandu Postolachi
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threadsSilvino Neto
 
Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Leinylson Fontinele
 

La actualidad más candente (20)

2. conceito de processos
2. conceito de processos2. conceito de processos
2. conceito de processos
 
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
 
Linux - Sobre a Disciplina + Introdução ao Linux
Linux - Sobre a Disciplina + Introdução ao LinuxLinux - Sobre a Disciplina + Introdução ao Linux
Linux - Sobre a Disciplina + Introdução ao Linux
 
Linux
LinuxLinux
Linux
 
Arquitetura básica de um computador
Arquitetura básica de um computadorArquitetura básica de um computador
Arquitetura básica de um computador
 
Aula 2 - Sistemas operacionais - Windows
Aula 2 - Sistemas operacionais - WindowsAula 2 - Sistemas operacionais - Windows
Aula 2 - Sistemas operacionais - Windows
 
O protocolo ftp (file transfer protocol)
O protocolo ftp (file transfer protocol)O protocolo ftp (file transfer protocol)
O protocolo ftp (file transfer protocol)
 
Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)
 
Linux para leigos
Linux para leigos Linux para leigos
Linux para leigos
 
Sistema Operativos
Sistema OperativosSistema Operativos
Sistema Operativos
 
Aula 10 Software - sistema operacional e aplicativos
Aula 10 Software - sistema operacional e aplicativosAula 10 Software - sistema operacional e aplicativos
Aula 10 Software - sistema operacional e aplicativos
 
Comandos linux
Comandos linuxComandos linux
Comandos linux
 
222097384 aulas-de-rede-tipos-de-servidores
222097384 aulas-de-rede-tipos-de-servidores222097384 aulas-de-rede-tipos-de-servidores
222097384 aulas-de-rede-tipos-de-servidores
 
Sistema Operativo Open Source
Sistema Operativo Open SourceSistema Operativo Open Source
Sistema Operativo Open Source
 
Gerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas OperacionaisGerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas Operacionais
 
Sistema operativo servidor
Sistema operativo servidorSistema operativo servidor
Sistema operativo servidor
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threads
 
Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)
 
História do windows
História do windowsHistória do windows
História do windows
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 

Destacado

Destacado (20)

Sistemas Operacionais (Windows X Linux)
Sistemas Operacionais (Windows X Linux)Sistemas Operacionais (Windows X Linux)
Sistemas Operacionais (Windows X Linux)
 
Introdução ao Linux
Introdução ao LinuxIntrodução ao Linux
Introdução ao Linux
 
Aula 04 informática aplicada - comando básicos
Aula 04  informática aplicada - comando básicosAula 04  informática aplicada - comando básicos
Aula 04 informática aplicada - comando básicos
 
Linux comandos para arquivos e diretórios
Linux   comandos para arquivos e diretóriosLinux   comandos para arquivos e diretórios
Linux comandos para arquivos e diretórios
 
Comandos linux
Comandos linuxComandos linux
Comandos linux
 
Sistemas operacionais linux
Sistemas operacionais linuxSistemas operacionais linux
Sistemas operacionais linux
 
Unix
UnixUnix
Unix
 
Exploracao do teclado do computador
Exploracao do teclado do computadorExploracao do teclado do computador
Exploracao do teclado do computador
 
Teclado
TecladoTeclado
Teclado
 
Funções do Teclado
Funções do TecladoFunções do Teclado
Funções do Teclado
 
Vamos aprender a usar o mouse
Vamos aprender a usar o mouseVamos aprender a usar o mouse
Vamos aprender a usar o mouse
 
Principais teclas do teclado do computador
Principais teclas do teclado do computadorPrincipais teclas do teclado do computador
Principais teclas do teclado do computador
 
Teclado- ESTUDO DAS TECLAS E FUNÇÕES BÁSICAS
Teclado- ESTUDO DAS TECLAS E FUNÇÕES BÁSICASTeclado- ESTUDO DAS TECLAS E FUNÇÕES BÁSICAS
Teclado- ESTUDO DAS TECLAS E FUNÇÕES BÁSICAS
 
Tipos de Sistema operacional
Tipos de Sistema operacionalTipos de Sistema operacional
Tipos de Sistema operacional
 
Tipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisTipos de Sistemas Operacionais
Tipos de Sistemas Operacionais
 
Iron Wars
Iron WarsIron Wars
Iron Wars
 
Libro resumenes lacame 2014
Libro resumenes lacame 2014Libro resumenes lacame 2014
Libro resumenes lacame 2014
 
Publicidade e propaganda
Publicidade e propagandaPublicidade e propaganda
Publicidade e propaganda
 
Hotelaria
HotelariaHotelaria
Hotelaria
 
Ciˆncias humanas e suas tecnologias parte ii
Ciˆncias humanas e suas tecnologias   parte iiCiˆncias humanas e suas tecnologias   parte ii
Ciˆncias humanas e suas tecnologias parte ii
 

Similar a Sistemas Operacionais - Gnu/Linux

Similar a Sistemas Operacionais - Gnu/Linux (20)

Linux
LinuxLinux
Linux
 
1 - Introdução ao linux
1 - Introdução ao linux1 - Introdução ao linux
1 - Introdução ao linux
 
AdministraçãO Gnu Linux
AdministraçãO Gnu LinuxAdministraçãO Gnu Linux
AdministraçãO Gnu Linux
 
Apresentação Final
Apresentação FinalApresentação Final
Apresentação Final
 
01.01 - Introdução ao Linux.pdf
01.01 - Introdução ao Linux.pdf01.01 - Introdução ao Linux.pdf
01.01 - Introdução ao Linux.pdf
 
apostila linux
apostila linuxapostila linux
apostila linux
 
Módulo 6 - Gnu/Linux
Módulo 6 - Gnu/LinuxMódulo 6 - Gnu/Linux
Módulo 6 - Gnu/Linux
 
História do linux ppt
História do linux pptHistória do linux ppt
História do linux ppt
 
Oficinalinux Comotudo Começou
Oficinalinux Comotudo ComeçouOficinalinux Comotudo Começou
Oficinalinux Comotudo Começou
 
Linux
LinuxLinux
Linux
 
Linux
LinuxLinux
Linux
 
Sistema operacional-1-ano-de-informatica-completa
Sistema operacional-1-ano-de-informatica-completaSistema operacional-1-ano-de-informatica-completa
Sistema operacional-1-ano-de-informatica-completa
 
Palestra Trisquel GNU/Linux: Uma Distribuição 100% Livre (FLISOL 2016)
Palestra Trisquel GNU/Linux: Uma Distribuição 100% Livre (FLISOL 2016)Palestra Trisquel GNU/Linux: Uma Distribuição 100% Livre (FLISOL 2016)
Palestra Trisquel GNU/Linux: Uma Distribuição 100% Livre (FLISOL 2016)
 
linux: um pouco sobre ele e como aprender .pdf
linux: um pouco sobre ele e como aprender .pdflinux: um pouco sobre ele e como aprender .pdf
linux: um pouco sobre ele e como aprender .pdf
 
snto
sntosnto
snto
 
Linux
LinuxLinux
Linux
 
Cent-OS - Sistema Operacional
Cent-OS - Sistema OperacionalCent-OS - Sistema Operacional
Cent-OS - Sistema Operacional
 
Linux
LinuxLinux
Linux
 
Mini-curso de Linux na CPRecife2
Mini-curso de Linux na CPRecife2Mini-curso de Linux na CPRecife2
Mini-curso de Linux na CPRecife2
 
A.S.O 2 - Linux
A.S.O 2 - LinuxA.S.O 2 - Linux
A.S.O 2 - Linux
 

Más de Luiz Arthur

Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?Luiz Arthur
 
Desafios da cibersegurança - ontem, hoje e amanhã
Desafios da cibersegurança - ontem, hoje e amanhãDesafios da cibersegurança - ontem, hoje e amanhã
Desafios da cibersegurança - ontem, hoje e amanhãLuiz Arthur
 
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...Luiz Arthur
 
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...Luiz Arthur
 
Detecção de alertas de segurança em redes de computadores usando redes sociai...
Detecção de alertas de segurança em redes de computadores usando redes sociai...Detecção de alertas de segurança em redes de computadores usando redes sociai...
Detecção de alertas de segurança em redes de computadores usando redes sociai...Luiz Arthur
 
Evaluating the Utilization of Twitter Messages as a Source of Security Alerts
Evaluating the Utilization of Twitter Messages as a Source of Security AlertsEvaluating the Utilization of Twitter Messages as a Source of Security Alerts
Evaluating the Utilization of Twitter Messages as a Source of Security AlertsLuiz Arthur
 
Análise de Mensagens de Segurança Postadas no Twitter
Análise de Mensagens de Segurança Postadas no TwitterAnálise de Mensagens de Segurança Postadas no Twitter
Análise de Mensagens de Segurança Postadas no TwitterLuiz Arthur
 
match making e propaganda na web
match making e propaganda na webmatch making e propaganda na web
match making e propaganda na webLuiz Arthur
 
Mineração de dados no Gmail e Facebook
Mineração de dados no Gmail e FacebookMineração de dados no Gmail e Facebook
Mineração de dados no Gmail e FacebookLuiz Arthur
 
Invasao kernel.org
Invasao kernel.orgInvasao kernel.org
Invasao kernel.orgLuiz Arthur
 
Núcleo do Linux (Kernel Linux)
Núcleo do Linux (Kernel Linux)Núcleo do Linux (Kernel Linux)
Núcleo do Linux (Kernel Linux)Luiz Arthur
 
Palestra Ferramentas de Segurança Open Source v.2
Palestra Ferramentas de Segurança Open Source v.2Palestra Ferramentas de Segurança Open Source v.2
Palestra Ferramentas de Segurança Open Source v.2Luiz Arthur
 
Palestra mau uso da tecnologia
Palestra mau uso da tecnologiaPalestra mau uso da tecnologia
Palestra mau uso da tecnologiaLuiz Arthur
 
UTFPR-inventario-patrimonio-laboratorio-e105
UTFPR-inventario-patrimonio-laboratorio-e105UTFPR-inventario-patrimonio-laboratorio-e105
UTFPR-inventario-patrimonio-laboratorio-e105Luiz Arthur
 
01 programação - introdução computação
01 programação - introdução computação01 programação - introdução computação
01 programação - introdução computaçãoLuiz Arthur
 
Bibliografia recomendada - programação C
Bibliografia recomendada - programação CBibliografia recomendada - programação C
Bibliografia recomendada - programação CLuiz Arthur
 
Bibliografia recomendada-programacao-python
Bibliografia recomendada-programacao-pythonBibliografia recomendada-programacao-python
Bibliografia recomendada-programacao-pythonLuiz Arthur
 
Bibliografia recomendada-seguranca
Bibliografia recomendada-segurancaBibliografia recomendada-seguranca
Bibliografia recomendada-segurancaLuiz Arthur
 
Bibliografia recomendada-redes
Bibliografia recomendada-redesBibliografia recomendada-redes
Bibliografia recomendada-redesLuiz Arthur
 

Más de Luiz Arthur (20)

Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
 
Desafios da cibersegurança - ontem, hoje e amanhã
Desafios da cibersegurança - ontem, hoje e amanhãDesafios da cibersegurança - ontem, hoje e amanhã
Desafios da cibersegurança - ontem, hoje e amanhã
 
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
 
NAPSOL
NAPSOLNAPSOL
NAPSOL
 
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
 
Detecção de alertas de segurança em redes de computadores usando redes sociai...
Detecção de alertas de segurança em redes de computadores usando redes sociai...Detecção de alertas de segurança em redes de computadores usando redes sociai...
Detecção de alertas de segurança em redes de computadores usando redes sociai...
 
Evaluating the Utilization of Twitter Messages as a Source of Security Alerts
Evaluating the Utilization of Twitter Messages as a Source of Security AlertsEvaluating the Utilization of Twitter Messages as a Source of Security Alerts
Evaluating the Utilization of Twitter Messages as a Source of Security Alerts
 
Análise de Mensagens de Segurança Postadas no Twitter
Análise de Mensagens de Segurança Postadas no TwitterAnálise de Mensagens de Segurança Postadas no Twitter
Análise de Mensagens de Segurança Postadas no Twitter
 
match making e propaganda na web
match making e propaganda na webmatch making e propaganda na web
match making e propaganda na web
 
Mineração de dados no Gmail e Facebook
Mineração de dados no Gmail e FacebookMineração de dados no Gmail e Facebook
Mineração de dados no Gmail e Facebook
 
Invasao kernel.org
Invasao kernel.orgInvasao kernel.org
Invasao kernel.org
 
Núcleo do Linux (Kernel Linux)
Núcleo do Linux (Kernel Linux)Núcleo do Linux (Kernel Linux)
Núcleo do Linux (Kernel Linux)
 
Palestra Ferramentas de Segurança Open Source v.2
Palestra Ferramentas de Segurança Open Source v.2Palestra Ferramentas de Segurança Open Source v.2
Palestra Ferramentas de Segurança Open Source v.2
 
Palestra mau uso da tecnologia
Palestra mau uso da tecnologiaPalestra mau uso da tecnologia
Palestra mau uso da tecnologia
 
UTFPR-inventario-patrimonio-laboratorio-e105
UTFPR-inventario-patrimonio-laboratorio-e105UTFPR-inventario-patrimonio-laboratorio-e105
UTFPR-inventario-patrimonio-laboratorio-e105
 
01 programação - introdução computação
01 programação - introdução computação01 programação - introdução computação
01 programação - introdução computação
 
Bibliografia recomendada - programação C
Bibliografia recomendada - programação CBibliografia recomendada - programação C
Bibliografia recomendada - programação C
 
Bibliografia recomendada-programacao-python
Bibliografia recomendada-programacao-pythonBibliografia recomendada-programacao-python
Bibliografia recomendada-programacao-python
 
Bibliografia recomendada-seguranca
Bibliografia recomendada-segurancaBibliografia recomendada-seguranca
Bibliografia recomendada-seguranca
 
Bibliografia recomendada-redes
Bibliografia recomendada-redesBibliografia recomendada-redes
Bibliografia recomendada-redes
 

Sistemas Operacionais - Gnu/Linux

  • 1. 1 Sistemas Operacionais Luiz Arthur Sistema Operacional Linux O Linux é uma versão gratuita distribuída do primeiro UNIX desenvolvido por Linus Torvalds na Universidade Helsinque na Finlândia em 1991. Foi originalmente desenvolvido a partir do desejo de Linus, em trabalhar com um sistema mais completo que o Minix que era um pequeno sistema Unix criado para fins didáticos pelo renomado professor Andrew Tanenbaum. No Linux o Kernel (núcleo , com as funções básicas do sistema operacional) mais o conjunto de ferramentas GNU compõem o Sistema Operacional. O kernel que é a base principal de um sistema operacional, poderá ser construído ou moldado de acordo com a configuração do seu computador e dos periféricos que possui. O código fonte do Kernel do Linux é liberado e licenciado como Free Software (software livre) o aviso de copyright do Kernel feito por Linus descreve detalhadamente que nem mesmo o próprio Linus Torvalds pode fechar o sistema para ser usado apenas comercialmente. Isto quer dizer que, não é necessário pagar nada para usar o Linux, e não é crime fazer cópias para instalar em outros computadores. O Linux segue o padrão POSIX que é o mesmo usado por sistemas UNIX e suas variantes. Assim, aprendendo o Linux você não encontrará muita dificuldade em operar um sistema do tipo UNIX, FreeBSD, HPUX, SunOS, etc., bastando apenas aprender alguns detalhes encontrados em cada sistema.
  • 2. 2 Sistemas Operacionais Luiz Arthur Software Livre - GNU O projeto GNU trás o objetivo de desenvolver um sistema operacional Unix-like totalmente livre. Livre se refere à liberdade, e não ao preço, isto significa que você está livre para executar, distribuir, estudar, mudar e melhorar o software. Um sistema Unix-like consiste de muitos programas diferentes. Por exemplo, X Window, TeX, Berkeley network utilities, GNU Emacs, compilador GNU C, GNU C library, Bash, Ghostscript, etc. O projeto GNU não é somente o desenvolvimento e a distribuição de alguns softwares livres. O coração do projeto GNU é a idéia que todo software deve ser livre, e que a liberdade do usuário vale a pena ser defendida. O projeto GNU visa também que a idéia de liberdade permita que os usuários ajudem-se mutuamente, evoluindo assim o nível de conhecimento do usuário, bem como, do software. Em 1992, o GNU já havia encontrado ou criado todos os componentes principais do sistema exceto o kernel. Então o kernel do Linux tornou-se disponível, mas o kernel do Linux não foi escrito para o projeto GNU, mas o Linux e quase completamente GNU e desta forma fizeram uma combinação útil. Ou seja, o GNU precede o Linux. Ironicamente, a popularidade do Linux normalmente desmerece o método de comunicar a idéia GNU.
  • 3. 3 Sistemas Operacionais Luiz Arthur Para rodar o Linux é necessário apenas, um computador 386 SX com 2 MB de memória (para um kernel até a série 2.2.x) ou 4MB (para kernels 2.4 e superiores) e 40MB disponíveis em seu disco rígido para uma instalação básica e funcional. O código fonte aberto do kernel Linux permite que qualquer pessoa veja como o sistema funciona (útil para aprendizado), corrija algum problema ou faça alguma sugestão de melhoria. Outro ponto em que o Linux se destaca é o suporte oferecido aos dispositivos de última geração, ou ainda aos dispositivos mais antigos (sendo que, a maioria dos dispositivos ultrapassados são suportados pelo Kernel). Este é um ponto de tomadas de decisão forte para empresas que desejam manter seus micros em funcionamento e pretendem investir em avanços tecnológicos com as máquinas que possui. O suporte ao sistema também se destaca por ser mais eficiente e rápido do que qualquer programa sistema comercial disponível no mercado. Existem centenas de consultores especializados espalhados ao redor do mundo. Você pode se inscrever em listas de discussões e relatar suas dúvidas ou alguma falha do Linux, e sua mensagem será vista por centenas de usuários na Internet e algum desses usuários irá te ajudar ou avisará as pessoas responsáveis sobre a falha encontrada para devida correção.
  • 4. 4 Sistemas Operacionais Luiz Arthur Algumas Características do Linux É livre e desenvolvido voluntariamente por programadores experientes, hackers e contribuidores espalhados ao redor do mundo. A contribuição de voluntários permite a melhoria e crescimento deste sistema operacional; Convive sem nenhum tipo de conflito com outros sistemas operacionais (com o DOS, Windows, OS/2, FreeBSD, etc) no mesmo computador; Multitarefa real; Multiusuário; Suporte a nomes extensos de arquivos e diretórios (255 caracteres); Conectividade e suporte a outros tipos de plataformas como Apple, Sun, Macintosh, Sparc, Alpha, PowerPc, ARM, Unix, Windows, DOS, etc; Proteção entre processos executados na memória RAM; Suporte a mais de 63 terminais virtuais (consoles); Modularização - O GNU/Linux somente carrega para a memória o que é usado durante o processamento, liberando totalmente a memória assim que o programa/dispositivo é finalizado;
  • 5. 5 Sistemas Operacionais Luiz Arthur Algumas Características do Linux Devido a modularização, os drivers dos periféricos e recursos do sistema podem ser carregados e removidos completamente da memória RAM a qualquer momento; Não há a necessidade de se reiniciar o sistema após a modificar a configuração de qualquer periférico ou parâmetros de rede; Não precisa de um processador potente para funcionar. O crescimento e novas versões do sistema (Kernel) não provocam lentidão, pelo contrário, a cada nova versão os desenvolvedores procuram buscar maior compatibilidade, acrescentar recursos úteis e melhor desempenho do sistema; Não é requerida uma licença para seu uso. O GNU/Linux é licenciado de acordo com os termos da GPL; Acessa corretamente discos formatados pelo DOS, Windows, Novell, OS/2, NTFS, SunOS, Amiga, Atari, Mac, etc; Utiliza permissões de acesso a arquivos, diretórios e programas em execução na memória RAM;
  • 6. 6 Sistemas Operacionais Luiz Arthur Algumas Características do Linux O Linux não é vulnerável vírus! Devido a separação de privilégios entre processos e respeitadas as recomendações padrão de política de segurança e uso de contas privilegiadas, programas como vírus tornam-se inúteis pois tem sua ação limitada pelas restrições de acesso do sistema de arquivos e execução; Rede TCP/IP mais rápida que no rWindows e tem sua pilha de protocolos constantemente melhorada; Roda aplicações DOS através do DOSEMU, QEMU, BOCHS. Roda também, aplicações Windows através do WINE; Suporte a diversos dispositivos, tal como: infravermelho, rede via rádio amador, dispositivos Plug-and-Play, USB, Fireware, Wireless, etc; Suporte nativo a firewalls de alta qualidade, com grande poder de segurança e de graça; Roteamento estático e dinâmico de pacotes da rede TCP/IP; Possui recursos para atender a mais de um endereço IP na mesma placa de rede; Entre incontáveis outras características.
  • 7. 7 Sistemas Operacionais Luiz Arthur Distribuições do Linux Só o kernel do Linux não é suficiente para se ter uma sistema funcional, mas é o principal. Existem grupos de pessoas, empresas e organizações que decidem "distribuir" o Linux junto com outros programas essenciais (como por exemplo editores gráficos, planilhas, bancos de dados, ambientes de programação, formatação de documentos, firewalls, etc). Este é o significado básico de distribuição. Cada distribuição tem sua característica própria, tal como: sistema de instalação, localização de programas, nomes de arquivos de configuração, etc. A escolha de uma distribuição é pessoal e depende das necessidades de cada um. Segue algumas distribuições e sua principais características: Debian: Distribuição desenvolvida e atualizada através do esforço de voluntários espalhados ao redor do mundo, seguindo o estilo de desenvolvimento GNU/Linux. Por este motivo, foi adotada como a distribuição oficial do projeto GNU. Acompanha mais de 8710 programas distribuídos em forma de pacotes. SuSE: Distribuição comercial Alemã com coordenação norte-americana.
  • 8. 8 Sistemas Operacionais Luiz Arthur Red Hat Enterprise Linux: Distribuição comercial da Red Hat e voltada a servidores de grande e médio porte. Fedora: O Fedora Linux é a distribuição de desenvolvimento aberto patrocinada pela RedHat e pela comunidade Linux, originada em 2002 e baseada em versões da antiga linha de produtos RedHat Linux, que era à distribuição mais utilizada do mundo. A distribuição Fedora dá prioridade ao uso do computador como estação de trabalho. Por basear-se no RedHat o Fedora conta com softwares para manter o sistema atualizado e utiliza pacotes de programas no formato RPM. Mandrake & Conectiva: Mandrake (distribuição francesa que se instala praticamente sozinha, boa auto-detecção de periféricos, inclusive web-cams), Conectiva (distribuição brasileira, reconhecida internacionalmente, e era um sistema tipicamente para PC e notebooks, com muitos pacotes de escritório e desenho e etc. A instalação é muito simples e intuitiva, com todo o gerenciamento centralizado. Além de ter a maioria dos manuais online e traduzidos para o português.) Kurumin: Uma distribuição baseada em Debian que roda diretamente a partir do CD, sendo ideal para quem deseja testar uma distribuição Linux. Caso goste, o usuário pode instalar diretamente no disco rígido. Distribuída a partir do CD, suporta boa quantidade de hardwares disponíveis. A versão instalada possui suporte a maioria dos winmodens mais encontrados no Brasil.
  • 9. 9 Sistemas Operacionais Luiz Arthur Slackware: Distribuição desenvolvida por Patrick Volkerding, tem como objetivo para alcançar facilidade de uso e estabilidade. Foi a primeira distribuição a ser lançada no mundo e costuma ser conservadora, provendo simplicidade, facilidade de uso, flexibilidade e é altamente estável. Desde a primeira versão lançada em Abril de 1993, o Projeto Slackware Linux tem buscado produzir a distribuição Linux mais UNIX-like, ou seja, mais parecida com UNIX. O Slackware segue os padrões Linux como o Linux File System Standard, que é um padrão de organização de diretórios e arquivos para as distribuições. Enquanto as pessoas dizem que a Red Hat, Debian, Kurumin e Mandriva são as melhores distribuição para usuários iniciantes, o Slackware é o melhor para usuários mais "experientes", ou seja programadores, administradores, etc. Existem ainda inúmeras outras distribuições, tal como, Gentoo, Ubuntu, Knoopix etc. Uma boa dica para se aprofundar no “mundo” Linux é pesquisar e experimentar várias distribuições, e assim experimentar o melhor de cada uma. A escolha de sua distribuição deve ser feita com muita atenção, não adianta muita coisa perguntar sobre qual é a melhor distribuição, e ser levado pelas propagandas. O melhor caminho para a escolha da distribuição, seria perguntar as características de cada uma e porque as pessoas gostam dela ao invés de perguntar qual é a melhor, porque quem lhe responder isto estará usando uma distribuição que se encaixa de acordo com suas necessidades e esta mesma distribuição pode não ser a melhor para lhe atender.
  • 10. 10 Sistemas Operacionais Luiz Arthur Ligando o computador com Linux Qualquer computador PC quando ligado inicia uma série de ações complexas de testes de hardware, programada por um programa especial chamado BIOS que está armazenado em uma memória ROM (Read Only Memory - memória somente para leitura). Está memória tem a função de dar a partida na máquina, reconhecendo os dispositivos instalados e realizando a carga do sistema operacional. Durante o boot, a BIOS realiza uma série de testes, cuja função é determinar com exatidão os componentes de hardware instalados no sistema. Este teste é chamado de POST (Power-On Self Test). É através do POST que o computador busca informações sobre o número e tipos de placas, drivers de disquetes, HD's, portas seriais, paralelas, USB's, monitor, mouse, teclado, etc, que estão presentes no sistema. Logo depois dos testes de hardware, a BIOS procura nos dispositivos de discos rígidos, disquetes e CD-ROM um endereço especial chamado de setor de boot. O setor de boot de um disquete está localizado no cilindro 0, cabeça 0, setor 1. Este setor é criado por um programa de formatação de disquetes. É no setor de boot que reside o software responsável por iniciar a carga do sistema operacional.
  • 11. 11 Sistemas Operacionais Luiz Arthur O Linux possui dois gerenciadores de boot, o LILO (LInux LOader) e o GRUB (Grand Unified Bootloader). Estes dois gerenciadores de boot são responsáveis pela carga do Kernel do Linux e também pela a carga de outros Sistemas Operacionais, tal como Windows, FreeBSD, etc. A instalação, configuração, gerenciamento e passagens de parâmetros para os gerenciadores de boot (LILO e GRUB) serão apresentados posteriormente. Por enquanto a idéia é somente aprender a ligar o computador e escolher o Sistema Operacional. A figura a seguir apresenta à tela do LILO: Note o balão vermelho. Neste é passado ao LILO qual é a opção de boot que o usuário deseja. Neste caso o Linux, mas poderia ser outro SO como o Windows. Após escolher à opção basta teclar ENTER e o SO Linux irá ser carregado na memória.
  • 12. 12 Sistemas Operacionais Luiz Arthur Processo de Carga do kernel O kernel é a parte mais importante de qualquer sistema operacional. Considerado o núcleo do sistema, ele é responsável pelas funções de baixo nível, como o gerenciamento de memória, gerenciamento de processos, subsistemas de arquivos, rede suporte aos dispositivos e periféricos conectados ao computador. Assim quando o sistema é iniciado o gerenciador de boot (LILO ou GRUB) irá carregar na memória um kernel, no qual está contido as funções básicas de um Sistema Operacional. Enquanto o Kernel é carregado na inicialização do sistema, ele exibe uma série de mensagens úteis que irão informar a sua identificação, informações de CPU e memória, dispositivos de hardware, discos, partições,serviços de rede, etc. Durante o processo de boot o Linux executa diversos processos em uma ordem programada, chamada de “nível de execução”, ou Runlevels. Este nível de execução vai determinar quais serviços serão executados durante a carga. Por exemplo, pode-se definir que um determinado nível vai chamar todos os serviços que um servidor de rede precisa executar, como SSH, servidor HTTP, servidor FTP, etc. Mas para uma situação de emergência, na qual o administrador precisa efetuar alguma manutenção, podemos determinar um nível de execução no qual somente o básico seja executado.
  • 13. 13 Sistemas Operacionais Luiz Arthur No Linux existem sete níveis de execução predefinidos, de 0 à 6. Os serviços que cada runlevel pode executar vai depender da distribuição do Linux e da configuração que o administrador do sistema efetuou. Por padrão, as distribuições utilizam o nível 0 para uma seqüência de desligamento (shutdown) elegante e o nível 6 para o reboot (reiniciar o sistema). E os runlevels 3 a 5 são utilizados para carga normal do sistema. A figura a seguir mostra um processo de boot no Slackware Linux: Está é uma tela típica de um sistema operacional Linux sendo iniciado. No balão vermelho está o nível em que vai ser iniciado o sistema. Neste caso o runlevel 3.
  • 14. 14 Sistemas Operacionais Luiz Arthur O nível de execução 1 (runlevel 1) é conhecido como monousuário, e é utilizado para a manutenção do sistema, como, por exemplo, recuperar uma partição de dados com problemas. O administrador do sistema pode especificar no gerenciador de boot (LILO e GRUB) o runlevel que ele deseja: Por convenção tudo que estivem com LILO: Linux 1 fonte courier é um comando, parâmetro ou saída do computador. Onde Linux é o nome da imagem do kernel. Veja as definições de runlevels a seguir: 0 – O nível zero define um desligamento elegante e rápido do sistema. 1,s,single – Utilizado para manutenção do sistema, também chamado de monousuário (single user) e somente o essencial é executado. 2 – Modo multiusuário com compartilhamento de arquivo de rede (NFS) desabilitado. 3 – Modo multiusuário com todos os serviços habilitados, mas sem interface gráfica para o login do sistema. 4 – Modo gráfico no Slackware idem ao modo 5, normalmente não usado em outras distribuições. 5 – Modo multiusuário com todos os serviços habilitados, interface gráfica X11 e login em modo gráfico. 6 – O nível seis é parecido com o nível zero, mas executa o reboot da máquina.
  • 15. 15 Sistemas Operacionais Luiz Arthur Entrando no Sistema - Login Assim que o boot fizer a sua parte. O usuário escolher o Kernel e o nível de execução. O Linux irá apresentar uma tela de login, ou seja, uma tela requerendo um nome de usuário do sistema e sua respectiva senha (palavra secreta que somente o usuário deve saber). No Linux e em sistemas Like-UNIX é sempre requerido um usuário e senha para utilizar o Sistema Operacional. O que proporciona segurança. A seguir telas de login que normalmente são apresentadas pelo Linux: Aqui está um login em modo texto (runlevels 1, 2 e 3). Conforme apresentado no balão vermelho é só informar no login o nome do usuário e no campo Password a senha do mesmo usuário. Observação a senha não aparece enquanto é digitada! Se o usuário e senha estiverem corretos um prompt de comando irá aparecer.
  • 16. 16 Sistemas Operacionais Luiz Arthur O login pode também ser gráfico, caso o runlevel seja passado como 4 (no Slackware) ou 5 (em outras distribuições). Porém, o principio é o mesmo devem ser passados usuário e senha. Algumas distribuições permitem que o Linux seja iniciado já com um ambiente gráfico sem a necessidade de se digitar um usuário e uma senha, entretanto mesmo nestes ambientes existe um usuário, só que não lhe é requisitado a senha e o login é feito de forma automática.
  • 17. 17 Sistemas Operacionais Luiz Arthur Interpretador de comandos Também conhecido como "shell". É o programa responsável em interpretar as instruções enviadas pelo usuário e seus programas ao sistema operacional. É a principal ligação entre o usuário, os programas e o kernel. O GNU/Linux possui diversos tipos de interpretadores de comandos, entre eles destaca-se o bash, ash, csh, tcsh, sh, etc. O mais usado é o bash. O interpretador de comandos do DOS/Windows, por exemplo, é o command.com. Aviso de comando (Prompt) Aviso de comando (ou Prompt), é a linha mostrada na tela para digitação de comandos que serão passados ao interpretador de comandos para sua execução. A posição no qual o comando será digitado é marcado por um "traço" piscante na tela, chamado de cursor. Tanto em shells texto como em gráficos é necessário o uso do cursor para sabermos onde iniciar a digitação de textos e nos orientarmos quanto a posição na tela. O aviso de comando do usuário root (usuário administrador) é identificado por uma "#" (tralha), e o aviso de comando de usuários é identificado pelo símbolo "$". Isto é padrão em sistemas UNIX.
  • 18. 18 Sistemas Operacionais Luiz Arthur Segue uma tela com o prompt de comando do Linux: No balão verde é apresentado o uso do prompt de comando através do comando dir /, sua saída é dada logo abaixo (em azul). Já no balão vermelho é apresentado o prompt de comando esperando por um comando. Em ambientes gráficos, o cursor em modo texto é substituído por comando representados por ícones, entretanto é comum, mesmo em sistemas gráficos usar ambientes que recriam um prompt de comando no modo texto, um exemplo disso é o konsole, xterm, etc. Os recursos dos shells e dos promts de comandos serão estudados a fundo, mais a diante.
  • 19. 19 Sistemas Operacionais Luiz Arthur Desligando o computador O computador não deve ser desligado de forma bruta, com o interrompimento de energia antes de desligar o computador é necessário retirar os processos que estão na memória, caso isso não ocorra pode haver perdas de dados. Desta forma são utilizados alguns comandos para que tudo transcorra bem durante o processo de desligamento do computador. Normalmente o único usuário que tem permissão de desligar o computador é o usuário root, que é o administrador do sistema, o root tem permissão de fazer qualquer coisa no computador, qualquer coisa mesmo inclusive apagar tudo o que existe no computador, por isso tome muito cuidado quanto estiver usando este usuário. O comando mais comum para se desligar um sistema Linux é o shutdown. Com o comando shutdown, o GNU/Linux finalizará os programas e gravará os dados em seu disco rígido, e quando for mostrada a mensagem "power down", será possível pressionar o botão power (energia) em seu gabinete para desligar a alimentação de energia do computador de forma segura. Em computadores mais recentes com gabinetes ATX, a energia será desligada de forma automática, sem a necessidade de apertar o botão de power.
  • 20. 20 Sistemas Operacionais Luiz Arthur Então o comando shutdown exerce a tarefa de desligar o computador, mas o comando faz mais do que isso, tal como, reiniciar o computador. Porém para que o shutdown realize os procedimentos necessários o comando faz o uso de opções e parâmetros, a sintaxe do comando fica assim: #shutdown [opções] horário [mensagem] As opções mais freqüentes são: -r Reinicia (reboot) o sistema depois de terminada a seqüência de desligamento. -h Paralisa (halt) o sistema depois de terminar a seqüência de desligamento, não reinicia a máquina só a desliga. -k Manda a mensagem de desligamento, mas não inicia a seqüência de desligamento. -c Cancela o comando shutdown recém executado. Exemplos: Para reiniciar o sistema imediatamente: #shutdown -r now Para desligar o sistema em 90 minutos: #shutdown -h +90 “Desligando o SO em 90 minutos, para troca de hardware” Para desligar o sistema imediatamente: #shutdown -h now
  • 21. 21 Sistemas Operacionais Luiz Arthur O comando shutdown é utilizado para desligar ou reiniciar o sistema em horários determinados. Durante este procedimento, o shutdown desabilita o sistema de login para impedir que novos usuários entrem no sistema e envie mensagens personalizadas nos terminais para todos os usuários conectados avisando que o sistema será desligado. A diferença entre trocar de runlevel para 0 ou 6 é que o comando shutdown é administrativamente melhor, pois avisa aos usuários que haverá uma parada do sistema. Já para o init não há nenhum tipo de aviso. Existem outros comandos que fazem o desligamento do sistema, são eles: porweroff, halt e init 0. Já se o caso for apenas reiniciar o sistemas os comando mais comuns são: reboot, init 6, e com o uso das teclas Ctrl+Alt+Del (todas pressionadas ao mesmo tempo). Para o desligamento de computadores mais recentes é possível ainda pressionar apenas o botão do power, e o sistema irá chamar o init 0 e desligará o computador corretamente, tome cuidado para não fazer o uso do botão power direto em sistemas que não dão suporte ao desligamento automático.
  • 22. 22 Sistemas Operacionais Luiz Arthur Atividade 1 1.1 – Inicie o computador passando como parâmetro no LILO o runlevel 3. 1.2 – Desligue o computador utilizando o comando shutdown com opção de desligar em 2 minutos após a execução do comando shutdown, passando ainda uma mensagem aos usuários. 1.3 – No gerenciador de boot inicie o Linux com suporte ao login gráfico. 1.4 – Pesquise e teste às principais formas de se desligar e reiniciar um sistema Linux. 1.5 – Para que serve o nível de execução single durante a inicialização de um sistema Like-UNIX? 1.6 – Pesquise sobre o gerenciador de boot GRUB, descrevendo suas principais características, e como é possível passar ao GRUB os runlevels. 1.7 – Quais são as diferenças entre LILO e GRUB? 1.8 – Como é possível ler as mensagens de inicialização do sistema depois que o linux foi iniciado? Onde, ficam gravadas essas mensagens?
  • 23. 23 Sistemas Operacionais Luiz Arthur Arquivos Os Arquivos são onde ficam gravamos nossos dados. Um arquivo pode conter um texto, uma música, programa, planilha, etc. Cada arquivo deve ser identificado por um nome, assim um arquivo pode ser encontrado facilmente quando desejar usá-lo. Se estiver fazendo um trabalho de história, nada melhor que salvá-lo com o nome historia. Um arquivo pode ser binário (gerado por um compilador) ou texto (arquive que contém apenas texto). O GNU/Linux é Case Sensitive ou seja, ele diferencia letras maiúsculas e minúsculas nos arquivos. O arquivo historia é completamente diferente do arquivo Historia. Esta regra também é válido para os comandos e diretórios. Um arquivo oculto no GNU/Linux é identificado por um "." no inicio do nome (por exemplo, .bashrc). Arquivos ocultos não aparecem em listagens normais de diretórios e arquivos, e deve ser usado o comando ls -a para listar também arquivos ocultos.
  • 24. 24 Sistemas Operacionais Luiz Arthur Extensão de arquivos A extensão serve para identificar o tipo do arquivo. A extensão são as letras após um "." no nome de um arquivo, explicando melhor: relatório.txt - O .txt indica que o conteúdo é um arquivo texto. script.sh - Arquivo de Script (interpretado por /bin/sh). system.log - Registro de algum programa no sistema. arquivo.gz - Arquivo compactado pelo utilitário gzip. index.html - Página de Internet (formato Hypertexto). A extensão de um arquivo também ajuda a saber o que precisamos fazer para abri- lo. Por exemplo, o arquivo relatório.txt é um texto simples e podemos ver seu conteúdo através do comando cat, já o arquivo index.html contém uma página de Internet e precisaremos de um navegador para poder visualizá-lo (como o lynx, Mosaic ou o Netscape). A extensão (na maioria dos casos) não é requerida pelo sistema operacional GNU/Linux, mas é conveniente o seu uso para determinarmos facilmente o tipo de arquivo e que programa precisaremos usar para abri-lo.
  • 25. 25 Sistemas Operacionais Luiz Arthur Tamanho de arquivos A unidade de medida padrão nos computadores é o bit. A um conjunto de 8 bits dá-se o nome de byte. Cada arquivo/diretório possui um tamanho, que indica o espaço que ele ocupa no disco e isto é medido em bytes. O byte representa uma letra (a, b, c, d, etc). Assim, se você criar um arquivo vazio e escrever o nome Linux e salvar o arquivo, este terá o tamanho de 5 bytes. Espaços em branco e novas linhas também ocupam bytes. Além do byte existem as médidas Kbyte, Mbyte, Gbyte. Os prefixos K (quilo), M (mega), G (giga), T (tera) etc. vêem da matemática. O "K" significa multiplicar por 10^3, o "M" por 10^6, e assim por diante. Esta letras servem para facilitar a leitura em arquivos de grande tamanho. Um arquivo de 1K é a mesma coisa de um arquivo de 1024 bytes. Da mesma forma 1Mb (ou 1M) é igual a um arquivo de 1024K ou 1.048.576 bytes. 1Gb (ou 1G) é igual a um arquivo de 1024Mb ou 1048576Kb ou 1.073.741.824 bytes (1 Gb é igual a 1.073.741.824 bytes, são muitos números!). Deu para notar que é mais fácil escrever e entender como 1Gb do que 1.073.741.824 bytes.
  • 26. 26 Sistemas Operacionais Luiz Arthur A lista completa em ordem progressiva das unidades de medida é a seguinte: Símbolo Nome K Quilo M Mega G Giga T Tera P Peta E Eta Z Zetta Y Yotta Arquivo texto e binário Quanto ao tipo (conteúdo), um arquivo pode ser de texto ou binário: texto: Seu conteúdo é compreendido pelas pessoas. Um arquivo texto pode ser uma carta, um script, um programa de computador escrito pelo programador, arquivo de configuração, etc. Binário: Seu conteúdo somente pode ser entendido por computadores. Contém caracteres incompreensíveis para pessoas normais. Um arquivo binário é gerado através de um arquivo de programa (formato texto) através de um processo chamado de compilação. Compilação é basicamente a conversão de um programa em linguagem humana para a linguagem de máquina.
  • 27. 27 Sistemas Operacionais Luiz Arthur Diretório Diretório é o local utilizado para armazenar conjuntos arquivos para melhor organização e localização. O diretório pode ser visto como um arquivo que contém referencias a um grupo de arquivos. O diretório, como o arquivo, também é "Case Sensitive" (diretório /teste é completamente diferente do diretório /Teste). Não podem existir dois arquivos com o mesmo nome em um diretório, ou um sub- diretório com um mesmo nome de um arquivo em um mesmo diretório. Um diretório nos sistemas Linux/UNIX são especificados por uma "/" e não uma "" como é feito no DOS/Windows. Diretório Raíz O diretório / (chamado de root ou raiz) é o diretório principal do sistema. Dentro dele estão todos os diretórios do sistema. O diretório Raíz é representado por uma "/", assim se você digitar o comando cd / você estará acessando este diretório. Nele estão localizados outros diretórios como o /bin, /sbin, /usr, /usr/local, /mnt, /tmp, /var, /home, etc. Estes são chamados de sub-diretórios pois estão dentro do diretório "/". A estrutura de diretórios também é chamada de Árvore de Diretórios porque é parecida com uma árvore de cabeça para baixo.
  • 28. 28 Sistemas Operacionais Luiz Arthur Cada diretório do sistema tem seus respectivos arquivos que são armazenados conforme regras definidas pela FHS (FileSystem Hierarchy Standard - Hierarquia Padrão do Sistema de Arquivos) versão 2.0, definindo que tipo de arquivo deve ser armazenado em cada diretório. Diretório atual É o diretório em que nos encontramos no momento. Você pode digitar o comando pwd para verificar qual é seu diretório atual. O diretório atual também é identificado por um "." (ponto). O comando ls . pode ser usado para listar seus arquivos (mas, isto é desnecessário porque se não digitar nenhum diretório, o comando ls listará o conteúdo do diretório atual). Diretório home Também chamado de diretório do usuário. Em sistemas GNU/Linux cada usuário (inclusive o root) possui seu próprio diretório no qual poderá armazenar seus programas e arquivos pessoais. Este diretório está localizado em /home/[login], neste caso se o seu login for "joao" o seu diretório home será /home/joao. O diretório home também é identificado por um ~(til), você pode digitar tanto o comando ls /home/joao como ls ~ para listar os arquivos de seu diretório home. O diretório home do usuário root (na maioria das distribuições GNU/Linux) está localizado em /root.
  • 29. 29 Sistemas Operacionais Luiz Arthur Diretório Superior O diretório superior (upper directory) é identificado por .. (2 pontos). Caso estiver no diretório /usr/local e quiser listar os arquivos do diretório /usr você pode digitar, ls .. este recurso também pode ser usado para copiar, mover arquivos/diretórios, etc. Diretório Anterior O diretório anterior é identificado por "-". É útil para retornar ao último diretório usado. Se você estiver no diretório /usr/local e digitar cd /lib, você pode retornar facilmente para o diretório /usr/local usando cd -.
  • 30. 30 Sistemas Operacionais Luiz Arthur Estrutura básica de diretórios do Sistema Linux O sistema GNU/Linux possui a seguinte estrutura básica de diretórios organizados segundo o FHS: /bin Contém arquivos de programas do sistema que são usados com freqüência pelos usuários. /boot Contém arquivos necessários para a inicialização do sistema. /mnt/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 do computador local. /mnt/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.
  • 31. 31 Sistemas Operacionais Luiz Arthur /lost+found Local para a gravação de arquivos/diretórios recuperados pelo utilitário fsck. 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 freqüência pelos programas do sistema, e-mails, spool de impressora, cache, etc.
  • 32. 32 Sistemas Operacionais Luiz Arthur Nomeando Arquivos e Diretórios No GNU/Linux, os arquivos e diretórios pode ter o tamanho de até 255 letras. Você pode identifica-lo com uma extensão (um conjunto de letras separadas do nome do arquivo por um "."). Os programas executáveis do GNU/Linux, ao contrário dos programas de DOS/Windows, não são executados a partir de extensões .exe, .com ou .bat. O GNU/Linux (como todos os sistemas POSIX) usa a permissão de execução de arquivo para identificar se um arquivo pode ou não ser executado. Comandos Comandos são ordens que passamos ao sistema operacional para executar uma determinada tarefa. Cada comando tem uma função específica, devemos saber a função de cada comando e escolher o mais adequado para fazer o que desejamos, por exemplo: ls Mostra arquivos e diretórios cd Para mudar de diretório É sempre usado um espaço depois do comando para separá-lo de uma opção ou parâmetro que será passado para o processamento.
  • 33. 33 Sistemas Operacionais Luiz Arthur Um comando pode receber opções e parâmetros: Opções As opções são usadas para controlar como o comando será executado, por exemplo, para fazer uma listagem mostrando o dono, grupo, tamanho dos arquivos você deve digitar ls -l. Opções podem ser passadas ao comando através de um "-" ou "--": “-” Opção identificada por uma letra. Podem ser usadas mais de uma opção com um único hífen. O comando ls -l -a é a mesma coisa de ls -la. “--” Opção identificada por um nome. O comando ls --all é equivalente a ls -a. Pode ser usado tanto "-" como "--", mas há casos em que somente "-" ou "--" esta disponível.
  • 34. 34 Sistemas Operacionais Luiz Arthur Parâmetros Um parâmetro identifica o caminho, origem, destino, entrada padrão ou saída padrão que será passada ao comando. Se você digitar: ls /usr/doc, o /usr/doc será o parâmetro passado ao comando ls, neste caso queremos que ele liste os arquivos do diretório /usr/doc. É normal errar o nome de comandos, mas não se preocupe, quando isto acontecer o sistema mostrará a mensagem command not found (comando não encontrado) e voltará ao aviso de comando. As mensagens de erro não fazem nenhum mal ao seu sistema, somente dizem que algo deu errado para que você possa corrigir e entender o que aconteceu. Os comandos se encaixam em duas categorias: Comandos Internos e Comandos Externos.
  • 35. 35 Sistemas Operacionais Luiz Arthur Comandos Internos São comandos que estão localizados dentro do interpretador de comandos (normalmente o Bash) e não no disco. Eles são carregados na memória RAM do computador junto com o interpretador de comandos. Quando é executado um comando, o interpretador de comandos verifica primeiro se ele é um Comando Interno caso não seja é verificado se é um Comando Externo. Exemplos de comandos internos são: cd, exit, echo, bg, fg, etc. Comandos Externos São comandos que estão localizados no disco. Os comandos são procurados no disco usando o path (caminho/diretório no qual se encontra o comando) e executados assim que encontrados.
  • 36. 36 Sistemas Operacionais Luiz Arthur Terminal Virtual (console) Terminal (ou console) é o teclado e tela conectados em seu computador. O GNU/Linux faz uso de sua característica multi-usuária usando os "terminais virtuais". Um terminal virtual é uma segunda seção de trabalho completamente independente de outras, que pode ser acessada no computador local ou remotamente via telnet, rsh, rlogin, etc. No GNU/Linux, em modo texto, você pode acessar outros terminais virtuais segurando a tecla ALT e pressionando F1 a F6. Cada tecla de função corresponde a um número de terminal do 1 ao 6 (o sétimo é usado por padrão pelo ambiente gráfico X). O GNU/Linux possui mais de 63 terminais virtuais, mas apenas 6 estão disponíveis inicialmente por motivos de economia de memória RAM (cada terminal virtual ocupa aproximadamente 350 Kb de memória RAM, então desative a quantidade que não estiver usando para liberar memória RAM para uso de outros programas!). Se estiver usando o modo gráfico, você deve segurar CTRL+ALT enquanto pressiona uma tela de <F1> a <F6>. Um exemplo prático: Se você estiver usando o sistema no Terminal 1 com o nome "joao" e desejar entrar como "root" para instalar algum programa, segure ALT enquanto pressiona <F2> para abrir o segundo terminal virtual e faça o login como "root". Será aberta uma nova seção para o usuário "root" e você poderá retornar a hora que quiser para o primeiro terminal pressionando ALT+<F1>.
  • 37. 37 Sistemas Operacionais Luiz Arthur Logout Logout é o processo de saída do sistema, sem desligar, somente retira um usuário logado (que fez o processo de login) no sistema. A saída do sistema é feita pelos comandos logout, exit, das teclas CTRL+D, ou quando o sistema é reiniciado ou desligado. Sempre que um usuário entra no sistema ele faz o processo de login (passando usuário e senha), porém quando por algum motivo o usuário for se distanciar do computador é aconselhável que o usuário faça o processo de logout, isto ocorre normalmente por motivos de segurança, caso contrário alguém pode, por exemplo, se apoderar de seu usuário e senha! Atenção, nunca em hipótese alguma deixe um usuário com login aberto, sempre faça o logout principalmente se este usuário for o root. Caso alguém encontre o usuário root logado no sistema e com um terminal virtual aberto fica extremamente fácil apoderar-se de todo o sistema, desta forma, não adianta encher seu sistema computacional com medidas de segurança (firewall, VPNs, etc) sendo que os administradores deixam o login do usuário root a disposição de qualquer pessoa.
  • 38. 38 Sistemas Operacionais Luiz Arthur Bem agora sabemos: ● Como iniciar o Linux com o LILO; ● Que existem níveis de inicialização; ● Que é necessário após iniciar o sistema o processo de login; ● Acessar shells/consoles/terminais; ● Que existem comando e esses contém opções e parâmetros; ● Existem arquivos e diretórios; ● Fazer logouts; ● E por fim, desligar e ligar a máquina. Assim, iremos nos aprofundar em como administrar um sistema Linux, aprofundando os conhecimentos sobre este sistema operacional.
  • 39. 39 Sistemas Operacionais Luiz Arthur Gerenciamento de Arquivos A necessidade de guardar informações em objetos que pudessem ser acessados posteriormente de uma forma organizada vem de longe nos sistemas operacionais. Para isso foram criados os sistemas de arquivos. Nos sistemas de arquivos, de modo geral, os objetivos são organizar de forma hierárquica os arquivos (informações) do sistema. Todos os dados (arquivos e diretórios) são armazenados em sistemas de arquivos. Um sistema de arquivo pode ser visto como um padrão de como os arquivos serão gravados, armazenados, acessados, etc. Um sistema de arquivos é criado durante o processo de formatação da unidade de armazenamento, existem vários tipos de sistema de arquivos (ext2, ext3, reiselfs, ntfs, fat32, fat16, etc). Sistemas de arquivos serão abordados posteriormente. A identificação dos objetos de um sistema de arquivo no Linux é conhecida como inode. Ele carrega as informações de onde o objeto está localizado no disco, informações de segurança, data e hora de criação e última modificação, dentre ourtas. Quando criamos um sistema de arquivo no Linux, cada dispositivo tem um número finito de inodes que será diretamente proporcional ao número de arquivos que este dispositivo poderá acomodar.
  • 40. 40 Sistemas Operacionais Luiz Arthur O sistema de arquivos Linux é semelhante a uma árvore de cabeça para baixo. No topo da hierarquia do Linux existe um diretório raiz nomeado simplesmente de root e identificado com o sinal “/”. Atenção, não confunda diretório raiz (root) com o superusuário root. A estrutura do sistema de arquivo Linux é definida por um padrão de mercado chamado FHS. As distribuições não são obrigadas a seguir este padrão, mas elas entendem a importância da localização dos arquivos e diretórios padronizados. bin / boot proc dev home usuário1 opt mnt lib etc usuário2
  • 41. 41 Sistemas Operacionais Luiz Arthur Gerenciamento Básico de Arquivos Veremos agora alguns comandos para iniciarmos nossa atividade em um ambiente Linux, a maioria deles é comum a qualquer UNIX, independente do fornecedor ou distribuição. - Listando o conteúdo de diretórios O comando ls (list – listar) lista o conteúdo dos diretórios que informamos como destino (alvo). Podemos utilizar o comando ls acompanhado ou não das opções de listagem. O retorno do comando ls dependerá das opções fornecidas, porém será sempre uma listagem dos arquivos, diretórios, links simbólicos (symbolic link) e links fisícos (hard links) de um diretório qualquer. O $ ou o # na frente na linha simboliza o prompt de comando Exemplo: e não faz parte de forma alguma do comando, assim o comando é apenas ls e não $ ls. Não digite $ ou # no comando!!! $ ls / bin boot dev etc home lib mnt opt proc root sbin sys tmp usr var O comando ls têm a seguinte sintaxe: $ ls [opções] [caminho/arquivo] [caminho1/arquivo1] ...
  • 42. 42 Sistemas Operacionais Luiz Arthur onde: caminho/arquivo = Diretório/arquivo que será listado. caminho1/arquivo1 = Outro Diretório/arquivo que será listado. Assim, podem ser feitas várias listagens de uma só vez. Opções em negrito são importantes e as opções em negrito e Opções do comando ls sublinhadas são igualmente importantes e muito utilizadas. -a, --all Lista todos os arquivos (inclusive os ocultos) de um diretório. -A, --almost-all Lista todos os arquivos (inclusive os ocultos) de um diretório, exceto o diretório atual e o de nível anterior. -B, --ignore-backups Não lista arquivos que terminam com ~ (Backup). --color=PARAM Mostra os arquivos em cores diferentes, conforme o tipo de arquivo. PARAM pode ser: never - Nunca lista em cores (mesma coisa de não usar o parâmetro --color). always - Sempre lista em cores conforme o tipo de arquivo. auto - Somente colore a listagem se estiver em um terminal.
  • 43. 43 Sistemas Operacionais Luiz Arthur -d, --directory Lista os nomes dos diretórios ao invés do conteúdo. -f Não classifica a listagem. -F Insere um caracter após arquivos executáveis ('*'), diretórios ('/'), soquete ('='), link simbólico ('@') e pipe ('|'). Seu uso é útil para identificar de forma fácil tipos de arquivos nas listagens de diretórios. -G, --no-group Oculta a coluna de grupo do arquivo. -h, --human-readable Mostra o tamanho dos arquivos em Kbytes, Mbytes, Gbytes. -H Faz o mesmo que -h, mas usa unidades de 1000 ao invés de 1024 para especificar Kbytes, Mbytes, Gbytes. -l Usa o formato longo para listagem de arquivos. Lista as permissões, data de modificação, donos, grupos, etc. -n Usa a identificação de usuário e grupo numérica ao invés dos nomes. -L, --dereference Lista o arquivo original e não o link referente ao arquivo. -o Usa a listagem longa sem os donos dos arquivos (mesma coisa que -lG).
  • 44. 44 Sistemas Operacionais Luiz Arthur -p Mesma coisa que -F, mas não inclui o símbolo '*' em arquivos executáveis. Esta opção é típica de sistemas Linux. -R Lista diretórios e sub-diretórios recursivamente. --full-time Lista data e hora completa. Classificação da listagem A listagem pode ser classificada usando-se as seguintes opções: -f Não classifica, e usa -au para listar os arquivos. -r Inverte a ordem de classificação. -c Classifica pela data de alteração. -X Classifica pela extensão. -U Não classifica, lista os arquivos na ordem do diretório. Uma listagem feita com o comando ls -la normalmente é mostrada da seguinte maneira: -rwxr-xr-- 1 gleydson user 8192 nov 4 16:00 teste
  • 45. 45 Sistemas Operacionais Luiz Arthur As explicações de cada parte da saída do comando ls: -rwxr-xr-- São as permissões de acesso ao arquivo teste. A primeira letra (da esquerda) identifica o tipo do arquivo, se tiver um d é um diretório, se tiver um "-" é um arquivo normal. 1 Se for um diretório, mostra a quantidade de sub-diretórios existentes dentro dele. Caso for um arquivo, será 1. gleydson Nome do dono do arquivo teste. user Nome do grupo que o arquivo teste pertence. 8192 Tamanho do arquivo (em bytes). nov Mês da criação/ última modificação do arquivo. 4 Dia que o arquivo foi criado. 16:00 Hora em que o arquivo foi criado/modificado. Se o arquivo foi criado há mais de um ano, em seu lugar é mostrado o ano da criação do arquivo. teste Nome do arquivo.
  • 46. 46 Sistemas Operacionais Luiz Arthur Exemplos com as opções ls mais utilizadas: Para se ter uma listagem detalhada do diretório atual: $ ls -l total 0 drwx------ 2 aula users 176 2006-03-19 16:51 Desktop Uma listagem de todos os arquivos inclusive os ocultos: $ ls -a . .bash_history .dmrc .kde .local .mcoprc .screenrc .Xauthority .. Desktop .ICEauthority .kderc .mcop .qt .ssh .xsession-errors Listar os arquivos arquivos do diretório raiz por ordem de alteração: $ ls -c / tmp etc dev sys proc usr opt home boot root var bin sbin mnt lib Listar pela ordem da alteração inversa: $ ls -cr / lib mnt sbin bin var root boot home opt usr proc sys dev etc tmp ou $ ls -c -r / lib mnt sbin bin var root boot home opt usr proc sys dev etc tmp
  • 47. 47 Sistemas Operacionais Luiz Arthur O comando ls assim como a maioria dos comandos possui a opção --help, que normalmente exibe: sintaxe do comando, opções, parâmetros, dente outros. Exemplo, de uma saída resumida do ls com à opção --help: $ ls --help Uso: ls [OPÇÃO]... [ARQUIVO]... List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuSUX nor --sort. Argumentos obrigatórios para opções longas também o são para opções curtas -a, --all do not hide entries starting with . -A, --almost-all do not list implied . and .. --author print the author of each file . . . -X sort alphabetically by entry extension -1 list one file per line --help display this help and exit --version output version information and exit SIZE may be (or may be an integer optionally followed by) one of following: kB 1000, K 1024, MB 1000*1000, M 1024*1024, and so on for G, T, P, E, Z, Y. By default, color is not used to distinguish types of files. That is equivalent to using --color=none. Using the --color option without the optional WHEN argument is equivalent to using --color=always. With --color=auto, color codes are output only if standard output is connected to a terminal (tty). Comunicar `bugs' para <bug-coreutils@gnu.org>.
  • 48. 48 Sistemas Operacionais Luiz Arthur cd O comando cd é utilizado para entrar em um diretório. É preciso ter a permissão de execução para entrar em um diretório. cd [diretório] onde: diretório – é o nome/caminho do diretório que deseja-se entrar. Exemplos: Usando o comando cd sem parâmetros ou cd ~, você irá ao seu diretório de usuário (localizado no diretório /home). cd / retornará ao diretório raíz. cd - retornará ao diretório anteriormente acessado. cd .. sobe um diretório, ou seja, onde você esta um nível mais próximo do /. cd ../[diretório] sobe um diretório e entra imediatamente no próximo (por exemplo, quando você está em /usr/sbin, você digita cd ../bin, o comando cd retorna um diretório (/usr) e entra imediatamente no diretório bin (/usr/bin). cd /usr/doc entra no diretório /usr/doc. cd /tmp entra no diretório /tmp.
  • 49. 49 Sistemas Operacionais Luiz Arthur pwd O comando pwd mostra o nome e caminho do diretório atual, que o usuário se encontra. Você pode usar o comando pwd para verificar em qual diretório se encontra caso seu aviso de comandos (no prompt) não mostre isso. Exemplo: aula@darkstar$ pwd /usr/doc O comando pwd é muito útil para ajudar o usuário a se localizar quando este faz muitas entradas e saídas dos diretórios e subdiretórios com o comando cd. Um bom conselho é sempre passar como parâmetro a comandos o caminho inteiro onde se encontra o diretório no qual se deseja chegar e não ir entrando um por um. Exemplo, utilizar: $ cd /usr/doc ao invés de: $ cd /usr $ cd doc
  • 50. 50 Sistemas Operacionais Luiz Arthur mkdir O comando mkdir cria um diretório no sistema. Um diretório é usado para armazenar arquivos ou outros diretórios. O diretório pode ser entendido como uma pasta onde você guarda seus papeis (arquivos). Como uma pessoa organizada, você utilizará uma pastas 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 É o caminho onde o diretório será criado. diretório É o 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).
  • 51. 51 Sistemas Operacionais Luiz Arthur rmdir O 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 É o caminho do diretório que será removido. diretório Nome do diretório que será removido. Para remover um diretório é necessário que esteja-se um nível acima do diretório(s) que será(ão) removido(s). Para remover diretórios que contenham arquivos, use o comando rm com a opção -r. Por exemplo, para remover o diretório /tmp/teste você não de estar no diretório /tmp/teste para executar o comando rmdir /tmp/teste. Atenção, este comando é muito perigoso, pois ele apaga os diretórios (e arquivos desse diretório com a opção -r), por isso sempre passe o caminho exato que será apagado para que não haja erros, lembrando que o usuário root pode apagar todo o sistema com o comando rmdir.
  • 52. 52 Sistemas Operacionais Luiz Arthur Os comandos de listagem e manipulação de diretórios devem ser estudados a fundo por todos que pretendem ser administradores de sistemas e é somente praticando que se adquire experiencia e propriedade para se trabalhar com diretórios. Atividade 2 2.1 Liste o diretório /root. 2.2 Liste mostrando todos os arquivos e atributos de forma detalhada do diretório /tmp. 2.3 Entre dentro do diretório /usr/doc e depois liste os arquivos apresentando o tamanho (de forma compreensível pelos humanos) dos diretórios e arquivos presentes neste diretório. 2.4 Crie dentro do diretório /tmp um diretório chamado atividade2. 2.5 Crie outro diretório chamado Atividade2 dentro do diretório /tmp, e depois crie um subdiretório chamado sub1 e outro chamado sub2 dentro do subdiretório Atividade2. 2.6 Apague o diretório /tmp/atividade2. 2.7 Apague o diretório /tmp/Atividade2 e todos os seus subdiretórios.
  • 53. 53 Sistemas Operacionais Luiz Arthur Comandos para manipulação de Arquivos Os arquivos são agrupamentos de bytes que podem ser do tipo texto ou binário. Assim como ocorre com os diretórios os arquivos são muito impotantes para o sistema, desta forma, saber mante-los é muito importante para um administrador de sistema, a seguir serão mostrados alguns comando para a manipulação e gerenciamento de arquivos, alguns desses comando também se aplicam a diretórios que nada mais são do que arquivos um pouco diferentes. cat O comando cat mostra o conteúdo de um arquivo binário ou texto. cat [opções] [diretório/arquivo] [diretório1/arquivo1] diretório/arquivo Localização do arquivo que deseja visualizar o conteúdo. Opções: -n, --number Mostra o número das linhas enquanto o conteúdo do arquivo é mostrado. -s, --squeeze-blank Não mostra mais que uma linha em branco entre um parágrafo e outro.
  • 54. 54 Sistemas Operacionais Luiz Arthur O comando cat concatena arquivos, imprime seu conteúdo na tela e ainda pode receber texto digitado pelo teclado e enviar para um arquivo. Exemplos: Para criar um arquivo chamado teste.txt execute o comando: $ cat > teste.txt Olá Mundo Linux Agora você pode digitar qualquer texto. Quando terminar, precione as teclas Crtl+d em uma linha vazia para finalizar a entrada de dados e salvar o arquivo teste.txt Para ver o conteúdo do arquivo teste.txt execute: $ cat teste.txt Olá Mundo Linux O cat também pode servir para concatenar arquivos. No comando abaixo o conteúdo de texto.txt é subustituido pelo texto1.txt. $ cat texto1.txt > texto.txt Para adicionar o conteúdo e texto1.txt no final do arquivo texto.txt o comando é: $ cat texto1.txt >> texto.txt
  • 55. 55 Sistemas Operacionais Luiz Arthur rm O comando 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-se 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 fazer perguntas. -- arquivo Remove arquivos/diretórios que contém caracteres especiais. O separador "--" funciona com todos os comandos do shell e permite que os caracteres especiais como "*", "?", "-", etc. sejam interpretados como caracteres comuns.
  • 56. 56 Sistemas Operacionais Luiz Arthur 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 do uso do comando rm: rm teste.txt Apaga o arquivo teste.txt no diretório atual. rm *.txt Apaga todos os arquivos do diretório atual que terminam com .txt. rm *.txt teste.novo Apaga todos os arquivos do diretório atual que terminam com .txt e também o arquivo teste.novo. rm -rf /tmp/teste/* Apaga todos os arquivos e sub-diretórios do diretório /tmp/teste mas mantém o sub-diretório /tmp/teste. rm -rf /tmp/teste Apaga todos os arquivos e sub-diretórios do diretório /tmp/teste, inclusive /tmp/teste. rm -f -- --arquivo-- - Remove o arquivo de nome - -arquivo--.
  • 57. 57 Sistemas Operacionais Luiz Arthur cp O comando cp copia os arquivos para outros arquivos ou para diretórios. O comando cp pode copiar um arquivo ou múltiplos arquivos. cp [opções] [origem] [destino] onde: origem Arquivo que será copiado. Podem ser especificados mais de um arquivo para ser copiado usando "Curingas" (veremos curingas a seguir). 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 e dispositivos.
  • 58. 58 Sistemas Operacionais Luiz Arthur -v, --verbose Mostra os arquivos enquanto estão sendo copiados. -s, --simbolic-link Cria link simbólico ao invés de copiar. -l, --link Faz o link no destino ao invés de copiar os arquivos. -p, --preserve Preserva atributos do arquivo, se for possível. -u, --update Copia somente se o arquivo de origem é mais novo que o arquivo de destino ou quando o arquivo de destino não existe. -x Não copia arquivos que estão localizados em um sistema de arquivos diferente de onde a cópia iniciou.
  • 59. 59 Sistemas Operacionais Luiz Arthur O comando cp copia 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 para teste1.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 /bin para o diretório em que nos encontramos no momento. cp -R /bin /tmp Copia o diretório /bin e 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 /bin para /tmp.
  • 60. 60 Sistemas Operacionais Luiz Arthur 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. -u, --update Move somente arquivos antigos, ou novos arquivos.
  • 61. 61 Sistemas Operacionais Luiz Arthur O comando mv copia 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 para teste1.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 copía.
  • 62. 62 Sistemas Operacionais Luiz Arthur Atividade 3 3.1 Crie um arquivo texto chamado atividade3.txt, e coloque o conteúdo: “Ola mundo cruel” 3.2 Crie um arquivo texto chamado Atividade3.1.txt, e coloque o conteúdo: “OLA MUNDO CRUEL”. 3.3 Visualise o conteúdo dos arquivos atividade3.txt e Atividade3.1.txt. 3.4 Crie um arquivo chamado chamado linux.txt, e coloque o conteúdo: “do Linux”. 3.5 Subistituá o conteúdo do arquivo linux.txt ao arquivo atividade3.txt e visualize os arquivos. 3.6 Acrescente o conteudo do arquivo linux.txt ao arquivo Atividade3.1.txt e visualize os arquivos. 3.7 Crie um diretório chamado aula3 e copie o arquivo atividade3.txt para este diretório. 3.8 Mova o arquivo Atividade3.1.txt para o diretório aula3. 3.9 Copie o conteudo do diretório aula3 para o diretório /tmp 3.10 Mova todos os arquivos txt e o diretório aula3 bem como seu conteúdo para o diretório /tmp/atividade3/
  • 63. 63 Sistemas Operacionais Luiz Arthur Curingas Curingas (ou referência global) é um recurso usado para especificar um ou mais arquivos ou diretórios do sistema de uma só vez. Este é um recurso permite que você faça a filtragem do que será listado, copiado, apagado, etc. São usados 4 tipos de curingas no GNU/Linux: "*" - Faz referência a um nome completo/restante de um arquivo/diretório. "?" - Faz referência a uma letra naquela posição. [padrão] - Faz referência a uma faixa de caracteres de um arquivo/diretório. Padrão pode ser: [a-z][0-9] - Faz referência a caracteres de a até z seguido de um caracter de 0 até 9. [a,z][1,0] - Faz a referência aos caracteres a e z seguido de um caracter 1 ou 0 naquela posição. [a-z,1,0] - Faz referência a intervalo de caracteres de a até z ou 1 ou 0 naquela posição.
  • 64. 64 Sistemas Operacionais Luiz Arthur A procura de caracteres é "Case Sensitive" assim se você deseja que sejam localizados todos os caracteres alfabéticos você deve usar [a-zA-Z]. Caso a expressão seja precedida por um ^, faz referência a qualquer caracter exceto o da expressão. Por exemplo [^abc] faz referência a qualquer caracter exceto a, b e c. Vamos dizer que tenha 5 arquivo no diretório /usr/teste: teste1.txt, teste2.txt, teste3.txt, teste4.new, teste5.new. Caso deseje listar todos os arquivos do diretório /usr/teste você pode usar o coringa "*" para especificar todos os arquivos do diretório: $ cd /usr/teste e ls * ou ls /usr/teste/*
  • 65. 65 Sistemas Operacionais Luiz Arthur Agora para listar todos os arquivos teste1.txt, teste2.txt, teste3.txt com excessão de teste4.new, teste5.new, podemos usar inicialmente 3 métodos: Usando o comando ls *.txt que pega todos os arquivos que começam com qualquer nome e terminam com .txt. Usando o comando ls teste?.txt, que pega todos os arquivos que começam com o nome teste, tenham qualquer caracter no lugar do coringa ? e terminem com .txt. Com o exemplo acima teste*.txt também faria a mesma coisa, mas se também tivéssemos um arquivo chamado teste10.txt este também seria listado. Usando o comando ls teste[1-3].txt, que pega todos os arquivos que começam com o nome teste, tenham qualquer caracter entre o número 1-3 no lugar da 6a letra e terminem com .txt. Neste caso se obtém uma filtragem mais exata, pois o coringa ? especifica qualquer caracter naquela posição e [] especifica números, letras ou intervalo que será usado.
  • 66. 66 Sistemas Operacionais Luiz Arthur Agora para listar somente teste4.new e teste5.new podemos usar os seguintes métodos: ls *.new que lista todos os arquivos que terminam com .new ls teste?.new que lista todos os arquivos que começam com teste, contenham qualquer caracter na posição do coringa ? e terminem com .new. ls teste[4,5].* que lista todos os arquivos que começam com teste contenham números de 4 e 5 naquela posição e terminem com qualquer extensão.
  • 67. 67 Sistemas Operacionais Luiz Arthur AA