Start presentation

Slide 1: Árvore de diretórios

Para uma boa compreensão do sistema GNU/Linux é necessário o conhecimento da árvore de diretórios. A organização dos diretórios em árvores tem vários objetivos, como facilitar a localização de arquivos, facilitar a cópia de segurança de determinados tipos de arquivos, facilitar a replicação de servidores, etc. Esse padrão de organização é conhecido como “Filesystem Hierarchy Standard” e disponível no endereço http://www.pathname.com/fhs/.

Durante a instalação é cobrado um ponto de montagem, que será a raiz do sistema, este ponto é o "/" e é nele que todo o Sistema Operacional GNU/Linux é instalado. O conceito dessa árvore está presente na ideia de existirem filhos, e não em uma árvore real, assim o nível mais alto é o o próprio "/" e abaixo dele se encontram os principais diretórios como em uma árvore genealógica em que os ramos vão aumentando a partir de uma folha principal:

/bin

Diretório de armazenamento de binários esseciais para o funcionamento do sistema e manutenção. Quando o termo bin é encontrado na palavra imediatamente associa-se a ele o conceito de binários, que são, de maneira genérica, programas executáveis. No /bin são encontrados comandos tais como: ls, chmod, gzip, df, entre outros (os estudos desses comandos serão realizados durante todos os tópicos).

/boot

Diretório de armazenamento de arquivos e configurações relacionadas à inicialização do sistema, tais como gerenciadores de boot e kernel.

/dev

Diretório de armazenamento dos arquivos de dispositivos do sistema. Contém arquivos usados para acessar dispositivos (periféricos) existentes no computador. Cada arquivo, nesse diretório, é um mapeamento de um dispositivo real, como portas de comunicação, drive de CD-ROM, etc.

/etc

Diretório de armazenamento de arquivos de configuração. Nele estão contidas as configurações globais do sistema e de serviços instalados, como as configurações de contas de usuários e grupos.

/home

Diretório pessoal dos usuários do sistema que armazena as configurações e os arquivos pessoais.

/lib

Diretório de armazenamento das bibliotecas essenciais para o funcionamento do sistema e manutenção. Podem ser encontrados, também, outros diretórios de bibliotecas que são para programas específicos. Bibliotecas são conjuntos de funções utilizadas por diferentes programas. As bibliotecas aqui encontradas são necessárias para a inicialização do sistema e seu funcionamento.

/media

Diretório de montagem automática de dispositivos conectáveis a quente, ou seja, conectado ou incluído em uma interface (USB ou CDROM) com o sistema operacional em funcionamento. A montagem consiste em disponibilizar o acesso de um diretório, por exemplo, /media/cdrom ou /media/pendrive associado a um dispositivo de armazenamento tais como CD-ROM ou pendrive respectivamente.

/mnt

Diretório que também possui diretórios vazios e que servem para a montagem de dispositivos, assim como o diretório /media. No entanto, esse diretório é utilizado para montagens manuais executadas pelo usuário, em vez de montagens automáticas pelo sistema operacional.

/opt

Diretório de armazenamento de pacote de programas alternativos, geralmente produzidos por terceiros e não integrados oficialmente ao sistema.

/proc

Diretório contendo informações dinâmicas, geradas pelo kernel, sendo que ele não está localizado na memória secundária, ou disco rígido. São informações de dispositivos como CPU, memória, bus PCI e SCSI. As configurações como quantidade máxima de arquivos em uso e tabelas de roteamento também estão presentes em arquivos desse diretório.

/root

Diretório do superusuário, que possui a mesma característica do diretório /home.

/sbin

Diretório de binários de interesse basicamente do superusuário.

/tmp

Diretório de arquivos temporários.

/usr

Diretório de armazenamento de aplicativos instalados e integrados ao sistema. Possui as mesmas característica do /. Seu conteúdo geralmente é composto por programas instalados pela própria distribuição, através de pacotes binários. Para programas instalados manualmente, é recomendado o uso do diretório /usr/local. Normalmente acessível somente como leitura.

/var

Diretório de armazenamento de arquivos cujos conteúdos são alterados constantemente. Exemplos são os diretórios que armazenam arquivos de filas de impressão, recebimento e envio de e-mails e bancos de dados.

Slide 2: Navegadores de Arquivo

Existem diversos softwares criados para a manipulação da árvore de diretórios. Cada distribuição adota um como padrão, porém isso não implica que o funcionamento de cada um desses programas seja diferente, na verdade, são bastante semelhantes. Esses navegadores funcionam de maneira similar a um navegador de internet, geralmente com uma barra de endereços para indicar o caminho absoluto do documento ou pasta e outras abas laterais para facilitar a navegação.

No Debian ou no Ubuntu, por exemplo, o navegador de arquivos padrão é o Nautilus[1], que para acessá-lo basta clicar no menu Locais e em seguida em Computador:

Captura_de_tela--_-_Navegador_de_Arquivos.png

Como já foi dito, existem outros navegadores de arquivos além do Nautilus, como o Dolphin[2]:

dolphin.jpeg

Ou mesmo o Konqueror[3]:

Captura_da_tela-Conquer_your_Desktop!_-_Konqueror.png

Porém, software como o Nautilus e Konqueror que possuem uma interface gráfica não é a única maneira de se navegar pela estrutura de diretórios do seu computador. Veremos agora como trabalhar com os diretórios, utilizando uma interface de texto.

Slide 3: Comandos de Navegação via linha de Comando

Os comandos de navegação são extremamente importantes para o uso do sistema, principalmente naqueles em que não existe uma interface gráfica.

Em uma linha de comando, o nome do comando é especificado primeiramente, seguido de um ou mais argumentos, separados por espaços. Exemplo:

cd /tmp

Nesse exemplo, que muda o diretório corrente para /tmp, o comando cd é separado do argumento /tmp.

NOTA: Os arquivos ou pastas ocultos para o linux devem começar o nome com um "." (ponto), assim os programas de listagem apenas irão apresentá-los se o usuário solicitar. Exemplo:

.bashrc

o arquivo ".bashrc" é oculto por apresentar o ponto no início do nome. Para criar arquivos ou pastas ocultas basta na hora da sua criação colocar o ponto no inicio do nome.

Os principais comandos para navegação de arquivos são:

cd

O comando cd (change directory) serve para fazer a mudança entre os diretórios - como o próprio nome informa -, não servindo assim para trabalhar com arquivos. O seu uso pode ser para caminhamento local, dentro da própria pasta, ou para qualquer local do sistema, de acordo com os exemplos:
[aluno@lab20 aluno]$cd Desktop
[aluno@lab20 Desktop]$

[aluno@lab20 aluno]$cd /tmp/pasta
[aluno@lab20 pasta]$

no primeiro exemplo o usuário aluno informou um caminho relativo, enquanto no segundo exemplo foi usado o caminho absoluto.

Comandos válidos:

cd .. - sobe um nível

cd ~ - vai para o diretório do usuário corrente

cd - - retorna para o último diretório acessado

cd /caminho - parte do raiz até o último diretório passado como referência

cd caminho - procura no local corrente o diretório solicitado

Caminho Absoluto x Caminho Relativo

O caminho absoluto é o caminho indicado no interpretador de comandos ou em arquivos de programas, cujo início se dá na raiz, ou seja, no próprio /.

Exemplo:

$ cd /usr/src/local

nesse exemplo o usuário está mudando de diretório, indo desde o raiz até o diretório desejado, independentemente do diretório corrente.

O caminho relativo é o caminho indicado a partir do diretório corrente, ou seja, ou o usuário sobe um nível ou desce quantos diretórios quiser a partir do seu ponto atual.

Exemplo:

$cd pasta1/pasta2/pasta3

Nesse exemplo o usuário irá descer 3 diretórios, a partir do corrente, sem ter a necessidade de informar o caminho a partir do /(raiz).

$cd ..
$cd pastaX

Nesse outro exemplo o usuário irá subir 1 diretório e posteriormente descer para o diretório pastaX.

$cd ../../../pastaX
$cd pastaY

Nesse outro exemplo o usuário irá subir 3 diretório e posteriormente descer para o diretório pastaX e descer mais um nível para a pastaY.

ls

O comando ls (list space) lista, de maneira simples ou com informações variadas, arquivos específicos ou o conteúdo de diretórios (possivelmente outros arquivos e diretórios).

Sintaxe:
ls -opções

opções:

a - lista o conteúdo do diretório e os arquivos ocultos

l - lista o conteúdo do diretório com os seus detalhes

R - lista o conteúdo do diretório e de todas os sub-diretórios.

F - lista o conteúdo, apresentando ao final do nome o seu tipo, de acordo com a lista abaixo:

/ - diretório

* - arquivos executáveis

@ - link

(sem opção) - arquivo comum

Exemplos para o uso do ls:
$ls
Desktop  bin  lib  tmp                      
$ls -F /tmp/pasta
teste1*  teste2  teste3/  teste4/

No exemplo acima, tivemos dois tipos de listagem de diretório diferentes, o primeiro lista o conteúdo local, e o segundo apresenta o conteúdo de outro diretório mas sem deslocar o usuário para o diretório /tmp/pasta, além de apresentar o tipo. O teste1 é um arquivo executável (como indicado pelo '*'), o teste2 é um arquivo regular (não mostra nenhum caractere após o nome), teste3 e teste4 são diretórios (como indicado pelo '/').

Outros exemplos para o uso do ls com opções:
$ls -a
.   .alias   Desktop  lib       
..  .bashrc  bin      tmp

O exemplo acima mostra todos os arquivos, inclusive os ocultos. Para os que notaram os arquivos “.” e “..” segue uma explicação: o primeiro significa o diretório local, e o segundo o diretório diretamente acima.
$ls -l
drwx------   3 root  root   4096 Jan  9 22:42 Desktop
-r-xr-xr-x   1 root  root    524 Dec 19 09:23 bin
-r--r--r--   1 root  root  52128 Dec 19 09:23 lib
drwxr-xr-x   2 root  root   4096 Dec 21 17:09 tmp

Esse outro exemplo lista o conteúdo do diretório corrente de maneira “longa”, ou seja, exibindo suas propriedades mais comuns, incluindo permissões, nível, proprietário, grupo, tamanho, data de criação e nome.
$ls -F
Desktop/  bin*  lib  tmp/

Exemplo do uso de denotação de tipo de arquivo, no qual Desktop/ e tmp/ são diretórios, bin* é um arquivo executável e lib é um arquivo convencional.
$ls -R
.:
Desktop  bin  lib  tmp

Esse último exemplo mostra a listagem recursiva, ou seja, inclui também o conteúdo de sub-diretórios.

Cores do Terminal

Para facilitar a navegação são utilizadas determinadas cores para cada objeto dentro do sistema, podendo ser uma pasta, um arquivo de texto, um executável, etc. Caso o sistema não esteja mostrando as cores como padrão basta fazermos o seguinte:

Colocarmos a seguinte definição do "alias" em seu arquivo ~/.bashrc, adicionando as cores para o usuário em questão:

alias ls='ls -lah --color=auto'

Para que essa operação seja realizada para todos os usuários, basta colocar o "alias" no arquivo /etc/profile.

O parâmetro '--color' pode receber outros valores além do "auto" e estes são:

  • never - Nunca lista em cores (o mesmo que 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.

O esquema de cores pode ser alterado, porém algumas das cores básicas são as seguintes:

  • Vermelho: pacotes, arquivos compactados.
  • Azul: Pastas
  • Verde: Binários, executáveis.
  • Roxo: músicas, vídeos, fotos.

pwd

O shell, utilizado normalmente, não apresenta(no prompt) o local onde está localizada a pasta ou o arquivo, e com isso o usuário pode ficar perdido dentro do sistema.

Para evitar que o usuário tenha que ficar subindo um nível sempre que desejar saber onde está, é utilizado o comando pwd (print working directory), ou seja, informa o diretório de trabalho - ou corrente, apresentando o caminho desde o raiz até o diretório atual.

Exemplo:
$pwd
/home/aluno

É possível configurar o interpretador de comandos para apresentar o caminho por completo, basta que dentro do arquivo /etc/baschrc o /w da variável PS1 seja substituído por /W.

Slide 4: Finalizando

Topic revision: r8 - 16 Oct 2016, MarceloAkiraInuzuka
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback