Linux Essencial/Lição Navegação básica via linha de comando
- 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.
[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:
Como já foi dito, existem outros navegadores de arquivos além do Nautilus, como o Dolphin[2]:
Ou mesmo o Konqueror[3]:
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.
[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]
- [1] Konqueror
- [2] Dolphin
- [3] Nautilus