Linux Essencial/Lição Navegação básica via linha de comando

Origem: Wikilivros, livros abertos por um mundo aberto.
  • Objetivo(s): Apresentar como é feita a navegação na estrutura de diretórios por Linha de Comando.
  • Direitos autorais e licença: Veja notas de direitos autorais e licença no final da lição.

Árvore de diretórios[editar | editar código-fonte]

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 auto montagem, ele pode ser utilizado pelo usuário para automatizar o uso de dispositivos de armazenamento tais como CD-ROM, disquete ou diretório via rede. Seu uso exige a configuração do serviço autofs , tópico discutido no livro Administração de Redes Linux.

/mnt

Diretório que contém outros diretórios vazios, que servem para a montagem de dispositivos. O equivalente manual do /media.

/opt

Diretório de armazenamento de programas adicionais, não integrados ao sistema. Um bom exemplo é o StarOffice? da Sun, que é, por padrão, instalado nesse diretório.

/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.

Navegadores de Arquivo[editar | editar código-fonte]

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:

Nautilus Debian

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

Dolphin Debian

Ou mesmo o Konqueror[3]:

Konqueror Debian

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.

Comandos de Navegação via linha de Comando[editar | editar código-fonte]

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[editar | editar código-fonte]

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 ~ 

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[editar | editar código-fonte]

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[editar | editar código-fonte]

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[editar | editar código-fonte]

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[editar | editar código-fonte]

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.

Exercícios de Revisão[editar | editar código-fonte]

1. Quais os diretórios mais comuns que possuem os arquivos binários do sistema? Qual a diferença entre eles?

2. Qual a diferença entre os diretórios /media e /mnt?

3. Qual a utilidade da opção "-a" para a listagem do conteúdo de diretório?

4. Abra o terminal. Usando o caminho absoluto entre no diretório /etc/init.d. Liste o conteúdo da pasta.

5. Qual seria a sequência de comandos utilizada para acessar o diretório /etc/init.d, a partir do home do usuário, utilizando o caminho relativo e depois limpar a tela.

4.10 Links Indicados[editar | editar código-fonte]