Você está na página 1de 18

Lista de Exercícios – 02

O objetivo deste lista de exercícios é auxiliar os alunos em seus


estudos extra-classe, direcionando-os para as questões mais relevantes
apresentadas durante a aula. Aqui estão consolidados os tópicos
abordados, eventual bibliografia complementar ao Plano de Ensino,
bem como algumas questões que podem ser selecionadas para prova.

ESTES EXERCÍCIO DEVEM SER ENTREGUES NA PRÓXIMA AULA

Tó p i c o s a b o r d a d o s
FHS (Filesystem Hierarchy Standard), Permissões de Arquivos (Simbólico e Octal), Configurações
de Boot, Arquivos de Configuração do Usuário, SUDO, Partições, Sistemas de Arquivos e Arquivos
de Configuração, Associações de Arquivos, Hard & Symbolic Links.

Exercícios
1. O que fazem cada um dos seguintes comandos? • /boot/grub
Dê respostas objetivas e descritivas (uma a • /proc
duas linhas):
• man chmod 3. O que são e para o que servem os bootloaders?
• pwd 4. Como é determinada a permissão de um
• cd arquivo no modo simbólico?
• ls 5. Como é determinada a permissão de um
• apropos dir arquivo no modo numérico?
• clear
• mkdir aula_01 6. O que está gravado no arquivo etc/profile?
• ls -lah > lista.txt 7. Qual relação pode ser estabelecida entre o
• less lista.txt comando history e o arquivo .bash_history?
• man rmdir 8. Quais as características que o sudo agrega ao
• man rm su?
• man chmod 9. Quando dois scripts de inicialização entram em
• cp lista2.txt aluno/ conflito, como este conflito é resolvido?
• mv *.txt aluno/ 10. Para que servem os scripts: ~/.bashrc e
• lsusb ~/.bash_logout
• hwinfo
• lshal 11. O que é e para que serve o arquivo /etc/fstab?
• lshal -m 12. O que é e para que serve o arquivo
• lsmod /boot/grub/menu.lst?
• runlevel 13. O que é e para que serve o arquivo /etc/mtab?
• less grub-menu.lst 14. O que é e para que serve o arquivo
• less grub.cfg /proc/mounts?
• lsusb 15. O que é e para que serve o arquivo
• lspci /var/log/dmesg?
• lshal 16. Para que serve o comando dmesg | more?
• history
17. Explique e dê um exemplo de quais a estrutura
2. Qual a principal função de cada um dos e sintaxe mais comuns na utilização de
seguintes diretórios?: comandos com switches (opções)?
• /bin 18. Qual diferença os sinais “$” e “#” indicam no
• /sbin prompt do sistema? Por que isso é relevante?
• /boot
Os Sistemas UNIX

Criado nos Bell Laboratories o UNIX teve sua primeira versão compilada em
1969, e no que diz respeito a sua arquitetura e premissas o Linux é considerado
um “clone” do UNIX utilizando inclusive a mesma nomenclatura em seus comandos
operacionais principais .

O GNU/Linux e suas distribuições


Em 25 de agosto de 1991, uma mensagem postada por um então aluno da
Universidade de Helsinki, em um BBS, inesperadamente tornava-se um documento
histórico, anunciando pela primeira vez, o nascimento de um modesto sistema operacional batizado
de Linux, outro clone do UNIX como o seu próprio nome denunciava
Com esta mensagem, Linus Torvalds deu início ao processo de construção coletiva do
sistema operacional Linux, um sistema operacional “tipo X” que em poucos anos viria a concorrer
com todos os sistemas proprietários disponíveis no mercado, em todo tipo de finalidade.
Mas foi Richard Stallman quem criou a Free Software Foundation em 1984 iniciando o
projeto GNU, segundo Stallman sua motivação foi constatar o virtual desaparecimento da cultura de
compartilhamento de softwares dentro do laboratório de Inteligência Artificial do MIT, de onde seus
pares estavam saindo para entrar ou para fundar companhias de software proprietário.
Stallman é o autor da idéia por trás do "free software" (no Brasil batizado de Software
Livre) segundo a qual aos programadores deveria ser garantido o direito de acesso ao código fonte
dos softwares permitindo que alterações fossem feitas para adaptar o software a cada necessidade.
Foi Stallman quem criou a famosa licença GNU/GPL (sob a qual o Linux é licenciado), a
GNU General Public License (GNU/GPL).
GNU é um acrônimo recursivo para "GNU's Not Unix", um tipo de piadinha recorrente
entre os hackers e geeks.
A página oficial do projeto GNU na internet (http://www.gnu.org/gnu/gnu-history.html)
oferece a seguinte explicação sobre a sigla: "O nome 'GNU' foi escolhido porque atende alguns
requisitos; primeiro, era um acrônimo recursivo para 'GNU não é Unix' (GNU's Not Unix),
segundo, porque era uma palavra verdadeira, e terceiro, era divertida de dizer (ou cantar)."
Ubuntu - Um Linux muito fácil de usar
Muita coisa mudou nos últimos 10 anos, das primeiras versões do Linux até as mais
recentes os programadores que estão empenhados neste projeto ao redor do mundo atingiram um
retumbante sucesso. Mesmo assim, ainda hoje, muitas pessoas torcem o nariz quando se fala em
Linux, é comum ouvir frases como: “mas não é muito difícil?”, “com Linux não dá para usar
minha câmera”, “mas eu não sei compilar nada”, “isso é coisa de hacker, eu só quero usar o
computador”, ou até “eu lí em uma revista que o Windows é muito superior”. O primeiro objetivo
deste documento é desmistificar esta imagem, por isso não vamos focar a utilização do sistema com
o terminal de comando ou qualquer destas coisas ditas “avançadas”, vamos mostrar como usar o
Linux lidando quase exclusivamente com suas interfaces gráficas, e mesmo assim vamos conseguir
utilizar tudo o que alguém pode precisar em um sistema operacional.
O Linux que vamos utilizar (entre as dezenas que estão disponíveis) é o Ubuntu, uma distribuição
sul-africana atualmente muito popular.

Distribuições: Linux, gostoso


como sorvete! (e com
muitos sabores!)
Para o usuário acostumado com o MS-
Windows pode ser difícil entender logo de cara
todas as diferenças do Linux. A primeira e que em
geral causa mais confusão é o fato de que não existe
um Linux, existem vários, e pior, cada Linux pode
ter uma interface gráfica diferente, enquanto no
Zela - http://www.sxc.hu/
MS-Windows existe apenas uma. Mas na verdade
este é um conceito bem menos difícil do que parece, para entender as principais diferenças do Linux
em relação ao Windows é só pensar em sorvete.
Como assim? Bem.. sorvetes existem em diferentes sabores. Chocolate, creme, morango,
abacaxi, passas ao rum e baunilha, todos são sabores da mesma categoria: sorvete!
Com o Linux acontece a mesma coisa, existem o Slackware1, Debian2, Suse3, OpenSuse4,

1 http://www.slackware.com/ ou http://www.slackware-brasil.com.br/web_site/
2 http://www.debian.org/
3 http://www.novell.com/linux/
4 http://www.opensuse.org/
Fedora5, Ubuntu6, Muriqui7, Red Hat8, Kurumin9, Knoppix10 e diversos outros, todos são “sabores”
da mesma categoria: o Linux.
Estes diferentes sabores de Linux são chamados de distribuições.
Pensando novamente em sorvetes, independente do sabor, você sempre pode acrescentar
uma cobertura (ou várias), como calda de chocolate, frutas vermelhas, marshmellow, farofa
crocante, etc. É claro que a cobertura não é obrigatória, você ainda pode tomar o sorvete sem
cobertura e ele continua sendo sorvete. Também, embora a cobertura deixe o sorvete mais gostoso,
mudando um pouco o seu paladar, não dá para dizer que a cobertura chegue a mudar realmente o
“sabor do sorvete”, ela no máximo realça ou adiciona algo ao sabor.
Novamente, com o Linux ocorre a mesma coisa, independente do sabor (ou distribuição)
você pode utilizar a “cobertura” que quiser, ou seja, a interface gráfica que quiser. Existem diversas
“coberturas” para o Linux, as mais populares são o Gnome 11 e o KDE12, mas existem outras como o
Enligthment13 e Xfce14
É difícil comparar as interfaces gráficas disponíveis para o Linux pois muitos fatores estão
envolvidos, em alguns casos a interface é apenas um gerenciador de janelas como o Enlightment ou
um sistema de Desktop completo como o KDE. O Gnome tem foco na usabilidade e na
simplicidade, já o Xfce pretende ser leve o bastante para funcionar em máquinas mais modestas.
Cada uma dessas GUI15 apresenta abordagens e funcionalidades diferenciadas.
Para quem está chegando agora é interessante notar que no Linux (bem como no sistema
UNIX que lhe deu origem) as funcionalidades são atingidas com a cooperação de diferentes
componentes, incluindo aí a separação do X Windows System16 do sistema propriamente dito. Isso
impede que o código do sistema vire uma grande bagunça como ocorre em outros sistemas
operacionais, mas o melhor é que ele permite que “peças” sejam rapidamente trocadas, de acordo
com sua necessidade (você pode mudar do Gnome para o KDE, ou se quiser utilizar os dois na sua
máquina).
A cobertura pode até deixar o sorvete mais gostoso, mas ela não é obrigatória, você ainda
vai ter uma experiência completa no Linux, com uma máquina 100% funcional, mesmo sem uma
interface gráfica.

5 http://fedoraproject.org/wiki/ ou http://www.fedora.org.br/
6 http://www.ubuntu.com/
7 http://www.muriquilinux.com.br/
8 http://www.redhat.com/ ou http://www.br.redhat.com/
9 http://www.guiadohardware.net/gdhpress/kurumin/
10 http://www.knoppix.org/
11 http://www.gnome.org/ ou http://br.gnome.org/
12 http://www.kde.org/ ou http://twiki.softwarelivre.org/bin/view/KdeBR/WebHome
13 http://www.enlightenment.org/
14 http://www.xfce.org/
15 GUI = Graphic User Interface, ou Interface Gráfica do Usuário
16 Código que servem de base para as interfaces gráficas do Linux
Mapa do Gnome
O “sabor” de Linux que
trataremos aqui é o Ubuntu (e suas
variantes Kubuntu, Xubuntu e Xfce), a
ilustração 1 mostra a interface clássica do
Ubuntu com o gerenciador de janelas
Gnome.
Esta imagem exibe as principais
áreas do Gnome.
Ilustração 1: A área de trabalho do Ubuntu
São elas:

1. A Barra de Menus, que traz menus personalizados e alguns ícones ao seu lado
(neste caso para acesso rápido ao navegador web (browser) Firefox, o cliente de e-mail
Evolution e ao sistema de ajuda);
2. Relógio/Calendário, Controle de Volume e botão para Desligar o sistema;
3. Alguns ícones no Desktop para acesso rápido a programas;
4. Botão para minimizar (ou maximizar) todas as janelas e exibir rapidamente o
Desktop;
5. Aplicativo minimizado no painel inferior;
6. Alternador de Espaços de Trabalho – permite que você tenha a sensação de
trabalhar com diversos Desktops;
7. A Lixeira do sistema;
8. O Desktop.

C o p y & Pa s t e
Além do tradicional Ctrl+C e Ctrl+V o gerenciador de janelas Gnome (usado por padrão
no Ubuntu) permite uma forma alternativa e prática de se copiar um conteúdo, utilizando apenas o
mouse. Para isso basta selecionar o texto que se deseja copiar na janela de origem (por exemplo, seu
browser) e depois, com o conteúdo ainda selecionado, abra a janela de destino (por exemplo o
Writer) e clique com o botão do meio do mouse (em geral uma rodinha de scroll). Se você clicar a
rodinha como se ela fosse um botão, o texto será copiado, sem a necessidade das teclas Crtl+C e
Ctrl+V.
Criando links no Desktop
O gerenciador de janelas Gnome permite que links e arquivos de texto sejam criados
diretamente na sua Área de Trabalho (ou dentro de diretórios caso eles estejam abertos e visíveis).
Para criar um arquivo de texto basta selecionar o texto e arrastar para o Desktop, isso criará um
arquivo automaticamente. Para criar
um link você deve utilizar o mesmo
procedimento, arraste o ícone da
página, que está dentro da barra de
endereço do seu broswer para o
Desktop (conforme indicado na
ilustração 2) e um link será criado
como atalho, permitindo que você
volte a página apenas dando um duplo
clique neste atalho (este procedimento
também funciona com links dentro das
Ilustração 2: Métodos para criar arquivos e links no Desktop páginas).
com o GNOME.
L i n u x Fi l e s y s t e m S t a n d a r d 1 7

O FHS (Filesystem Hierarchy Standard) especifica detalhadamente como um sistema de


arquivos do Linux deve ou não deve ser, seu principal objetivo é prover consistência e padronização
entre os sistemas de arquivo. Esta padronização pode ser resumida assim:

Ilustração 3: Exemplo generalizante de uma estrutura de diretórios em acordo


com a FHS.
Fonte: Special Edition Using Linux, Sixth Edition

Recursos compartilháveis versus recursos não compartilháveis. Consiste nos arquivos que
podem ser distribuídos entre diferentes hosts e em arquivos que devem ser específicos de um único
host. Por exemplo, os dados de uma aplicação de banco de dados podem ser distribuídos em
diferentes hosts.

ATENÇÃO: Você pode não ter todos os diretórios que serão


listados ou pode ter alguns a mais. Eles são geralmente
criados por programas, conforme as necessidades, ou
durante uma instalação ou quando o programa é executado
pela primeira vez.

17 Baseado em: Special Edition Using Linux, Sixth Edition


Conhecendo o Shell
O termo Shell se refere aos programas de sistemas do tipo Unix que recebem, interpretam e
executam comandos do usuário. Ele funciona como uma linha de comandos, representada por um
prompt, que aguarda na tela os comandos do usuário.
A tradução de Shell para português significa "concha". Na informática o Shell, de maneira
genérica, é um programa utilizado para efetuar o contato entre o usuário e o computador.
Neste sentido genérico poderíamos dizer que o Shell dos antigos MS-Windows 3.1 e 3.11
era o Prompt de Comando, que podia inclusive ser substituído por outro programa, mudando a
interface do usuário com o sistema. É claro que comparar o Shell do Lunix com o Prompt de
Comando dos antigos MS-Windows é meio desproporcional, já que o Shell é muito mais poderoso.

ATENÇÃO: processos e programas (inclusive os gráficos)


podem ser ativados via Shell.

Existem diversas implementações de Shell, dentre as quais podemos mencionar o csh, tcsh,
sh, bash, ksh, zsh e muitas outras. Cada uma pode executar comandos gerais do sistema de maneira
semelhante, porém possuem estruturas e comandos próprios que os diferenciam. Outra grande
diferença entre os diversos tipos de Shell são as facilidades que eles oferecem para o
reaproveitamento de comandos e manipulação da linha de comandos18 (nossos exemplos irão, em
sua maioria, utilizar o bash).

ATENÇÃO: No Linux uma mesma palavra escrita em caixa


alta (MAIÚSCULAS) e caixa baixa (minúsculas) será tratada
como duas palavras diferentes. Essa regra vale para
diretórios, arquivos, logins (nomes de usuário) e senhas.

Ao utilizar o Shell a primeira coisa que você deve ter em mente é que no Linux caixa alta
(MAIÚSCULAS) e caixa baixa (minúsculas) são coisas completamente diferentes. Assim os
diretórios abaixo são totalmente independentes e devem ser digitados corretamente para serem
acessados:

/home/Fatec/
/home/FATEC/
/home/fatec/

18 FONTE: http://pt.wikipedia.org/wiki/Shell
C r i a n d o Pa c o t e s TA R
O Linux permite que você “empacote” vários arquivos e/ou diretórios em um único
arquivo. Para isso utilizamos o comando tar. Veja o exemplo:

tar -cvvf teste.tar aula/

cria um tar do diretório aula no arquivo teste.tar

tar -xvvf teste.tar

extrai o diretório aula de dentro do arquivo teste.tar

Digitando Rapidamente
No shell do Linux é possível repetir um comando já digitado anteriormente apertando a
seta “para cima” do teclado até localizar o comando procurado. Usando as setas para direita e
esquerda você pode editar um comando modificando algum parâmetro.
Outra recurso para otimizar a digitação é um recurso que envolve nomes longos de
arquivos ou diretórios. Por exemplo, se você tiver um diretório com dois arquivos com os seguintes
nomes:

trabalhos1oSem2006_FATEC-CP.tar.gz
provas2oSem2006_FATEC-CP.tar.gz

E deseje copiar rapidamente descompactar o arquivo de provas. Para isto basta digitar:

tar -xvzf p <tecla TAB>

Ou seja, basta digitar um comando, a primeira letra do arquivo e depois a tecla TAB para a
linha digitada aparecer com o nome do seu arquivo desta forma:

tar -xvzf provas2oSem2006_FATEC-CP.tar.gz

Permitindo que o comando seja mais rapidamente executado já que você não vai precisar
digitar todo o nome do arquivo.
Perm i s s õ e s d e A rq u i v o s
Cada diretório e arquivo tem três conjuntos de permissões aplicadas a eles: um para o
usuário, um para o grupo de usuários a que pertence, e um para todos os outros usuários.
Os tipos de permissão são:

● leitura , em inglês: read (r)


● escrita , em inglês: write (w)
● execução, em inglês: execute (x)

A notação dessas permissões em um diretório ou arquivo é exibida da seguinte maneira:

Desta forma é possível determinar exatamente quem pode fazer o que com cada arquivo.
Com direito de leitura um usuário pode ler um arquivo, com direito de escrita pode além de alterar
apagar o arquivo, e com direito de execução pode acionar um programa.
Quando estamos falando de um diretório as regras são muito parecidas, a principal
diferença é o direito de execução que neste caso se refere a permissão para “ver” o conteúdo do
diretório. O direito de escrita em um diretório permite renomear ou apagar o diretório, mas para
interferir com os arquivos dentro de um diretório o usuário precisa ter direitos sobre cada um deles.
O usuário root tem acesso ilimitado a todos os diretórios e arquivos, independente das
permissões.
Com o comando ls -l você pode ver as permissões de um arquivo no terminal. O Comando
ls -CF ajuda muito quem está começando pois mostra direórios, arquivos e links com clareza.
Para mudar as permissões utilizamos o comando chmod. Existem duas sintaxes possíveis
para este comando, uma com letras e outra, mais simples, com números.
Método Letras (Simbólico)
Utiliza os sinais + ou – (adição ou subtração) para adicionar ou remover permissões. Com
uma combinação das letras “ugoa” você controla quais usuários podem ter aceso ao arquivo/pasta.
Os perfis são: usuário que é o dono do arquivo (u), outros usuários no grupo (g), outros
usuários que não pertencem ao grupo (o), todos os usuários (a). Se a letra não é especificada o
comando interpreta que a seleção foi “a”.

Exemplos (Método Simbólico)

chmod u+rw arquivo / Dá ao usuário permissão de ler e escrever.


chmod o-rwx arquivo / Remove ler/escrever/executar dos usuários
fora do grupo.
chmod a+r arquivo / Dá a todos permissão de ler o arquivo.
chmod a=rx arquivo / Dá a todos permissão de executar e ler o
arquivo, se alguém tivesse permisão de escrita ela seria
removida.

Método Números (Octal)


Cada permissão também pode se representada por um valor numérico, da seguinte forma:

r = 4
w = 2
x = 1
- = 0

Somados estes valores representam um número que determina um tipo específico de


permissão, funcionando como um tipo de atalho para o método das letras. Em um hipotético
arquivo texto_exemplo.txt, temos as seguintes permissões:

- (rw-) (rw-) (r--)


| | |
4+2+0 4+2+0 4+0+0

O total para o usuário é seis, o total para o grupo é seis e o total para os outros é quatro.
Desta forma a permissão é representada por 664. Para alterar um arquivo para esta permissão basta
digitar:

chmod 644 nomedoseuarquivo.txt


ANTENÇÃO: Resultados catastróficos podem advir do uso
incorreto ou desatento das permissões, em especial
permissões 666 e 777. Elas permitem que qualquer um leia e
escreva em um arquivo ou em um diretório. Isso em geral
não é uma boa idéia.

Perm i s s õ e s d e A rq u i v o s – G n o m e G U I
No Gnome é possível alterar as permissões de um arquivo ou diretório dando um clique
com o botão direito sobre um arquivo ou diretório, selecionando PROPRIEDADES no menu pop-
up que se abriu e depois clicando na aba PERMISSÕES:

Ilustração 5: A mesma tela de alteração de


Ilustração 4: Tela de alteração de permissões na versão7.10 do Ubuntu.
permissões na versão 6.10 do Ubuntu.

As imagens acima (ilustrações 8 e 9) permitem notar que a interface gráfica pode variar um
bocado entre diferentes releases de uma mesma distribuição. Este é outro grande motivo para você
aprender a lidar com as permissões de arquivos e diretórios por intermédio do Shell.

ATENÇÃO: Além do comando chmod que altera as


permissões (modo) dos arquivos, você também pode alterar
o proprietário (owner) com o comando chown e o grupo
(group) com o comando chgrp.
Explorando as Configurações de Boot
• Os gerenciadores de boot podem gerenciar outros SO como o Windows. Eles são
responsáveis por carregar o kernel do Linux na memória ou passar o controle da máquina
para o Windows caso esta opção seja selecionada.
• O bootloader reside na MBR, mas como alternativa, pode ser instalados na primeira seção
da partição Linux (especialmente se estiver dando algum problema ou conflito com o
Windows).
• Os bootloaders mais comuns são o LILO e GRUB. Ambos trazem diversas opções de boot
como recuperação (rescue) e failsafe booting.
• O LILO (LInux LOader) é mais antigo e começa a cair em desuso. O arquivo /sbin/lilo é
usado para configurar o LILO e para escrever na MBR/1st boot sector. O arquivo
/etc/lilo.conf guarda as configuração do LILO. Ou seja o /sbin/lilo lê o lilo.conf para
configuração.
• O GRUB (GRand Unified Bootloader) é mais moderno, mais popular e tem mais funções.
Ao contrário do LILO pode sofrer upgrade sem reconfiguração de imagem e sem
necessidade de reboot. Pode ser encarado mais como um programa (enquanto o LILO está
mais próximo de um script) e permite maior flexibilidade. Seu arquivo de configuração é o
/boot/grub/grub.conf (no Ubuntu, pelo menos até a versão 9.04 é o /boot/grub/menu.lst ,
na versão 9.10 esse arquivo é o grub.cfg ), mas ele pode ser configurado com o comando
grub no terminal.

Arquivos de Configuração do Usuário


Antes e após o login no shell diversos profiles e scripts de configuração rodam configurando o
ambiente para cada usuário .
– etc/profile (é o arquivo de configuração global. É executado antes do script de configuração do
usuário)
– ~/.bash_profile (Caso exista é o script executado na seqüencia. No Ubuntu consta apenas como
.profile e “este arquivo não é lido pelo bash se os arquivos ~/.bash_profile ou ~/.bash_login
existirem”19
– Nos scripts de configuração, caso haja conflitos, é sempre o último script rodado que prevalece
– ~/.bashrc – define os setups do shell, opções, prompt, os alias e funções
– ~/.bash_logout - roda no logout. Limpa variáveis e textos
– ~/.bash_history - mantém o histórico dos comandos rodados (conteúdo que pode ser acessado
utilizando-se o comando history ou clicando na setinha superior do teclado).

O SUDO
O aplicativo sudo permite ao usuário executar comandos como o super-usuário ou como outro
usuário, conforme for especificado no arquivo /etc/sudoers20.
A habilidade de permitir que usuários comuns obtenham privilégios de super usuário, serve para
permitir que eles executem tarefas específicas dentro do sistema de maneira segura e controlável
pelo administrador.
O sudo é uma alternativa aperfeiçoada ao comando su do Unix, agregando as seguintes
características21:
1. O “sudo” permite que seja conferida permissão apenas para alguns comandos, no lugar de

19 Traduzido do manual do Linux.


20 Traduzido da página “man” do sudo.
21 Fonte: http://www.tech-faq.com/sudo.shtml
todos os comandos.
2. O “sudo” permite que todos os comandos (e seus parâmetros) sejam gravados em um log da
exata forma que forem utilizados pelo usuário.
3. O “sudo” não requer que o administrador compartilhe a senha do root.
4. O “sudo” permite que os usuário que podem utilizá-lo sejam definidos editando o arquivo
de sudoers.
5. O “sudo” é desabilitado após 5 minutos (por padrão).

Pa r t i ç õ e s , S i s t e m a s d e A r q u i v o s e A r q u i v o s d e
Configuração
O arquivo /etc/fstab guarda as informações dos filesystems estáticos (static file system
information), indicando o que está disponível, o que são, e onde estão montados. Traz 6 colunas:
device: ou filesystems device file, onde ele mora (onde está fisicamente), ex.: /dev/hda | mount
point: o ponto de monagem, o link entre o dispositivo e o sistema de arquivos | filesystem type:
qual o tipo de sistema de arquivos, em geral algo como ntfs, vfat, ext2, ext3, rfs4, etc | opções: rw
(read e write), ro (read only), auto, etc. | dump type: O Dump é um utilitário de backup. Esta opção
dump permite que o Dump verifique o valor atribuído e decida se o sistema de arquivos deve
sofrer um backup. Se o valor for zero, o Dump irá ignorar este sistema de arquivos22. | fsck order:
A última coluna é a opção fsck order. O fsck verifica o número nesta coluna para determinar a
ordem de verificação dos sistemas de arquivos. Se o valor for zero o sistema de arquivos não será
verificado pelo fsck23.
Juntamente com o arquivo /etc/fstab o /etc/mtab é um dos arquivo centrais para que o sistema
operacional saiba onde estão e como operam as partições. O /etc/fstab, ou "file system table", é um
arquivo que especifica onde os dispositivos devem ser montados e fornece informações que
auxiliam neste processo. Ele mantém a listagem das partições que são automaticamente montadas
pelo sistema e não exibe as partições montadas pelo usuário com o comando mount, ou montadas
sob demanda pelas distribuições como câmeras e pen-drives. Já o /etc/mtab lista exatamente este
dispositivo e partições.
O /etc/mtab (nome que deriva da contração de "mounted file systems table") é comummente
encontrado em sistemas Unix-like com a função de listar os sistemas de arquivos montados na
máquina. O formato do /etc/mtab é semelhante ao do /etc/fstab, sua principal diferença talvez
resida no fato de que é automaticamente editado quando o comando mount é utilizado. Esta edição
acrescenta as informação de quais filesystems estão em uso e como eles estão sendo utilizados.
Outro arquivo importante neste tópico é o /proc/mounts, ele exibe a lista com todos os dispositivos
montados que estão em uso pelo sistema. O conteúdo é similar ao do /etc/mtab, com a diferença
que o /proc/mounts é sempr mais atualizado24.
Particionar uma máquina para operar em dual booting com o Windows requer, inicialmente,
partições separadas (no mesmo HD). O bootloader do Linux gerencia o boot, dá o menu de opções
e o timeout. Alterando a configuração do GRUB (ou LILO) é possível alterar o timeout, a ordem
de boot e diversas outras opções. Note que o o boot manager do Windows continua controlando o
boot no Windows, então quando a opção Windows é selecionada o GRUB passa o controle da
máquina para o boot manager do Windows, como se este tivesse recebido a chamada diretamente do
bootstrap25 da BIOS. Como o Windows não consegue entender a partição do Linux é sempre mais
22 FONTE: http://www.tuxfiles.org/linuxhelp/fstab.html
23 idem
24 FONTE:http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5/html/Deployment_Guide/s2-proc-
mounts.html
25"In computing, bootstrapping (from an old expression "to pull oneself up by one's bootstraps") is a technique by
which a simple computer program activates a more complicated system of programs. In the start up process of a
computer system, a small program such as BIOS, initializes and tests that hardware, peripherals and external memory
devices are connected, then loads a program from one of them and passes control to it, thus allowing loading of larger
fácil instalar primeiro o Windows e depois o Linux.
Caso você tenha problemas no processo de Boot sua primeira providência será identificar o que
pode estar ocorrendo de errado. Para isso você pode usar o comando dmesg (contração de display
messages) que exibirá todas as mensagens dos sistema na inicialização. Por conveniência você pode
utilizar dmesg | more para exibir as mensagens de forma paginada ou pode ir direto ao arquivo
/var/log/dmesg e exibir seu conteúdo.

DAEMON
"D-A-E-M-O-N. Daemon. Substantivo. Um programa de computador que roda continuamente em
segundo plano e executa operações pré-definidas em intervalos pré-definidos de tempo ou em
resposta a certos eventos. Condensado de Disk And Execution MONitor." 26

programs, such as an operating system."


FONTE: http://en.wikipedia.org/wiki/Bootstrapping_(computing)
26 Daemon (Unabridged) by Daniel Suarez [Audio Book narrated by Jeff Gurner]. EUA, 2009-08-01 [cit. 2010-03-
09]. URL <http://www.audible.com/adbl/site/entry/offers/partnerPromotions.jsp?
BV_SessionID=@@@@0461784559.1268138888@@@@&BV_EngineID=cccjadejlefhklmcefecekjdffidfgo.0&pr
oductID=BK_PENG_001078>.
Um pouco de Shell
O Shell, às vezes referido como CLI (Command Line Interface), é a porta de interação com a
máquina, especialmente se não existi uma GUI instalada.
O Shell mais utilizado hoje em dia é o bash (acrônimo para Bourne Again Shell), mas existem
outros como C Shell e o Korn Shell. Em geral os sistemas Linux contam com mais de um Shell
instalado.
Esteja atento ao prompt do Shell, o sinal “$” indica que você está utilizando uma sessão de usuário,
já o sinal “#” indica uma sessão do root.
Quanto a estrutura e sintaxe, em sua maioria, os comandos podem ser seguidos por opções
chamadas de switches. Os Switches são utilizados separados do comando por um espaço e um traço
como neste exemplo:
● Comando normal: ls
● Comando com switches: ls -lah

Obs.: Como o exemplo acima indica os switches podem ser encadeados com mais de uma opção.

Obs.2: A maior parte da certificação LPI 101 é um teste de conhecimento sobre comandos do Linux.

Para navegar nos diretórios do sistema utilizamos comandos relativamente simples. Antes de
apresentarmos estes comandos tenha em mente que um diretório é um nível ou contentor de
diretórios e arquivos. Algo muito semelhante ao conceito de pastas utilizado no Windows.
No Linux a estrutura de diretórios corresponde a uma hierarquia denominada FHS27 (Filesystem
Hierarchy Standard). Para saber mais sobre o FHS consulte este endereço da Wikipédia:
http://pt.wikipedia.org/wiki/FHS que traz uma coleção completa com os diretórios padrão e o
objetivo de cada diretório.
Lembre que "/" (ou root) é o topo da estrutura. Um caminho é referido como "path".
Para subir um nível na estrutura utilize o comando cd ..
O comando cd abre/entra em um diretório ou se utilizado sozinho leva de volta ao diretório home
do usuário.
Você pode utilizar todo o caminho para chegar a um arquivo, como neste exemplo:
cd /home/rbns/Desktop/teste o que chamamos de path absoluto, ou utilizar algo como
cd ../../teste o que é chamado de path relativo.
Outros comandos que irão auxiliar na navegação pelo sistema são o pwd que informa em qual
diretório você está naquele momento, o cd ou cd ~ que levam de volta ao diretório home do
usuário e o comando ls que lista o conteúdo de um diretório.

Dicas & Truques

Terminais
- Os dispositivos tty (Teletype device) são classificados em três tipos: Seriais, Terminais Virtuais (o console,
que permite alternar com as teclas ALT+Fn) e os Pseudo-Terminais (normalmente usadas pelo servidor X).
- No Ubuntu digite Ctrl+Alt+F1 até F6 para alternar o entre os consoles.

27 Site oficial do FHS: http://www.pathname.com/fhs/


- Digitando Ctrl+Alt+F7 você irá retornar para a interface gráfica

Ajuda & as páginas do MAN(ual)


- Em geral, existem 3 tipos de ajuda disponíveis no Linux: - -help, info e man.
- O - -help switch traz muitas variações e estas dependem da distribuição. Traz apenas uma descrição
breve e algumas opções. Seu conteúdo varia entre distribuições, versões e até comandos.
- O comando info é um pouco mais completo. Traz mais informações sobre um programa ou script
Consultados. Porém é bastante inconsistente quanto a sua disponibilidade.
- Já as páginas o MANual são a ajuda mais amplamente disponível e completa do sistema. Praticamente
todo item do sistemas tem uma página correspondente no manual. O manual é acessado com o comando
man seguido de espaço e o comando que se deseja consultar.

Montando Sistemas de Arquivos (Filesystems)


- Se um sistema de arquivos for montado manualmenye o /etc/mtab irá conter uma entrada similar aquela
que seria necessário inserir no /etc/fstab para montar o sistema de arquivos automaticamente.

ASSOCIAÇÕES DE ARQUIVOS

A inicialização automática de programas (após um duplo clique em um ícone) é feita no Windows


com base na associação que a extensão do arquivo tem gravada no registro.
Isso significa que um arquivo teste.txt que normalmente seria aberto pelo Notepad pode ser aberto
pelo Word com uma simples alteração de nome para teste.doc
No LINUX isso funciona de outra forma. No começo de cada arquivo, há um header com um valor
hexadecimal que contém informações que ligam o arquivo com o programa apropriado. Há um
banco de dados no arquivo "magic" que é checado para que se avalie qual programa deve ser
acionado.

O arquivo "magic" fica em usr/share/magic e traz o banco de dados dos arquivos conhecidos (no
Ubuntu procure em: usr/share/mime/magic)
Como a extensão dos arquivos no Linux não é determinante para quase conheça o arquivo há um
comando específico que permite identificar a natureza dos arquivos.
É o comando "file". Digite "file" no terminal para informar: tipo, versão e plataforma de um
arquivo. Veja os exemplos:

rbns@rbns-laptop:~$ file TORP


TORP: UTF-8 Unicode text

rbns@rbns-laptop:~$ file SOLAR-POWERED_SUN_BRICK.pdf


SOLAR-POWERED_SUN_BRICK.pdf: PDF document, version 1.4

rbns@rbns-laptop:~$ file GoogleEarthLinux.bin


GoogleEarthLinux.bin: POSIX shell script text executable
28
Hard & Symbolic Links
"Há dois tipos de ligações: ligações físicas (Hard Links) e ligações simbólicas (Symbolic Links29).
A maneira como uma ligação aponta para um arquivo é uma das diferenças entre uma ligação física
e uma simbólica.30 (…) Ligações são úteis para manter múltiplas cópias de um arquivo em muitos
lugares de uma só vez, sem ter que se usar mais espaço de armazenamento para as cópias; em vez
disso, uma ligação "aponta" para a cópia original. 31 (…) Uma ligação física para um arquivo é
indistinguível da entrada original; quaisquer mudanças no arquivo são efetivamente independentes
do nome usado para referenciar o arquivo. Ligações físicas não podem fazer referência a diretórios
e não podem transpor sistemas de arquivos.32 (…) Uma ligação simbólica contém o nome do
arquivo ao qual ela está ligada." 33

Comparison of Hard Link and Symbolic Link34


Item Hard Link Symbolic Link
Slower. A symbolic link contains a
Faster. A hard link contains a direct
Name resolution path name to the object, which must
reference to the object.
be resolved to find the object.
Optional. A symbolic link can be
Required. An object must exist in
Object existence created when the object it refers to
order to create a hard link to it.
does not exist.
Restricted. All hard links to an object Unrestricted. An object can be
Object deletion must be unlinked (removed) to delete deleted even if there are symbolic
the object. links referring to it.
Slower. Many of the attributes of an
object are stored in each hard link.
Dynamic objects Faster. Changes to a dynamic object
Changes to a dynamic object,
(attributes change) are not affected by symbolic links.
therefore, are slower as the number
of hard links to the object increases.
Faster. For a static object, name
Static objects resolution is the primary
Slower. Name resolution is slower
(attributes do not performance concern. Name
when symbolic links are used.
change) resolution is faster when hard links
are used.
Restricted. Hard links cannot cross Unrestricted. Symbolic links can
Scope
file systems. cross file systems.

28 Mais detalhes em: http://alanbueno.net/openbsd/pt_BR.ISO8859-1/man/html7/symlink.html


29 “In computing, a symbolic link (also symlink or soft link) is a special type of file that contains a reference to another
file or directory in the form of an absolute or relative path and that affects pathname resolution. Symbolic links were
already present by 1978 in mini-computer operating systems from DEC and Data General's RDOS. Today they are
supported by the POSIX operating-system standard, most Unix-like operating systems, Windows Vista, Windows 7
and to some degree in Windows 2000 and Windows XP. Symbolic links operate transparently for most operations:
programs which read or write to files named by a symbolic link will behave as if operating directly on the target file.
However, programs that need to handle symbolic links specially (e.g., backup utilities) may identify and manipulate
them directly.” FONTE: http://en.wikipedia.org/wiki/Symbolic_link
30 FONTE: http://alanbueno.net/openbsd/pt_BR.ISO8859-1/man/html1/ln.html
31 idem
32 idem
33 idem
34 FONTE: http://publib.boulder.ibm.com/iseries/v5r2/ic2924/index.htm?info/ifs/rzaaxmstlinkcmp.htm

Você também pode gostar