aula 4 - linux sob a fhs

29
TSO 01 – Linux Básico Capítulo 4: Linux sob a FHS – Entendendo a estrutura dos sistemas de arquivos _______________________________________________________________ http://www.treinatux.com.br 1/29 Linux Básico Linux sob a FHS

Upload: william-rezende

Post on 05-Aug-2015

71 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Aula 4 - Linux Sob a FHS

TSO 01 – Linux Básico

Capítulo 4: Linux sob a FHS – Entendendo a estrutura dos sistemas de arquivos

_______________________________________________________________

http://www.treinatux.com.br 1/29

Linux Básico

Linux sob a FHS

Page 2: Aula 4 - Linux Sob a FHS

TSO 01 – Linux Básico

Capítulo 4: Linux sob a FHS – Entendendo a estrutura dos sistemas de arquivos

_______________________________________________________________

http://www.treinatux.com.br 2/29

Sumário

Introdução.................................................................................................................................... 4

1. Diretórios ........................................................................................................................... 5

1.1. Diretório / .................................................................................................................. 8

1.2. Diretório /bin ............................................................................................................. 8

2.3. Diretório /sbin ................................................................................................................ 9

2.4. Diretório /etc ........................................................................................................... 10

2.5. Diretório /home ...................................................................................................... 11

2.6. Diretório /root ......................................................................................................... 12

2.7. Diretório /tmp ......................................................................................................... 12

2.8. Diretório /usr .......................................................................................................... 14

2.9. Diretório /opt .......................................................................................................... 15

2.10.Diretório /boot ............................................................................................................ 15

2.11. Diretório /media ........................................................................................................ 16

2.12. Diretório /mnt ............................................................................................................. 17

2.13. Diretório /dev ............................................................................................................. 17

2.14. Diretório /lib ............................................................................................................... 18

2.15. Diretório /var .............................................................................................................. 18

2.16. Diretório /proc ........................................................................................................... 19

2.17. Diretório /sys ............................................................................................................. 20

Page 3: Aula 4 - Linux Sob a FHS

TSO 01 – Linux Básico

Capítulo 4: Linux sob a FHS – Entendendo a estrutura dos sistemas de arquivos

_______________________________________________________________

http://www.treinatux.com.br 3/29

2.18. Diretório /srv .............................................................................................................. 20

3. Navegando no sistema ................................................................................................. 20

3.1. Caminhos absolutos .................................................................................................. 20

3.2. Caminhos relativos .................................................................................................... 24

3.3. Caracteres de localização ........................................................................................ 25

4. Considerações finais .................................................................................................... 28

Page 4: Aula 4 - Linux Sob a FHS

TSO 01 – Linux Básico

Capítulo 4: Linux sob a FHS – Entendendo a estrutura dos sistemas de arquivos

_______________________________________________________________

http://www.treinatux.com.br 4/29

Introdução

Todo sistema operacional é organizado internamente em grupos e

subgrupos de arquivos, de forma a separar dados de forma lógica e

conveniente para o administrador e para os usuários do mesmo sistema,

além de outros usuários remotos. Esta organização é fundamental para

que os arquivos e diretórios sejam alocados em locais de acesso lógico

para os usuários, de forma que eles não precisem simplesmente

procurar por todo o sistema para localizar os objetos.

A partir do momento em que as distribuições GNU/Linux

começaram a surgir, um dos problemas mais recorrentes se tornou a

falta de padronização da organização dos sistemas de arquivo. Mais

precisamente, existiam diferenças absurdas entre a localização e a

nomeação dos arquivos vitais do sistema operacional entre as

distribuições.

Isso dificultava muito a migração de usuários entre as

distribuições, pois os que se habituavam à uma se viam completamente

perdidos dentro de outra distribuição. Porém, o problema maior era atrair

novos usuários para o mundo GNU/Linux, justamente pela desarmonia

entre os vários representantes deste sistema aos leigos.

Foi pensando nisso que, em 1996, uma entidade chamada Free

Standards Group, ou FSG, lançou no mercado o documento Filesystem

Hierarchy Standard. Este documento, que hoje se encontra em sua

versão 2.3, visa estabelecer o padrão da estruturação interna dos

sistemas operacionais Unix-like, em especial o Linux.

Desta forma, desenvolvedores de softwares, programadores,

administradores e usuários possuem uma referência para onde procurar

determinados tipos de arquivo dentro do sistema.

Page 5: Aula 4 - Linux Sob a FHS

TSO 01 – Linux Básico

Capítulo 4: Linux sob a FHS – Entendendo a estrutura dos sistemas de arquivos

_______________________________________________________________

http://www.treinatux.com.br 5/29

O documento completo está disponível no site:

http://www.pathname.com/fhs/

Nesta aula, iremos abordar as informações relativas à

padronização do uso de diretórios, e quais os arquivos que devemos

esperar que estejam dentro deles.

É importante lembrar que a FHS é uma sugestão de

padronização, e não um documento oficial obrigatório do projeto

GNU/Linux que deve ser seguido a todo custo. A maioria das

distribuições Linux não adotam a FHS em sua totalidade, muito embora

a maioria dos diretórios já tenham sido estabelecidos como um padrão

para o Linux.

1. Diretórios

Um diretório nada mais é do que um local no nosso sistema onde

são relacionados vários arquivos. É o objeto virtual equivalente às

pastas do Windows.

No Linux, o diretório-pai de todos os outros é o diretório /.

Abaixo do diretório / são localizados todos os outros diretórios e

arquivos do sistema, e não existe nada acima deste diretório. Podemos

considerar este diretório um equivalente ao “Meu Computador” do

Windows.

Antes de começarmos a estudar sobre os diretórios principais do

GNU/Linux, deveremos aprender a navegar entre os diretórios.

Fazendo o login no tty1 com o usuário root, este usuário será

autenticado e passará a controlar o seu shell.

Page 6: Aula 4 - Linux Sob a FHS

TSO 01 – Linux Básico

Capítulo 4: Linux sob a FHS – Entendendo a estrutura dos sistemas de arquivos

_______________________________________________________________

http://www.treinatux.com.br 6/29

Toda vez que um usuário faz login no sistema, ele ‘cai’ em um

diretório padrão relacionado a ele, como se fosse um ponto de partida

virtual. Este diretório é chamado de diretório home, ou apenas home.

Normalmente, um diretório home é o diretório pessoal do usuário, onde

ele guardará seus arquivos e centralizará suas atividades.

Como fazemos para descobrir em qual diretório nós estamos?

Muito simples, é só executar o comando pwd:

# pwd

Ou, caso você esteja utilizando o usuário tux:

$ pwd

� pwd signficia ‘print work directory’, ou seja, ‘exibir diretório

corrente’.

O comando pwd irá exibir em qual diretório nosso usuário estará

trabalhando no momento. Quando estamos em um diretório, ficaremos

estacionados nele até executarmos um comando para mudarmos de

diretório corrente.

A saída do comando pwd para o usuário root será:

/root

E a saída para o usuário tux será:

/home/tux

Ou seja, o root, ao se logar, cai diretamente dentro do diretório

/root, o seu diretório home.

Já o tux, ao se logar, cai diretamente no diretório /home/tux, que é

o seu diretório home.

Page 7: Aula 4 - Linux Sob a FHS

TSO 01 – Linux Básico

Capítulo 4: Linux sob a FHS – Entendendo a estrutura dos sistemas de arquivos

_______________________________________________________________

http://www.treinatux.com.br 7/29

Para mudar de diretório, utilizamos o comando cd. Vamos tentar

mudar para o diretório /:

# cd /

Logo após, utilize o comando pwd para verificar em qual diretório

nos encontramos:

# pwd

Ele vai retornar o valor:

/

Pronto, agora nos encontramos no diretório /.

Porém, apenas estar no diretório não adianta muita coisa.

Precisamos também saber o que está dentro dele.

Para listar o conteúdo de um diretório, utilizamos o comando ls:

# ls

O comando ls irá retornar todo o conteúdo do diretório /. Todos os

objetos retornados aqui são diretórios, e cada um desempenhará uma

função diferente dentro do sistema, no que diz respeito aos arquivos que

eles irão armazenar.

� O ls é a principal forma de se visualizar o conteúdo de um

diretório no Linux.

Vamos estudar os principais diretórios do nosso sistema, de

acordo com sua função.

Não se preocupe em decorar todos estes conceitos de uma única

vez.

Page 8: Aula 4 - Linux Sob a FHS

TSO 01 – Linux Básico

Capítulo 4: Linux sob a FHS – Entendendo a estrutura dos sistemas de arquivos

_______________________________________________________________

http://www.treinatux.com.br 8/29

1.1. Diretório /

O diretório /, também chamado de diretório raiz, é a raiz do

sistema. Abaixo dele se encontra todo o resto do sistema.

Exemplo de diretórios que estão dentro do /:

/bin;

/sbin;

/usr;

- Note a nomeação dos diretórios. Na verdade, o nome deles é

bin, sbin e usr, respectivamente. Porém, a / antes do nome indica que

eles estão logo abaixo do diretório /, como se fosse um mapa exato da

localização dele dentro da hierarquia do sistema, como por exemplo, o

próprio /etc. Depois, quaisquer diretórios que existirem dentro do /etc

vão ser indicados com uma nova /, para indicar que estão dentro do

diretório em questão. Então, quando nos referimos ao diretório /etc/apt,

por exemplo, estamos dizendo que o caminho até aquele diretório é / >

etc > apt, ou seja, o diretório apt está dentro do diretório etc, que está

dentro do diretório /..

1.2. Diretório /bin

O diretório /bin é o diretório que conterá todos os binários (o

equivalente aos executáveis do Windows) dos comandos de alcance

geral do sistema. Ou seja, ele é o diretório onde se encontram todos os

comandos que qualquer usuário, root ou comum poderão utilizar.

Vamos ver o conteúdo do diretório /bin:

Page 9: Aula 4 - Linux Sob a FHS

TSO 01 – Linux Básico

Capítulo 4: Linux sob a FHS – Entendendo a estrutura dos sistemas de arquivos

_______________________________________________________________

http://www.treinatux.com.br 9/29

# ls /bin

� Podemos indicar um diretório logo depois do comando ls,

para que ele liste o conteúdo daquele diretório sem que

nós estejamos dentro dele.

Todos os objetos retornados pelo comando são comandos. Entre

eles, podemos citar:

� ls = comando que utilizamos para listar o conteúdo de um

diretório;

� cat = comando utilizado para visualizar o conteúdo de um

ou mais arquivos;

� cp = comando utilizado para copiar um arquivo;

Como você pode perceber a partir do exemplo acima, todos os

comandos do diretório /bin são comandos básicos, porém, essenciais

para o funcionamento do sistema.

- Todos os usuários podem utilizar os comandos do diretório /bin.

2.3. Diretório /sbin

O diretório /sbin centralizará os executáveis de todos os

comandos administrativos essenciais ao nosso sistema.

# ls /sbin

Todos os objetos retornados serão comandos administrativos.

Podemos citar alguns exemplos:

� halt = comando de desligamento do sistema;

� reboot = comando de reinicialização do sistema;

Page 10: Aula 4 - Linux Sob a FHS

TSO 01 – Linux Básico

Capítulo 4: Linux sob a FHS – Entendendo a estrutura dos sistemas de arquivos

_______________________________________________________________

http://www.treinatux.com.br 10/29

� ifconfig = comando para configuração das placas de rede

da máquina;

� mkfs = comando para formatar uma partição (adicionar um

sistema de arquivos a ela);

É importante lembrar que apenas o root poderá executar os

comandos que se encontrarem dentro do diretório /sbin. Os demais usuários

não terão nem acesso a ele.

Caso queira testar, no tty2 como tux, tente utilizar:

$ cd /sbin

O acesso daquele usuário ao diretório será negado. Um usuário

comum não pode nem entrar no diretório /sbin!

2.4. Diretório /etc

Um dos diretórios mais importantes do sistema, o /etc vai conter

os arquivos de configuração de todos os aplicativos, funções e serviços

do sistema.

� etc = Editable Text Configuration = Configuração por texto

editável

Todos os arquivos presentes dentro do /etc são arquivos de

configuração editáveis por um editor de texto qualquer. Desta forma, a

customização do sistema como um todo fica muito mais fácil!

# ls /etc

Exemplo de arquivos de configuração dentro do /etc:

Page 11: Aula 4 - Linux Sob a FHS

TSO 01 – Linux Básico

Capítulo 4: Linux sob a FHS – Entendendo a estrutura dos sistemas de arquivos

_______________________________________________________________

http://www.treinatux.com.br 11/29

� inittab = arquivo de configuração de inicialização do

sistema;

� sources.list = arquivo de configuração de repositório

utilizado pelo apt;

� passwd = registro da conta de todos os usuários do

sistema;

� shadow = registro criptografado da senha dos usuários;

Entre vários outros arquivos que iremos estudar ao longo do

curso.

2.5. Diretório /home

O diretório /home centraliza o diretório home de todos os outros

usuários simples do sistema.

Verifique sua estrutura interna:

# ls /home

O resultado do comando será:

/home/tux

Mas este não é o diretório home do tux? Para recordar, dê um

pwd após o login como tux, e você verá que o diretório home do tux é

mesmo o /home/tux.

Dentro do diretório /home existirão outros diretórios, cada um

nomeado de acordo com um usuário comum dentro do sistema.

Ou seja, por padrão, o diretório /home centralizará as homes de

todos os outros usuários que não sejam o root.

Page 12: Aula 4 - Linux Sob a FHS

TSO 01 – Linux Básico

Capítulo 4: Linux sob a FHS – Entendendo a estrutura dos sistemas de arquivos

_______________________________________________________________

http://www.treinatux.com.br 12/29

- Dizemos ‘por padrão’ porque ainda existe a possiblidade de se

modificar o local do diretório home dos usuários, porém não iremos

entrar neste detalhe por enquanto.

2.6. Diretório /root

Se o diretório /home centraliza as homes dos usuários comuns, o

diretório /root seguirá o mesmo conceito, porém para o usuário root.

É neste diretório que o root irá se logar por padrão, e,

teoricamente, guardará seus arquivos pessoais.

# ls /root

Não temos nenhum arquivo lá ainda, então o comando não

retornará nenhum resultado por enquanto.

2.7. Diretório /tmp

O diretório /tmp é um diretório muito especial: é o diretório de

arquivos temporários.

Ele é destinado à centralização de arquivos temporários gerados

por serviços ou processos, que normalmente precisam que

determinados dados sejam armazenados em arquivos que serão criados

apenas temporariamente. Estes arquivos normalmente ficam

armazenados aqui até que os processos relacionados a eles sejam

finalizados.

# ls /tmp

Page 13: Aula 4 - Linux Sob a FHS

TSO 01 – Linux Básico

Capítulo 4: Linux sob a FHS – Entendendo a estrutura dos sistemas de arquivos

_______________________________________________________________

http://www.treinatux.com.br 13/29

Não existe nenhum arquivo lá dentro. Vamos fazer um pequeno

teste. Vamos ver como se comporta um arquivo dentro do diretório, e

para isso, utilizaremos o comando touch:

# cd /tmp

# pwd

# touch arq.txt

# ls

Agora estamos dentro do diretório /tmp e criamos um arquivo com

o comando touch lá dentro, chamado arq.txt.

- O comando touch é utilizado para criar arquivos vazios em um

determinado diretório, além de também modificar a timestamp de um

arquivo. Timestamp é simplesmente a data e a hora de modificação de

um arquivo.

O grande diferencial do diretório /tmp é: todos os arquivos

presentes dentro dele são apagados quando a máquina desliga ou

reinicia!

Vamos fazer o teste:

# reboot

Depois que a máquina reinicializar e o root estiver logado

novamente no tty1:

# ls /tmp

Não existe mais nenhum arquivo lá dentro!

Page 14: Aula 4 - Linux Sob a FHS

TSO 01 – Linux Básico

Capítulo 4: Linux sob a FHS – Entendendo a estrutura dos sistemas de arquivos

_______________________________________________________________

http://www.treinatux.com.br 14/29

É importante então ressaltar: nunca armazene nenhum arquivo

importante neste diretório, pois você pode acabar desligando a máquina

e perdendo o arquivo para sempre, caso não se lembre de tirá-lo de lá.

2.8. Diretório /usr

O diretório /usr é um diretório bem peculiar. Ele irá centralizar

todos os dados de programas não-essenciais (ou, melhor dizendo,

auxiliares) para a configuração de seu sistema, o que inclui seus

executáveis, suas bibliotecas, seus arquivos variáveis e vários outros

tipos de arquivos.

Vamos ver o seu conteúdo:

# ls /usr

Veja que, dentro do diretório /usr, existem diretórios muito

parecidos com os diretórios que existem diretamente abaixo do diretório

raiz do Linux. Isso acontece porque os dados dos aplicativos não-

essenciais também devem ser organizados de forma lógica para que o

administrador possa localizá-los.

Mas o que são os aplicativos não-essenciais? São justamente os

pacotes de programas que são baixados diretamente de um repositório

oficial da distribuição, mas que não é necessário para que o sistema

básico seja administrado. Se determinado aplicativo for de alcance geral,

seu binário (executável) é disposto dentro de /usr/bin, e se ele for um

aplicativo de alcance administrativo, ele será alocado para /usr/sbin, e as

bibliotecas destes executáveis se relacionarão em /usr/lib, por exemplo.

Ilustrando de uma forma melhor, um navegador de internet em

modo texto não é necessário para que um sistema GNU/Linux seja

configurado e rode algum serviço, então os dados referentes àquele

Page 15: Aula 4 - Linux Sob a FHS

TSO 01 – Linux Básico

Capítulo 4: Linux sob a FHS – Entendendo a estrutura dos sistemas de arquivos

_______________________________________________________________

http://www.treinatux.com.br 15/29

navegador serão jogados dentro do /usr. Da mesma forma que um

protetor de tela em modo texto, por exemplo.

2.9. Diretório /opt

O diretório /usr irá armazenar os dados de programas não-

essenciais, ou auxiliares, que forem adquiridos a partir de um repositório

oficial daquela distribuição.

Porém, sempre existe a possiblidade de se instalar no Linux

algum software proprietário, mesmo que isso venha a ferir a filosofia do

software livre.

Para centralizar os dados referentes a esses softwares será

utilizado o diretório /opt.

Por padrão, não teremos nenhum aplicativo proprietário lá dentro:

# ls /opt

Esse diretório pode passar por toda a vida profissional de um

administrador sem ser populado, pois quase sempre existirão opções

open-source para substituir programas proprietários.

2.10.Diretório /boot

O diretório /boot irá conter os dados referentes ao gerenciador de

inicialização instalado naquela máquina no momento. No nosso caso,

instalamos o gerenciador GRUB durante a instalação básica da máquina, então

os arquivos que, inicialmente, estiverem lá dentro serão relacionados a ele.

Verifique:

# ls /boot

Page 16: Aula 4 - Linux Sob a FHS

TSO 01 – Linux Básico

Capítulo 4: Linux sob a FHS – Entendendo a estrutura dos sistemas de arquivos

_______________________________________________________________

http://www.treinatux.com.br 16/29

Teremos uma aula específica para tratar do gerenciador de

inicialização.

- Um gerenciador de inicialização nada mais é do que um

aplicativo de baixo nível que irá selecionar o sistema operacional que será

inicializado naquela máquina. No nosso caso, utilizamos o GRUB. É aquela

primeira tela que aparece quando inicializamos a nossa máquina virtual, e nos

oferece a opção de inicialização normal ou em ‘recovery mode’.

2.11. Diretório /media

O diretório /media centralizará o ponto de montagem de

dispositivos mídias removíveis, como pendrives, cds, dvds, hds externos e

afins.

Os pontos de montagem serão correlacionados, na maioria das

vezes, com o nome do dispositivo que estará sendo montado.

Por exemplo, o ponto de montagem recomendado pela FHS para

um CD-ROM é o /media/cdrom.

Pode ser que o seu sistema já tenha sido instalado com um

diretório relacionado ao ponto de montagem do CD-ROM lá dentro do

/media, porém não é regra a existência de um diretório pré-criado lá dentro.

# ls /media

- Ponto de montagem é o local a partir de onde o conteúdo de um

dispositivo poderá ser acessado. Por exemplo, se o pondo de montagem do

CD-ROM for /media/cdrom, poderemos acessar o conteúdo do CD

simplesmente entrando dentro deste diretório.

Page 17: Aula 4 - Linux Sob a FHS

TSO 01 – Linux Básico

Capítulo 4: Linux sob a FHS – Entendendo a estrutura dos sistemas de arquivos

_______________________________________________________________

http://www.treinatux.com.br 17/29

2.12. Diretório /mnt

O diretório /mnt é utilizado como ponto de montagem de

dispositivos cujos dados serão partilhados entre duas ou mais máquinas em

rede.

2.13. Diretório /dev

O diretório /dev é o responsável por armazenar os arquivos

representativos de cada um dos dispositivos presentes em sua máquina.

O Linux trabalha com dispositivos de uma forma diferente: durante

o boot da máquina, são criados arquivos referentes a cada um dos

dispositivos plugados à sua máquina, desde mouses e teclados até HDs e

drivers de CD-ROM e DVD-ROM. Estes arquivos são utilizados diretamente

pelo kernel, que irá extrair as informações geradas nestes arquivos para

interagir com os dispositivos.

# ls /dev

Exemplos de arquivos presentes dentro do /dev:

- sda = arquivo referente a um disco rígido;

- psaux = arquivo referente a um mouse que utiliza conexão PS/2;

- cdrom = arquivo referente ao drive de CD-ROM;

Iremos aprender a gerenciar estes dispositivos em uma aula

específica, onde estudaremos mais a fundo o /dev, seu sistema de

arquivos, e como formatar e montar dispositivos e discos rígidos.

Page 18: Aula 4 - Linux Sob a FHS

TSO 01 – Linux Básico

Capítulo 4: Linux sob a FHS – Entendendo a estrutura dos sistemas de arquivos

_______________________________________________________________

http://www.treinatux.com.br 18/29

2.14. Diretório /lib

O diretório /lib centralizará as bibliotecas utilizadas pelos binários

dos comandos existentes dentro do /bin e /sbin, assim como os módulos

utilizados pelo nosso kernel.

Uma biblioteca nada mais é que um pedaço de código externo

utilizado por um ou mais executáveis, para que um determinado comando

ou aplicativo consiga executar uma tarefa específica.

Sem as bibliotecas, nenhum comando consegue ser executado

em nosso sistema, e sem comandos, não há forma de se realizar

absolutamente nenhuma função a nível de shell.

Então, o diretório /lib é um diretório muito importante para o

funcionamento de nosso sistema.

Verifique seu conteúdo:

# ls /lib

Também iremos abordar o conceito de bibliotecas e módulos em

uma aula específica.

2.15. Diretório /var

O diretório /var irá armazenar todos os arquivos variáveis do

nosso sistema.

Arquivos variáveis são arquivos cujo conteúdo, por definição,

sofrerá mudanças frequentes.

O melhor exemplo de arquivos variáveis são os logs do sistema,

localizados no diretório /var/log.

Page 19: Aula 4 - Linux Sob a FHS

TSO 01 – Linux Básico

Capítulo 4: Linux sob a FHS – Entendendo a estrutura dos sistemas de arquivos

_______________________________________________________________

http://www.treinatux.com.br 19/29

- Log é um registro gerado pelo sistema afim de armazenar uma

informação específica sobre o funcionamento de algum programa,

auxiliando muito o processo de administração e monitoria de um servidor.

# ls /var

# ls /var/log

Outro exemplo de arquivos variáveis são páginas html e mails

(mensagens) internas.

2.16. Diretório /proc

O diretório /proc é um diretório utilizado diretamente pelo kernel,

que centralizará os dados referentes a todos os processos que estão em

execução no momento.

Liste seu conteúdo:

# ls /proc

Perceba que lá dentro existem vários diretórios que são

nomeados com números aparentemente aleatórios. Cada um destes

diretórios são relacionados a um processo específico, e dentro deles

existem os arquivos que estão sendo utilizados por eles no momento.

O diretório /proc também irá centralizar outras informações

referentes à execução de determinadas tarefas pelo kernel.

Page 20: Aula 4 - Linux Sob a FHS

TSO 01 – Linux Básico

Capítulo 4: Linux sob a FHS – Entendendo a estrutura dos sistemas de arquivos

_______________________________________________________________

http://www.treinatux.com.br 20/29

2.17. Diretório /sys

O diretório /sys é o primo rico do /proc. Ele conterá os mesmos

dados presentes dentro do diretório /proc, porém, de forma mais organizada

para nós administradores.

Se quiser, liste o seu conteúdo e verifique que os processos são

divididos lá dentro em seções:

# ls /sys

Ainda assim, é mais comum gerenciar os dados dos processos

pelo /proc, por questões de comodidade.

2.18. Diretório /srv

O diretório /srv é destinado à centralização de dados dos serviços

que serão configurados e utilizados por aquela máquina.

Por exemplo, de acordo com a definição dada pela FHS, um

servidor Apache deveria ser configurado dentro do diretório /srv/www,

enquanto um servidor FTP deveria ser configurado em /srv/ftp.

Porém, o diretório /srv é o mais contradito entre as distribuições

Linux. Vários serviços presentes nestas distribuições acabam sendo

instalados em diretórios diferentes, como o próprio Apache no Debian, que

é instalado e gerenciado a partir do diretório /var/www.

3. Navegando no sistema

3.1. Caminhos absolutos

Page 21: Aula 4 - Linux Sob a FHS

TSO 01 – Linux Básico

Capítulo 4: Linux sob a FHS – Entendendo a estrutura dos sistemas de arquivos

_______________________________________________________________

http://www.treinatux.com.br 21/29

Agora que nós já estudamos sobre a utilização de cada um dos

diretórios principais do sistema, vamos aprender a navegar entre eles

corretamente.

O comando que utilizamos para navegar entre diretórios é o

comando cd.

Sua sintaxe é:

$ cd [diretório de destino]

Como, por exemplo:

$ cd /bin

Vamos fazer testes com este comando. Para isso, vamos utilizar o

root, no tty1.

Primeiro, vamos padronizar o nosso diretório inicial:

# cd

O comando cd desacompanhado de um diretório faz a mudança

de diretório para o diretório home do usuário em questão. Verifique:

# pwd

/root

Pronto. Agora estamos no diretório home do usuário root.

Navegue um pouco entre os diretórios do sistema:

# cd /var/log

# pwd

# ls

Page 22: Aula 4 - Linux Sob a FHS

TSO 01 – Linux Básico

Capítulo 4: Linux sob a FHS – Entendendo a estrutura dos sistemas de arquivos

_______________________________________________________________

http://www.treinatux.com.br 22/29

# cd /etc/apt

# pwd

# ls

# cd /home/tux

# pwd

# ls

Note que, ao trocar de diretório, estamos sempre verificando, com

o comando pwd, onde realmente estamos. Além disso, ainda listamos,

com o comando ls, o conteúdo dos diretórios.

Além de tudo, perceba que, até aqui, sempre indicamos o

caminho exato até o diretório que queremos acessar, sempre partindo

do diretório /.

Por exemplo, se queremos acessar o diretório /proc/sys/kernel,

utilizamos o comando:

# cd /proc/sys/kernel

O path daquele diretório pode ser lido assim:

/ > proc > sys > kernel

Onde o diretório que estiver à direita da seta é um subdiretório

presente dentro do diretório da esquerda. Nesta esquematização, o

diretório kernel é o subdiretório mais baixo, pois está mais ‘escondido’,

ou mais ‘fundo’ dentro da árvore de diretórios do Linux.

O caminho de um diretório, ou de um arquivo, dentro do sistema,

também é chamado de path.

Page 23: Aula 4 - Linux Sob a FHS

TSO 01 – Linux Básico

Capítulo 4: Linux sob a FHS – Entendendo a estrutura dos sistemas de arquivos

_______________________________________________________________

http://www.treinatux.com.br 23/29

Árvore de diretórios é o nome coloquial dado para a estruturação

de diretórios do Linux, cujo formato realmente lembra o de uma árvore.

Imagine o diretório raiz (/) sendo o caule, e cada um dos diretórios

principais (bin, boot, etc...) como sendo os galhos. A partir dos galhos,

existirão outras ramificações, que serão os subdiretórios presentes

dentro dos principais, e assim por diante.

Uma outra forma de se ler o path do diretório kernel seria:

/proc/sys/kernel = diretório kernel, que está dentro do diretório

sys, que está dentro do diretório proc, que está dentro do diretório /.

O caminho exato a partir do diretório raiz até o diretório ou o

arquivo que queremos acessar é chamado de ‘caminho absoluto’. É a

forma mais segura de se localizar um objeto na árvore de diretórios, pois

serve como um mapa indicando a localização exata daquele objeto

dentro da árvore de diretórios.

O caminho absoluto se caracteriza pela / que antecede todo o

path do objeto.

Exemplo de caminhos absolutos:

/etc/apt/sources.list = caminho absoluto até o arquivo sources.list;

/var/log/auth.log = caminho absoluto até o arquivo de log auth.log;

/home/tux = caminho absoluto até o diretório home do usuário tux;

/root = caminho absoluto até o diretório home do usuário root;

/ = caminho absoluto até o diretório raiz.

Page 24: Aula 4 - Linux Sob a FHS

TSO 01 – Linux Básico

Capítulo 4: Linux sob a FHS – Entendendo a estrutura dos sistemas de arquivos

_______________________________________________________________

http://www.treinatux.com.br 24/29

3.2. Caminhos relativos

Existe uma outra forma de se localizar um objeto dentro do

sistema. Desta vez, podemos nos basear na localização atual de um

usuário para indicar o caminho até o diretório ou arquivo.

Vamos ver um exemplo:

Primeiramente, vamos entrar no diretório /etc:

# cd /etc

Agora, digamos que seja necessário acessar o diretório /etc/apt.

Como já estamos no diretório /etc, podemos simplesmente omitir

boa parte do caminho absoluto que utilizamos até agora, e simplesmente

indicar o diretório que queremos acessar.

# cd apt

# pwd

Perceba que agora entramos no diretório /etc/apt sem fornecer o

path a partir do diretório /.

A localização de um diretório ou arquivo, levando em

consideração a atual localização do usuário no sistema, é chamada de

‘caminho relativo’.

Vamos a outro exemplo.

Vamos tentar agora acessar o diretório /proc/sys/kernel, partindo

do diretório /:

# cd /

Como já estamos no diretório /, não precisamos indica-lo no path.

O caminho, então, seria:

Page 25: Aula 4 - Linux Sob a FHS

TSO 01 – Linux Básico

Capítulo 4: Linux sob a FHS – Entendendo a estrutura dos sistemas de arquivos

_______________________________________________________________

http://www.treinatux.com.br 25/29

# cd proc/sys/kernel

Isso mesmo, sem a / na frente do proc, pois já estamos no

diretório /.

Faça um outro teste:

# cd /proc

Para acessar o diretório kernel a partir do /proc:

# cd sys/kernel

# pwd

Pronto, acessamos o diretório /proc/sys/kernel sem utilizar o path

absoluto do mesmo.

3.3. Caracteres de localização

Ainda há a possibilidade de se utilizar determinados caracteres no

lugar dos paths, para que determinados diretórios sejam acessados.

Os caracteres de localização serão os caracteres representativos

de locais específicos, que na maioria das vezes serão caminhos relativos

também.

Antes de mais nada, você já deve ter percebido que, toda vez que

mudamos de diretório, o shell indica a nova localização.

Por exemplo, dentro do diretório /proc/sys/kernel, como root, o

shell assumirá a seguinte forma:

root@maquina:/proc/sys/kernel#

Ou, no diretório /etc:

Page 26: Aula 4 - Linux Sob a FHS

TSO 01 – Linux Básico

Capítulo 4: Linux sob a FHS – Entendendo a estrutura dos sistemas de arquivos

_______________________________________________________________

http://www.treinatux.com.br 26/29

root@maquina:/etc#

Isso acontece porque o shell padrão do GNU/Linux, o bash,

oferece estes indicativos visuais para que o usuário do shell se localize melhor

no sistema, sem que seja necessário o uso constante do pwd.

- É importante lembrar que apenas o shell bash oferece este

suporte. Outros shells, como o sh ou o ksh, não oferecem nenhuma informação

além do caractere indicativo de usuário (# ou $).

Agora, vamos entrar no diretório /:

# cd /

Para acessar o diretório home do usuário, podemos utilizar o cd

sem nenhum caminho, apenas indicando um caractere especial:

# cd ~

No Linux, o caractere ~ significa diretório home.

# pwd

Perceba que agora estamos no diretório home do usuário root.

Este caractere também é utilizado na linha de localização

fornecida pelo shell:

root@maquina:~#

Note que o ~ agora está onde antes existia o path da localização

do usuário. Isso significa que estamos na home do usuário root, /root.

Agora:

# cd /etc/apt

Vamos testar outra funcionalidade do cd:

Page 27: Aula 4 - Linux Sob a FHS

TSO 01 – Linux Básico

Capítulo 4: Linux sob a FHS – Entendendo a estrutura dos sistemas de arquivos

_______________________________________________________________

http://www.treinatux.com.br 27/29

# cd ..

O caractere ‘..’ significa ‘um nível acima na árvore de diretórios’.

# pwd

Agora estamos no diretório /etc. Quando utilizamos o ‘cd ..’, o

usuário sai do diretório atual onde se encontra, e cai no diretório imediatamente

anterior a ele, ou, melhor dizendo, acima dele. Em outras palavras, saímos do

/etc/apt e ficamos dentro apenas do /etc. Subimos um nível na árvore de

diretórios.

Vamos voltar para o diretório anterior:

# cd –

O hífen (-) significa ‘diretório anteriormente visitado’. Ou seja,

podemos voltar para o diretório que estávamos antes de entrarmos neste,

fosse qual fosse.

No caso, estamos novamente no /etc/apt.

Teste de outra forma:

# cd /boot

# pwd

# cd –

# pwd

Entramos dentro do /boot, e depois voltamos para o /etc/apt, onde

estávamos originalmente, com o - .

Agora, vamos testar subir mais de um nível:

# cd ../../

Page 28: Aula 4 - Linux Sob a FHS

TSO 01 – Linux Básico

Capítulo 4: Linux sob a FHS – Entendendo a estrutura dos sistemas de arquivos

_______________________________________________________________

http://www.treinatux.com.br 28/29

# pwd

O diretório atual será o diretório /. Podemos utilizar o .. várias

vezes neste formato para subir mais de um nível na árvore de diretórios de

uma única vez.

Teste de outra forma:

# cd /proc/sys/kernel

# pwd

# cd ../../../

# pwd

Desta forma, subimos três níveis, e caímos de volta no diretório /.

E, para finalizar, um caractere muito importante:

# cd .

# pwd

Não mudamos de diretório?

Isso mesmo, o ‘.’ Significa diretório atual. Ou seja, com o cd, o .

não irá ter um resultado muito interessante, pois ele não vai trocar de diretório.

O . é utilizado para vários outros comandos, inclusive para shell

script, para indicar em determinadas sintaxes que o diretório destino de

determinada ação será o diretório onde o usuário se encontrar no momento

que ele executar a ação.

4. Considerações finais

Page 29: Aula 4 - Linux Sob a FHS

TSO 01 – Linux Básico

Capítulo 4: Linux sob a FHS – Entendendo a estrutura dos sistemas de arquivos

_______________________________________________________________

http://www.treinatux.com.br 29/29

Para se aprofundar nas funções de cada diretório do Linux,

acesse o documento oficial da FHS:

http://www.pathname.com/fhs/