Introdução
Navegar e manipular arquivos e pastas no sistema de arquivos é uma parte fundamental ao trabalhar com a maioria dos computadores. Servidores de nuvem geralmente utilizam os mesmos shells Linux comuns e comandos Linux comuns para trabalhar com arquivos e pastas. Este terminal irá introduzir algumas habilidades fundamentais para usar esses comandos.
Pré-requisitos e Objetivos
Para acompanhar este guia, você precisará ter acesso a um servidor Linux. Se você precisa 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 vai querer ter uma compreensão de como o terminal funciona e como são os comandos Linux. Este guia cobre uma introdução ao terminal.
Todo o material deste 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 por exemplo, para o Ubuntu 22.04.
Quando estiver pronto para começar, conecte-se ao seu servidor Linux usando SSH e continue abaixo.
Navegação e Exploração
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ê irá 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 home da sua conta de usuário. Um diretório home é um diretório reservado para o seu usuário armazenar arquivos e criar diretórios. É a localização no sistema de arquivos onde você tem total domínio.
Para descobrir onde está localizado o seu diretório pessoal em relação ao resto do sistema de arquivos, você pode usar o comando pwd
. Este comando exibe o diretório em que você está atualmente:
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 barra única /
.
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, o seu diretório pessoal não tem muito para ser visto, então você pode ir para outro diretório mais populado para explorar. Use cd
para se mover para este diretório. Depois, você usará pwd
para confirmar que se moveu com sucesso:
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
:
Outputadduser 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 uma forma estendida, você pode usar a opção -l
(para saída “longa”):
Outputtotal 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, proprietário do grupo, tamanho do item, hora da última modificação e o nome do item.
Para obter uma listagem de todos os arquivos, incluindo arquivos e diretórios ocultos, você pode adicionar a bandeira -a
. Como não há arquivos ocultos reais no diretório /usr/share
, vamos voltar para o seu diretório pessoal e tentar esse comando. Você pode voltar para o diretório pessoal digitando cd
sem argumentos:
Output. .. .bash_logout .bashrc .profile
Como você pode ver, existem três arquivos ocultos, juntamente com .
e ..
, que são indicadores especiais. Você verá que frequentemente os arquivos de configuração são armazenados como arquivos ocultos, como é o caso aqui.
Para as entradas de ponto e ponto duplo, estas não são exatamente diretórios tanto quanto métodos embutidos de referência a diretórios relacionados. O único ponto indica o diretório atual, e o duplo ponto 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
:
Este é um exemplo de alteração de diretório fornecendo um caminho absoluto. No Linux, todo arquivo e diretório está sob o diretório mais alto, que é chamado de diretório raiz, mas referido por uma única barra diagonal 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 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 diagonal inicial. Você pode mudar para o diretório locale
dentro de /usr/share
a partir de sua localização atual digitando:
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:
Para voltar para cima, viajando para o diretório pai do diretório atual, você pode usar o indicador especial de ponto duplo. Por exemplo, você está agora no diretório /usr/share/locale/en/LC_MESSAGES
. Para mover um nível para cima, você pode digitar:
Isso 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 qualquer outro comando:
cd ~
pwd
/home/sammy
Para saber mais sobre como usar esses três comandos, você pode conferir nosso guia sobre a exploração do 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 semelhantes ao Unix dependem de arquivos de texto simples para vastas partes do sistema.
A maneira principal de visualizar arquivos neste tutorial é com o comando less
. Isso é chamado de “pager”, porque permite que você role por páginas de um arquivo. Enquanto os comandos anteriores foram executados imediatamente e retornaram à linha de comando, less
é um aplicativo que continuará em execução e ocupará a tela até que você saia.
Você vai abrir o arquivo /etc/services
, que é um arquivo de configuração que contém informações sobre os serviços que o sistema conhece:
O arquivo será aberto no less
, permitindo que você veja a parte do documento que cabe na área da janela do terminal:
Output# Network services, Internet style
#
# Note que atualmente é política do IANA atribuir um único número de porta bem conhecido
# para tanto TCP quanto UDP; assim, oficialmente as portas têm duas entradas
# mesmo que o protocolo não suporte operações UDP.
#
# Atualizado a partir de http://www.iana.org/assignments/port-numbers e outros
# fontes como http://www.freebsd.org/cgi/cvsweb.cgi/src/etc/services .
# Novas portas serão adicionadas sob solicitação se tiverem sido oficialmente atribuídas
# pelo IANA e usadas no mundo real ou forem necessárias para um pacote debian.
# Se você precisa de uma enorme lista de números usados, por favor, 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 no seu teclado. Para rolar para baixo, você pode usar a barra de espaço, o botão “Page Down” no seu teclado ou o atalho CTRL-f
.
Para rolar para cima, você pode usar o botão “Page Up” ou o atalho de teclado CTRL-b
.
Para pesquisar algum texto no documento, você pode digitar uma barra inclinada “/” seguida do termo de pesquisa. Por exemplo, para pesquisar por “mail”, você digitaria:
/mail
Isso vai pesquisar para frente no documento e parar no primeiro resultado. Para chegar a 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 útil para “piping” para outros programas. Esse conceito é abordado posteriormente 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 localização especificados.
Primeiro, certifique-se de estar no seu 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:
Agora, se você visualizar os arquivos no diretório, você pode ver seu arquivo recém-criado:
Outputfile1
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 ter em mente.
Você também pode criar vários arquivos ao mesmo tempo. Você pode usar caminhos absolutos também. Por exemplo, você poderia digitar:
Outputfile1 file2 file3
Crie um Diretório com “mkdir”
Semelhante 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:
Você pode fazer um diretório dentro do diretório test
chamado example
digitando:
Para que o comando acima funcione, o diretório test
já 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 um único passo. Você pode criar uma estrutura de diretórios que parece com algum/outros/diretórios
digitando:
O comando criará primeiro o diretório algum
, depois criará o diretório outros
dentro desse. Finalmente, criará o diretório diretórios
dentro desses dois diretórios.
Mover e Renomear 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:
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 em seu diretório pessoal e, em seguida, execute o comando mv
:
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.
Portanto, para renomear o diretório test
para testing
, você poderia digitar:
Nota: O shell não impedirá que você faça ações acidentalmente destrutivas. Se você estiver renomeando um arquivo e escolher um nome que já existe, 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
:
Ao contrário de uma operação mv
, após a qual file3
não existiria mais, você agora tem tanto file3
quanto file4
.
Nota: 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 file4
já existisse no exemplo acima, seu conteúdo seria completamente substituído pelo conteúdo de 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 conteúdos do diretório.
Por exemplo, para copiar a estrutura de diretório some
para uma nova estrutura chamada again
, você poderia digitar:
Ao contrário de arquivos, nos quais um destino existente levaria a uma sobrescrição, se o destino for um diretório existente, o arquivo ou diretório será copiado para o destino:
Isso criará uma nova cópia de 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 extremo cuidado ao usar qualquer comando destrutivo como rm
. Não há um comando “desfazer” no shell, então é possível destruir arquivos importantes permanentemente por acidente.
Para remover um arquivo regular, basta passá-lo para o comando rm
:
Da mesma forma, para remover diretórios vazios, você pode usar o comando rmdir
. Isso só terá sucesso se não houver nada no diretório em questão. Por exemplo, para remover o diretório exemplo
dentro do diretório teste
:
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, mais o próprio diretório.
Por exemplo, para remover o diretório novamente
e tudo dentro dele, você pode digitar:
Editando Arquivos
Atualmente, você sabe como manipular arquivos como objetos, mas ainda não aprendeu como editá-los e adicionar conteúdo a eles.
O nano
é um dos poucos editores de texto comuns da 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 terminal durante o uso.
O editor nano
pode abrir arquivos existentes ou criar um novo arquivo. Se você decidir criar um novo arquivo, pode dar um nome a ele quando chamar o editor nano
, ou mais tarde, ao salvar seu conteúdo.
Você pode abrir o arquivo file1
para edição digitando:
O aplicativo nano
abrirá o arquivo (que está atualmente 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 dessas, o caractere ^
significa a tecla CTRL
.
Para obter ajuda de dentro do editor, pressione Ctrl+G
.
Quando terminar de navegar na ajuda, digite Ctrl+X
para voltar ao seu documento.
Para este exemplo, você pode apenas digitar estas duas frases:
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, ou seja, mudarão dependendo do que você está tentando fazer. Para confirmar a gravação em 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 feitas:
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 optar por salvar, será apresentado o mesmo prompt de arquivo que você 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 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.
OutputHello there.
Here is some text.
Another line.
Outro editor que você pode ver mencionado 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 alguma vez lhe disserem para 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 o vim.
Conclusão
Neste momento, você deveria ter uma compreensão de como se movimentar no seu servidor Linux e como visualizar os arquivos e diretórios disponíveis. Você também deveria conhecer comandos de manipulação de arquivos que permitirão que você visualize, copie, mova ou delete arquivos. Por fim, você deveria estar confortável com alguma edição usando o editor de texto nano
.
Com essas poucas habilidades, você deveria ser capaz de prosseguir com outros guias e aprender como extrair o máximo do seu servidor. No 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