Linux Essencial/Lição Navegação básica via linha de comando: diferenças entre revisões

[edição verificada][edição verificada]
Conteúdo apagado Conteúdo adicionado
Criou a página com "Teste"
 
Sem resumo de edição
Linha 1:
* '''Objetivo(s):''' Apresentar como é feita a navegação na estrutura de diretórios por Linha de Comando.
Teste
* '''Direitos autorais e licença:''' Veja notas de direitos autorais e licença no final da lição.
 
== Á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çohttp://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 por padrão.
 
'''/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 ==
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:<center></center>Como já foi dito, existem outros navegadores de arquivos além do Nautilus, como o Dolphin[2]:<center></center>Ou mesmo o Konqueror[3]:<center></center>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 ==
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 ~''' 
 
'''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
 
<nowiki>*</nowiki> - 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:
 
<code>alias ls='ls -lah --color=auto'</code>
 
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.