Navegação e Gerenciamento de Arquivos no Linux

Introdução

Navegar e manipular arquivos e pastas no sistema de arquivos é uma parte fundamental do trabalho com a maioria dos computadores. Os servidores em nuvem geralmente usam os mesmos shells Linux comuns e comandos Linux comuns para trabalhar com arquivos e pastas. Este terminal apresentará algumas habilidades fundamentais para usar esses comandos.

Pré-requisitos e Objetivos

Para acompanhar este guia, você precisará ter acesso a um servidor Linux. Se precisar de informações sobre como se conectar ao seu servidor pela primeira vez, pode seguir nosso guia sobre como se conectar a um servidor Linux usando SSH.

Você também precisará ter compreensão de como o terminal funciona e como são os comandos do Linux. Este guia abrange uma introdução ao terminal.

Todo o material neste guia pode ser realizado com uma conta de usuário regular, não-root (não administrativa). Você pode aprender como configurar esse tipo de conta de usuário seguindo o guia de configuração inicial do seu sistema operacional, como o Ubuntu 22.04.

Quando estiver pronto para começar, conecte-se ao seu servidor Linux usando SSH e continue abaixo.

As habilidades mais fundamentais que você precisa dominar são se movimentar pelo sistema de arquivos e ter uma ideia do que está ao seu redor. Você vai revisar as ferramentas que permitem fazer isso nesta seção.

Encontrando onde você está com o comando “pwd”

Quando você faz login no seu servidor, geralmente é direcionado para o diretório inicial da sua conta de usuário. Um diretório inicial é um diretório reservado para o seu usuário armazenar arquivos e criar diretórios. É o local no sistema de arquivos onde você tem pleno domínio.

Para descobrir onde está localizado seu diretório pessoal em relação ao restante do sistema de arquivos, você pode usar o comando pwd. Este comando exibe o diretório em que você se encontra atualmente:

  1. pwd
Output
/home/sammy

O diretório pessoal é nomeado após a conta de usuário. Este diretório está dentro de um diretório chamado /home, que por sua vez está dentro do diretório de nível superior, que geralmente é chamado de diretório “raiz” e é representado por uma única barra /.

Examinando o Conteúdo dos Diretórios com “ls”

Agora que você sabe como exibir o diretório em que está, pode ver o conteúdo de um diretório.

Atualmente, seu diretório pessoal não tem muito para ser visto, então você pode ir para outro diretório, mais populoso, para explorar. Use cd para ir para este diretório. Em seguida, você usará pwd para confirmar que moveu com sucesso:

  1. cd /usr/share
  2. pwd
Output
/usr/share

Agora que você está em um novo diretório, vamos ver o que há dentro. Para fazer isso, você pode usar o comando ls:

  1. ls
Output
adduser groff pam-configs applications grub perl apport grub-gfxpayload-lists perl5 apps hal pixmaps apt i18n pkgconfig aptitude icons polkit-1 apt-xapian-index info popularity-contest . . .

Como você pode ver, há muitos itens neste diretório. Você pode adicionar algumas opções ao comando para modificar o comportamento padrão. Por exemplo, para listar todos os conteúdos em um formato estendido, você pode usar a opção -l (para saída “longa”):

  1. ls -l
Output
total 440 drwxr-xr-x 2 root root 4096 Apr 17 2022 adduser drwxr-xr-x 2 root root 4096 Sep 24 19:11 applications drwxr-xr-x 6 root root 4096 Oct 9 18:16 apport drwxr-xr-x 3 root root 4096 Apr 17 2022 apps drwxr-xr-x 2 root root 4096 Oct 9 18:15 apt drwxr-xr-x 2 root root 4096 Apr 17 2022 aptitude drwxr-xr-x 4 root root 4096 Apr 17 2022 apt-xapian-index drwxr-xr-x 2 root root 4096 Apr 17 2022 awk . . .

Esta visualização nos fornece muitas informações. O primeiro bloco descreve o tipo de arquivo (se a primeira coluna for um “d”, o item é um diretório, e se for um “-“, é um arquivo normal) e permissões. Cada coluna subsequente, em ordem, descreve o número de links rígidos para esse arquivo em outro lugar no sistema, o proprietário, o grupo proprietário, o tamanho do item, a última hora de modificação e o nome do item.

Para obter uma lista de todos os arquivos, incluindo arquivos e diretórios ocultos, você pode adicionar a -a flag. Como não há arquivos realmente ocultos no diretório /usr/share, vamos voltar para o seu diretório inicial e tentar esse comando. Você pode voltar para o diretório inicial digitando cd sem argumentos:

  1. cd
  2. ls -a
Output
. .. .bash_logout .bashrc .profile

Como você pode ver, existem três arquivos ocultos, juntamente com . e .., que são indicadores especiais. Você encontrará frequentemente que arquivos de configuração são armazenados como arquivos ocultos, como é o caso aqui.

Para as entradas de ponto e ponto duplo, esses não são exatamente diretórios tanto quanto métodos integrados de referência a diretórios relacionados. O único ponto indica o diretório atual, e o ponto duplo indica o diretório pai deste diretório. Isso será útil na próxima seção.

Navegando pelo Sistema de Arquivos com “cd”

Você já fez dois movimentos de diretório para demonstrar algumas propriedades do ls na última seção. Vamos dar uma olhada melhor no comando aqui.

Comece voltando para o diretório /usr/share:

  1. cd /usr/share

Este é um exemplo de mudança de diretório fornecendo um caminho absoluto. No Linux, cada arquivo e diretório está sob o diretório mais alto, que é chamado de diretório raiz, mas referido por uma única barra inicial “/”. Um caminho absoluto indica a localização de um diretório em relação a este diretório de nível superior. Isso nos permite referenciar diretórios de maneira inequívoca a partir de qualquer lugar no sistema de arquivos. Todo caminho absoluto deve começar com essa barra.

A alternativa é usar caminhos relativos. Caminhos relativos referem-se a diretórios em relação ao diretório atual. Para diretórios próximos ao diretório atual na hierarquia, isso geralmente é mais curto, e às vezes é benéfico não precisar fazer suposições sobre onde um diretório está localizado no sistema de arquivos mais amplo. Qualquer diretório dentro do diretório atual pode ser referenciado pelo nome sem uma barra inicial. Você pode mudar para o diretório locale dentro de /usr/share da sua localização atual digitando:

  1. cd locale

Você também pode mover vários níveis de diretório com caminhos relativos, fornecendo a parte do caminho que vem após o caminho do diretório atual. A partir daqui, você pode chegar ao diretório LC_MESSAGES dentro do diretório en digitando:

  1. cd en/LC_MESSAGES

Para voltar para cima, viajando para o diretório pai do diretório atual, você pode usar o indicador especial de dois pontos duplos. Por exemplo, você está agora no diretório /usr/share/locale/en/LC_MESSAGES. Para mover um nível para cima, você pode digitar:

  1. cd ..

Isto nos leva ao diretório /usr/share/locale/en.

Você sempre pode retornar ao seu diretório inicial executando cd sem especificar um diretório. Você também pode usar ~ no lugar do seu diretório inicial em quaisquer outros comandos:

cd ~
pwd
/home/sammy

Para saber mais sobre como usar esses três comandos, você pode conferir nosso guia sobre explorar o sistema de arquivos do Linux.

Visualizando Arquivos

Na última seção, você aprendeu como navegar pelo sistema de arquivos. Você provavelmente viu alguns arquivos ao usar o comando ls em vários diretórios. Ao contrário de alguns sistemas operacionais, o Linux e outros sistemas operacionais do tipo Unix dependem de arquivos de texto simples para vastas partes do sistema.

A principal maneira de visualizar arquivos neste tutorial é com o comando less. Isso é chamado de “pager”, porque permite que você role pelas páginas de um arquivo. Enquanto os comandos anteriores foram executados imediatamente e o devolveram à linha de comando, less é um aplicativo que continuará em execução e ocupará a tela até que você saia.

Você abrirá o arquivo /etc/services, que é um arquivo de configuração que contém informações sobre os serviços que o sistema conhece:

  1. less /etc/services

O arquivo será aberto no less, permitindo que você veja a parte do documento que se encaixa na área da janela do terminal:

Output
# Network services, Internet style # # Observe que atualmente é política da IANA atribuir um único número de porta bem conhecido # para TCP e UDP; portanto, oficialmente as portas têm duas entradas # mesmo se o protocolo não suportar operações UDP. # # Atualizado de http://www.iana.org/assignments/port-numbers e outras # fontes como http://www.freebsd.org/cgi/cvsweb.cgi/src/etc/services. # Novas portas serão adicionadas mediante solicitação se tiverem sido oficialmente atribuídas # pela IANA e utilizadas no mundo real ou forem necessárias para um pacote Debian. # Se você precisar de uma grande lista de números utilizados, instale o pacote nmap. tcpmux 1/tcp # TCP port service multiplexer echo 7/tcp . . .

Para rolar, você pode usar as teclas de seta para cima e para baixo do seu teclado. Para rolar a página para baixo, você pode usar a barra de espaço, o botão “Page Down” do seu teclado ou o atalho CTRL-f.

Para rolar para cima, você pode usar o botão “Page Up” ou o atalho do teclado CTRL-b.

Para buscar algum texto no documento, você pode digitar uma barra diagonal “/” seguida do termo de pesquisa. Por exemplo, para pesquisar por “mail”, você digitaria:

/mail

Isso buscará para frente no documento e parará no primeiro resultado. Para ir para outro resultado, você pode digitar a tecla n minúscula:

n

Para retroceder para o resultado anterior, use um N maiúsculo:

N

Para sair do programa less, você pode digitar q para sair:

q

Há muitas outras maneiras de visualizar um arquivo que são úteis em certas circunstâncias. O comando cat exibe o conteúdo de um arquivo e retorna imediatamente ao prompt. O comando head, por padrão, mostra as primeiras 10 linhas de um arquivo. Da mesma forma, o comando tail mostra as últimas 10 linhas. Esses comandos exibem o conteúdo do arquivo de uma maneira que é útil para “encanamento” para outros programas. Esse conceito é abordado mais tarde nesta série de tutoriais.

Manipulação de Arquivos e Diretórios

Nesta seção, você criará e manipulará arquivos e diretórios.

Criar um Arquivo com “touch”

Muitos comandos e programas podem criar arquivos. O método mais direto de criar um arquivo é com o comando touch. Isso criará um arquivo vazio usando o nome e local especificados.

Primeiro, certifique-se de estar no diretório inicial, pois este é um local onde você tem permissão para salvar arquivos. Em seguida, você pode criar um arquivo chamado file1 digitando:

  1. cd
  2. touch file1

Agora, se você visualizar os arquivos no diretório, você pode ver o arquivo recém-criado:

  1. ls
Output
file1

Se você usar o comando touch em um arquivo existente, ele atualiza o horário de “última modificação” associado a esse arquivo. Isso pode ser útil para se lembrar.

Você também pode criar vários arquivos ao mesmo tempo. Você pode usar caminhos absolutos também. Por exemplo, você poderia digitar:

  1. touch /home/sammy/file2 /home/sammy/file3
  2. ls
Output
file1 file2 file3

Criar um Diretório com “mkdir”

Similar ao comando touch, o comando mkdir permite que você crie diretórios vazios.

Por exemplo, para criar um diretório dentro do seu diretório home chamado test, você poderia digitar:

  1. cd
  2. mkdir test

Você pode fazer um diretório dentro do diretório test chamado example digitando:

  1. mkdir test/example

Para que o comando acima funcione, o diretório test deve existir. Para informar ao mkdir que ele deve criar quaisquer diretórios necessários para construir um determinado caminho de diretório, você pode usar a opção -p. Isso permite que você crie diretórios aninhados em uma etapa. Você pode criar uma estrutura de diretórios que se pareça com alguns/outros/diretórios digitando:

  1. mkdir -p some/other/directories

O comando criará primeiro o diretório alguns, em seguida, criará o diretório outros dentro dele. Finalmente, ele criará o diretório diretórios dentro desses dois diretórios.

Movendo e Renomeando Arquivos e Diretórios com “mv”

Você pode mover um arquivo para uma nova localização usando o comando mv. Por exemplo, você pode mover o file1 para o diretório test digitando:

  1. mv file1 test

Você pode mover esse arquivo de volta para o seu diretório pessoal usando a referência especial de ponto para se referir ao diretório atual. Certifique-se de estar no seu diretório pessoal e, em seguida, execute o comando mv:

  1. cd
  2. mv test/file1 .

O comando mv também é usado para renomear arquivos e diretórios. Em essência, mover e renomear são apenas ajustes na localização e no nome de um item existente.

Então, para renomear o diretório test para testing, você poderia digitar:

  1. mv test testing

Nota: O shell não impedirá você de fazer ações destrutivas acidentalmente. Se você estiver renomeando um arquivo e escolher um nome que já exista, o arquivo anterior será sobrescrito pelo arquivo que você está movendo. Não há como recuperar o arquivo anterior se você o sobrescrever acidentalmente.

Copiando Arquivos e Diretórios com “cp”

Com o comando mv, você pode mover ou renomear um arquivo ou diretório, mas não pode duplicá-lo. O comando cp pode criar uma nova cópia de um item existente.

Por exemplo, você pode copiar o file3 para um novo arquivo chamado file4:

  1. cp file3 file4

Ao contrário de uma operação mv, após a qual o file3 não existiria mais, agora você tem tanto o file3 quanto o file4.

Observação: Assim como com o comando mv, é possível sobrescrever um arquivo se você não tomar cuidado com o nome do arquivo que está usando como destino da operação. Por exemplo, se o file4 já existisse no exemplo acima, seu conteúdo seria completamente substituído pelo conteúdo do file3.

Para copiar diretórios inteiros, você deve incluir a opção -r no comando. Isso significa “recursivo”, pois copia o diretório e todos os seus conteúdos.

Por exemplo, para copiar a estrutura de diretório some para uma nova estrutura chamada again, você poderia digitar:

  1. cp -r some again

Ao contrário de arquivos, nos quais um destino existente levaria a uma sobrescrita, se o destino for um diretório existente, o arquivo ou diretório é copiado para dentro do destino:

  1. cp file1 again

Isso criará uma nova cópia do file1 e a colocará dentro do diretório again.

Removendo Arquivos e Diretórios com “rm” e “rmdir”

Para excluir um arquivo, você pode usar o comando rm.

Nota: Tenha extrema cautela ao usar qualquer comando destrutivo como rm. Não há comando “desfazer” no shell, então é possível destruir acidentalmente arquivos importantes permanentemente.

Para remover um arquivo regular, basta passá-lo para o comando rm:

  1. cd
  2. rm file4

Da mesma forma, para remover diretórios vazios, você pode usar o comando rmdir. Isso só terá êxito se não houver nada no diretório em questão. Por exemplo, para remover o diretório exemplo dentro do diretório teste:

  1. rmdir testing/example

Para remover um diretório não vazio, você usará o comando rm com a opção -r, que remove todo o conteúdo do diretório recursivamente, além do próprio diretório.

Por exemplo, para remover o diretório novamente e tudo dentro dele, você pode digitar:

  1. rm -r again

Editando Arquivos

Atualmente, você sabe como manipular arquivos como objetos, mas ainda não aprendeu como editá-los e adicionar conteúdo a eles.

nano é um dos poucos editores de texto comuns de linha de comando do Linux e é um ótimo ponto de partida para iniciantes. Ele opera de forma um pouco semelhante ao programa less discutido acima, ocupando toda a tela durante o seu uso.

O editor nano pode abrir arquivos existentes ou criar um novo arquivo. Se você decidir criar um novo arquivo, pode dar-lhe um nome quando chamar o editor nano, ou mais tarde, ao salvar o seu conteúdo.

Você pode abrir o arquivo file1 para edição digitando:

  1. cd
  2. nano file1

A aplicação nano abrirá o arquivo (que atualmente está em branco). A interface se parece com isso:

  GNU nano 4.8                 file1                                         








                                  [ New File ]
^G Get Help   ^O WriteOut   ^R Read File  ^Y Prev Page  ^K Cut Text   ^C Cur Pos
^X Exit       ^J Justify    ^W Where Is   ^V Next Page  ^U UnCut Text ^T To Spell

No topo, você tem o nome do aplicativo e o nome do arquivo que está editando. No meio, o conteúdo do arquivo, atualmente em branco, é exibido. Na parte inferior, você tem uma série de combinações de teclas que indicam alguns controles para o editor. Para cada uma delas, o caractere ^ significa a tecla CTRL.

Para obter ajuda de dentro do editor, pressione Ctrl+G.

Quando terminar de visualizar a ajuda, digite Ctrl+X para voltar ao seu documento.

Para este exemplo, você pode simplesmente digitar estas duas frases:

file1
Hello there.

Here is some text.

Para salvar seu trabalho, pressione Ctrl+O.

File Name to Write: file1                                                            
^G Get Help          M-D DOS Format       M-A Append           M-B Backup File
^C Cancel            M-M Mac Format       M-P Prepend

Como você pode ver, as opções na parte inferior também mudaram. Elas são contextuais, o que significa que mudarão dependendo do que você está tentando fazer. Para confirmar a gravação no file1, pressione Enter.

Depois de salvar, se você fizer alterações adicionais e tentar sair do programa, você verá um prompt semelhante. Adicione uma nova linha e, em seguida, tente sair do nano pressionando Ctrl+X.

Se você não salvou, será solicitado a salvar as modificações que você fez:

Save modified buffer (ANSWERING "No" WILL DESTROY CHANGES) ?                         
 Y Yes
 N No           ^C Cancel

Você pode pressionar Y para salvar suas alterações, N para descartar suas alterações e sair, ou Ctrl+C para cancelar a saída. Se você escolher salvar, receberá o mesmo prompt de arquivo que recebeu antes, confirmando que deseja salvar as alterações no mesmo arquivo. Pressione Enter para salvar o arquivo e sair do editor.

Você pode ver o conteúdo do arquivo que você criou usando o programa cat para exibir o conteúdo, ou o programa less para abrir o arquivo para visualização. Depois de visualizar com o less, lembre-se de que você deve pressionar q para voltar ao terminal.

  1. less file1
Output
Hello there. Here is some text. Another line.

Outro editor que você pode ver referenciado em determinados guias é o vim ou vi. Este é um editor mais avançado que é muito poderoso, mas vem com uma curva de aprendizado íngreme. Se você algum dia for instruído a usar o vim ou vi, sinta-se à vontade para usar o nano em vez disso. Para aprender a usar o vim, leia nosso guia para começar com vim.

Conclusão

Neste momento, você deve ter uma compreensão de como se mover em seu servidor Linux e como ver os arquivos e diretórios disponíveis. Você também deve conhecer os comandos de manipulação de arquivos que permitirão visualizar, copiar, mover ou excluir arquivos. Por fim, você deve estar confortável com alguma edição usando o editor de texto nano.

Com essas poucas habilidades, você deve ser capaz de continuar com outros guias e aprender como obter o máximo do seu servidor. Em nosso próximo guia, você entenderá como visualizar e entender as permissões do Linux.

Source:
https://www.digitalocean.com/community/tutorials/basic-linux-navigation-and-file-management