Pular para o conteúdo principal

Dominando a linha de comando do GNU/Linux 1: arquivos e pastas

Estou iniciando uma nova série nesse site sobre a linha de comando do GNU/Linux, a qual espero que seja duradoura e que eu consiga concluir ;). Nessa primeira lição, veremos um dos assuntos fundamentais: como gerenciar arquivos e pastas, um tópico importantíssimo tanto para quem deseja agilidade para realizar pequenas tarefas em seu desktop ou em um servidor VPS ou dedicado.




Descobrindo o diretório atual


Descobrir em qual diretório estamos atualmente é uma tarefa normalmente simples: basta olhar para a tela e esta informação geralmente estará escrita no prompt do shell que estamos utilizando:



[afmachado@aspire /bin]$

O exemplo acima mostra a mensagem que configurei em meu computador. Na primeira parte, ele mostra o nome do usuário (afmachado), depois o nome da máquina (aspire) e, em seguida, o nome da pasta atual (/bin). Por fim, é incluído um $ para indicar que o meu usuário é um usuário comum, ou seja, não possui poderes de root.


No entanto, um shell organizadinho como esse nem sempre é o que obtemos. É comum que em muitos servidores o prompt exiba apenas o símbolo $ ou, quando estejamos em nosso diretório pessoal, que o nome do diretório seja indicado por um ~.


Em casos como esse, devemos utilizar o comando pwd para obter o nome do diretório atual:




[afmachado@aspire ~]$ pwd
/home/afmachado


No exemplo acima, descobrimos que o diretório pessoal é, na verdade, /home/afmachado.



Listando o conteúdo de um diretório


Agora que já sabemos em qual diretório estamos, seria bom sabermos o que existe nele. Para isso, usamos o comando ls:




[afmachado@aspire ~]$ ls
Área de trabalho Documentos fonts.dir Modelos public_html src
Detalhes.odt Downloads Imagens Música Público Vídeos


Por padrão, o ls lista apenas os arquivos não ocultos em colunas verticais. No GNU/Linux, podemos ocultar um arquivo iniciando seu nome por um ponto. Se você quiser listar todos os arquivos de uma pasta, utilize o ls com a opção -a:




[afmachado@aspire ~]$ ls -a
.                 .designer     .gnome           .liferea_1.8  .pulse-cookie
..                Detalhes.odt  .gnome2          .local        src
.album.conf       .dmrc         .gnome2_private  Modelos       .thumbnails
Área de trabalho  Documentos    .gstreamer-0.10  .mozilla      .update-notifier
.bash_history     .dogecoin     .gtk-bookmarks   .mplayer      Vídeos
.bash_logout      Downloads     .gvfs            Música        .Xauthority
.bashrc           .filezilla    .hplip           .pki          .xde
.cache            .fontconfig   .ICEauthority    .profile      .xscreensaver
.config           fonts.dir     .icedove         public_html   .xsession-errors
.cups             .gconf        Imagens          Público
.dbus             .gksu.lock    .java            .pulse


A maioria das pastas e dos arquivos ocultos do diretório pessoal são pastas ou arquivos de configuração que armazenam preferências pessoais dos programas instalados no computador.


Perceba, ainda, que essa pasta possui duas pastas especiais: . e .. . A pasta . representa a pasta atual e a pasta .. a pasta que está acima da atual. Voltaremos a elas daqui a pouco.


Caso seu ls tenha sido configurado para utilizar cores, você perceberá que o nome das pastas e arquivos receberão cores diferentes, dependendo do seu tipo. Geralmente, diretórios recebem uma cor azul. arquivos comuns uma cor branca e arquivos executáveis, verde; links simbólicos (que veremos adiante) são coloridos com azul claro, dispositivos são amarelos e arquivos de imagem, rosa. Arquivos compactados ou de pacotes são mostrados em vermelho. No entanto, não são todos os sistemas e terminais que suportam textos coloridos. Nesse caso, vale a pena usar o ls com a opção -F, que coloca uma / ao final do nome de cada diretório, um * ao final do nome de cada arquivo executável e um | ao final de cada FIFO.


A listagem de pastas padrão, em colunas verticais, não nos fornece informações muito úteis sobre o conteúdo do diretório em questão, a menos do nome dos diretórios. Se quisermos obter uma listagem completa, podemos utilizar a opção -l, a qual diz para o ls exibir os arquivos em formato de lista.




[afmachado@aspire ~]$ ls -la
total 264
drwxr-xr-x 1 afmachado afmachado    926 Dez 29 10:28 .
drwx--x--x 1 root      root          18 Dez 10  2013 ..
-rw-r--r-- 1 afmachado afmachado    131 Dez 26  2013 .album.conf
drwxr-xr-x 1 afmachado afmachado    140 Dez 28 21:04 Área de trabalho
-rw------- 1 afmachado afmachado    157 Dez 28 21:57 .bash_history
-rw-r--r-- 1 afmachado afmachado    220 Dez 10  2013 .bash_logout
-rw-r--r-- 1 afmachado afmachado   3564 Ago 27 23:33 .bashrc
drwxr-xr-x 1 afmachado afmachado    278 Dez 29 10:28 .cache
drwx------ 1 afmachado afmachado    514 Dez 28 21:52 .config
drwx------ 1 afmachado afmachado     18 Ago  6 14:46 .cups
drwx------ 1 afmachado afmachado     22 Dez 10  2013 .dbus
drwxr-xr-x 1 afmachado afmachado     44 Dez 28 21:54 .designer
-rw-r--r-- 1 afmachado afmachado  30307 Dez 21 18:53 Detalhes.odt
-rw-r--r-- 1 afmachado afmachado     43 Jul 22 20:40 .dmrc
drwxr-xr-x 1 afmachado afmachado   1316 Dez 28 16:59 Documentos
drwxr-xr-x 1 afmachado afmachado    110 Dez 28 13:37 .dogecoin
drwxr-xr-x 1 afmachado afmachado   1068 Dez 28 19:07 Downloads
drwx------ 1 afmachado afmachado    166 Dez 28 09:53 .filezilla
drwxr-xr-x 1 afmachado afmachado    900 Dez 23 22:58 .fontconfig
-rw-r--r-- 1 root      root           2 Dez 15 19:30 fonts.dir
drwx------ 1 afmachado afmachado     22 Dez 29 09:06 .gconf
-rw-r----- 1 afmachado afmachado      0 Dez 29 10:28 .gksu.lock
drwx------ 1 afmachado afmachado      8 Ago 26 19:20 .gnome
drwx------ 1 afmachado afmachado     28 Dez 28 22:20 .gnome2
drwx------ 1 afmachado afmachado      0 Dez 10  2013 .gnome2_private
drwxr-xr-x 1 afmachado afmachado     38 Dez 29 09:49 .gstreamer-0.10
-rw------- 1 afmachado afmachado    168 Nov 10 16:59 .gtk-bookmarks
drwx------ 1 afmachado afmachado      0 Dez 10  2013 .gvfs
drwxr----- 1 afmachado afmachado     20 Dez  3 19:56 .hplip
-rw------- 1 afmachado afmachado   7950 Dez 29 09:06 .ICEauthority
drwx------ 1 afmachado afmachado     56 Ago 26 19:26 .icedove
drwxr-xr-x 1 afmachado afmachado   1726 Dez 23 09:51 Imagens
drwxr-xr-x 1 afmachado afmachado     30 Out  3 10:29 .java
drwx------ 1 afmachado afmachado    152 Ago 27 23:55 .liferea_1.8
drwxr-xr-x 1 afmachado afmachado     10 Dez 10  2013 .local
drwxr-xr-x 1 afmachado afmachado      0 Dez 10  2013 Modelos
drwx------ 1 afmachado afmachado     34 Ago 26 19:16 .mozilla
drwxr-xr-x 1 afmachado afmachado     76 Mai  8  2014 .mplayer
drwxr-xr-x 1 afmachado afmachado     80 Out 19 11:16 Música
drwx------ 1 afmachado afmachado     10 Dez 17 08:22 .pki
-rw-r--r-- 1 afmachado afmachado    675 Fev 11  2014 .profile
drwxr-xr-x 1 afmachado afmachado    120 Dez 25 10:43 public_html
drwxr-xr-x 1 afmachado afmachado    102 Dez 22 10:53 Público
drwx------ 1 afmachado afmachado    568 Dez 29 09:06 .pulse
-rw------- 1 afmachado afmachado    256 Jul 23 09:33 .pulse-cookie
drwxr-xr-x 1 afmachado afmachado    142 Dez 28 09:54 src
drwxr-xr-x 1 afmachado afmachado     12 Dez 10  2013 .thumbnails
drwx------ 1 afmachado afmachado      0 Dez 14  2013 .update-notifier
drwxr-xr-x 1 afmachado afmachado    212 Nov 10 19:31 Vídeos
-rw------- 1 afmachado afmachado     51 Dez 29 09:06 .Xauthority
drwx------ 1 afmachado afmachado      6 Mai 18  2014 .xde
-rw-r--r-- 1 afmachado afmachado   7598 Dez 27 16:00 .xscreensaver
-rw------- 1 afmachado afmachado 172098 Dez 29 10:28 .xsession-errors


Perceba que as diversas opções da linha de comando podem ser combinadas em uma única. Assim, ao invés de comandarmos ls -l -a, digitamos apenas ls -la, colocando ambas as opções em um único argumento.


A saída do comando ls em formato lista pode parecer confusa, pois em nada lembra a do comando dir do DOS/Windows. No entanto, entendê-la é muito simples.


A primeira linha da saída do comando exibe o tamanho total daqueles arquivos em bytes. Daqui a pouco, veremos como alterar essa unidade de medida.


A primeira coluna fornece informações detalhadas sobre as permissões do arquivo sendo listado. Trata-se de um conjunto de 10 caracteres, divididos da seguinte forma:




  • O primeiro caractere informa qual o tipo de arquivo: - é um arquivo comum, d é um diretório, l é um link simbólico, b é um dispositivo de bloco especial, c é um dispositivo de caracteres especial, p é um arquivo FIFO especial e s é um soquete.

  • Os próximos três caracteres mostram as permissões daquele arquivo para o seu dono. O primeiro dos três caracteres mostra um r caso o dono tenha permissão de leitura ou um - caso contrário; o segundo, um w caso o dono tenha permissão de escrita ou um - caso contrário e o terceiro um x, caso o dono tenha permissão de execução ou um -, caso contrário.

  • Os demais seis caracteres são idênticos aos últimos três, mostrando informações do grupo e dos outros usuários, respectivamente.


O número ao lado da segunda coluna mostra a quantidade de links simbólicos que aquele arquivo ou diretório possui. A terceira coluna mostra o dono do arquivo e, a quarta, o grupo ao qual aquele arquivo pertence. A quinta coluna mostra o tamanho daquele arquivo em bytes. A sexta coluna exibe a data e a hora na qual aquele arquivo foi modificado pela última vez e, por último, a sétima mostra o nome do arquivo.


Se, ao invés de exibir a data e a hora da última modificação, você quiser mostrar a data e a hora do último acesso, passe a opção -u. A opção padrão, a qual também pode ser invocada por -t, mostra a data na qual o conteúdo do arquivo foi, efetivamente, modificado; se você usar a opção -c, ele mostrará a data e o horário nos quais os metadados do arquivo sofreram alteração, como por exemplo: a última vez em que suas permissões foram alteradas.


Exibir o tamanho do arquivo em bytes pode não ser algo útil quando o arquivo é muito grande; neste caso, podemos utilizar a opção -h, que mostrará essa informação em um formato legível para seres humanos:




[afmachado@aspire ~]$ ls -lh
total 36K
drwxr-xr-x 1 afmachado afmachado  140 Dez 28 21:04 Área de trabalho
-rw-r--r-- 1 afmachado afmachado  30K Dez 21 18:53 Detalhes.odt
drwxr-xr-x 1 afmachado afmachado 1,3K Dez 28 16:59 Documentos
drwxr-xr-x 1 afmachado afmachado 1,1K Dez 28 19:07 Downloads
-rw-r--r-- 1 root      root         2 Dez 15 19:30 fonts.dir
drwxr-xr-x 1 afmachado afmachado 1,7K Dez 23 09:51 Imagens
drwxr-xr-x 1 afmachado afmachado    0 Dez 10  2013 Modelos
drwxr-xr-x 1 afmachado afmachado   80 Out 19 11:16 Música
drwxr-xr-x 1 afmachado afmachado  120 Dez 25 10:43 public_html
drwxr-xr-x 1 afmachado afmachado  102 Dez 22 10:53 Público
drwxr-xr-x 1 afmachado afmachado  142 Dez 28 09:54 src
drwxr-xr-x 1 afmachado afmachado  212 Nov 10 19:31 Vídeos


Note que a utilização da opção -h também alterou a unidade da linha total. Essa conversão é realizada automaticamente com base no tamanho de cada arquivo. No entanto, nós podemos forçar a utilização de determinada unidade através do parâmetro --block-size=[SIZE], onde SIZE deve ser um dos valores da lista abaixo:




  • K = Quilobyte

  • M = Megabyte

  • G = Gigabyte

  • T = Terabyte

  • P = Petabyte

  • E = Exabyte

  • Z = Zetabyte

  • Y = Yotabyte


Perceba, ainda, que a utilização desse parâmetro poderá gerar tamanhos imprecisos, caso o arquivo seja menor do que a unidade especificada.


Nos exemplos acima, listamos apenas o conteúdo do diretório atual. É possível listar o conteúdo de outros diretórios especificando seu nome na linha de comando (como em ls -la /bin) e, ainda, instruir o ls a listá-los recursivamente, através da opção -R. Com isso, o ls também vai listar o conteúdo de todos os diretórios que estiverem dentro do diretório sendo listado.


Você também pode mudar a ordem na qual os arquivos são exibidos: a opção -r faz com que eles sejam listados em ordem inversa àquela especificada; a opção -t lista em ordem de tempo e a opção -u em ordem de último acesso.



Mudando de diretório


Para ir de um diretório para outro, utilize o comando cd seguido do nome do diretório desejado. Por exemplo:




[afmachado@aspire ~]$ cd /bin
[afmachado@aspire /bin]$


Se você está no diretório /bin e deseja ir para o diretório acima, / digite cd .. (lembra que eu disse que ele era especial?). Para voltar ao seu diretório pessoal, independente de onde você esteja, basta utilizar cd sem parâmetro algum. Para voltar ao último diretório em que você estava, digite cd -. O nome do diretório será impresso na tela.



Conclusão


Esse foi o primeiro artigo sobre o terminal do GNU/Linux no qual abordamos a navegação em arquivos e pastas. No próximo artigo, veremos a criação e a remoção de pastas e de arquivos. Espero você.

Comentários

Postagens mais visitadas deste blog

Como acessar configurações avançadas no Sagemcom F@st 2704N

NOVO TUTORIAL: GUIA DEFINITIVO DAS CONFIGURAÇÕES AVANÇADAS DO SAGEMCOM F@ST 2704N!
Atualização 23/01/2015: Alguns problemas apontados e descobertos nesse modem:
1. Alguns usuários relatam dificuldade em salvar alterações na configuração ADSL;
2. Não sei como acessar os logs do modem; mesmo habilitando, eles não aparecem;
3. Se você trocar o DNS do modem, ele voltará ao da Oi ao ser reiniciado;
4. Estou enfrentando alguns problemas sérios de lentidão. Não sei se isso é relacionado ao modem ou a algum dispositivo na minha rede interna.
-----
Os modens da marca Sagemcom estão se tornando muito populares no Brasil, não, quiçá, por sua qualidade, mas porque eles são os atuais queridinhos das operadoras: quando você assina um plano ADSL, geralmente a operadora envia um modem wireless para sua casa a fim de que você possa navegar sem precisar ter gastos extras com esse equipamento. É claro que os equipamentos fornecidos pelas operadoras são básicos, mas saciam as necessidades dos usuários comuns - …

O Guia Definitivo das configurações avançadas no Sagemcom F@st 2704N

Há alguns meses, eu contei minha experiência com o Sagemcom F@st 2704N e tenho recebido diversos comentários sobre suas configurações avançadas. Agora que minhas aulas na faculdade estão acabando, resolvi reservar um tempinho para explorar melhor esse modem que, diga-se de passagem, é muito bom.