Alura > Cursos de DevOps > Cursos de Linux > Conteúdos de Linux > Primeiras aulas do curso Linux: gerenciando diretórios, arquivos, permissões e processos

Linux: gerenciando diretórios, arquivos, permissões e processos

Explorando o terminal Linux - Apresentação

Boas-vindas a este curso! Me chamo Lucas Mata e sou instrutor aqui na Alura.

Audiodescrição: Lucas se declara uma pessoa de pele clara, barba e cabelo preto, usa óculos de armação preta e arredondada. Ele está nos estúdios da Alura, com uma iluminação roxa ao fundo. À sua direita, há uma estante com decorações e um letreiro com o logotipo da Alura.

Para quem é esse curso?

Este curso é destinado a quem deseja iniciar uma carreira como pessoa desenvolvedora ou especialista em operação de sistemas, começando pelos fundamentos do Linux.

Iniciaremos uma jornada de aprendizado no universo do Linux, uma extensa família de sistemas operacionais amplamente utilizada em infraestrutura de rede, nuvem e servidores.

O que vamos aprender?

Aprenderemos a navegar no terminal do Linux:

Em seguida, aprenderemos a organizar projetos, criando, movendo, renomeando e até mesmo deletando diretórios e arquivos no sistema.

Realizaremos tarefas administrativas, como gerenciar a atualização de pacotes, instalar novos pacotes, analisar e verificar os processos em execução no sistema e enviar sinais de interrupção ou pausa para esses processos.

Por fim, criaremos VMs (Virtual Machines - Máquinas Virtuais) com o Linux na nuvem e acessaremos remotamente essas VMs utilizando o protocolo SSH.

Como será esse aprendizado?

De forma prática, aplicando o uso do Linux no dia a dia tanto em desenvolvimento quanto em operações. Explore os recursos disponíveis na plataforma: além dos vídeos, há atividades e suporte no fórum, além de nossa comunidade no Discord.

Nos vemos nos próximos passos dessa jornada no ambiente Linux!

Explorando o terminal Linux - Usando o terminal

Estamos no terminal de um ambiente Linux, especificamente Ubuntu. É fundamental entender a importância de aprender a navegar e interagir com o terminal nesse ambiente.

A maioria das aplicações web com as quais lidamos diariamente está hospedada em servidores sem a interface gráfica amigável à qual estamos acostumados em sistemas como o Windows.

Em muitas situações, nos deparamos com telas que, à primeira vista, podem parecer confusas, sem janelas ou ícones, exigindo uma navegação diferente. Portanto, dominar esse ambiente é crucial tanto para operações quanto para determinados momentos do desenvolvimento.

Entendendo o ambiente e o comando git clone

Essa tela pode parecer cheia de símbolos que não fazem sentido inicialmente.

Audiodescrição da tela do terminal: Tela de terminal exibindo a mensagem de boas-vindas do Ubuntu 22.04.3 LTS, mostrando informações como versão do sistema operacional, kernel GNU/Linux, links para documentação, gerenciamento e suporte, seguido por uma mensagem informativa que aparece uma vez ao dia e um prompt de comando aguardando entrada da pessoa usuária.

Vamos começar importando um projeto de um repositório GitHub para nosso ambiente Linux. Utilizaremos o comando git clone para isso. Primeiro, colamos a URL do repositório que desejamos clonar.

git clone https://github.com/alura-cursos/adopet-frontend-cypress

Ao inserir a URL no navegador, observamos que ela pertence a uma aplicação web, especificamente um front-end de um site para adoção de animais de estimação. Ao executar o comando pressionando "Enter", o repositório será clonado da web para o ambiente local.

O retorno provavelmente terá uma aparência semelhante a esta:

Cloning into 'adopet-frontend-cypress'...
remote: Enumerating objects: 286, done.
remote: Counting objects: 100% (286/286), done.
remote: Compressing objects: 100% (202/202), done.
remote: Total 286 (delta 175), reused 183 (delta 72), pack-reused 0
Receiving objects: 100% (286/286), 803.13 KiB | 1.80 MiB/s, done.
Resolving deltas: 100% (175/175), done.

Lembre-se de que o retorno exibido acima é baseado na execução do comando pelo instrutor. O resultado em sua máquina pode variar um pouco.

Navegação no ambiente Linux

Agora, surge a questão: como navegar nesse ambiente para verificar se tudo foi clonado corretamente? Diferente do que estamos acostumados, neste ambiente não temos setas, cliques ou ícones. Precisamos usar comandos específicos do ambiente Linux. Antes de explorar os comandos, é importante entender nossa localização atual no sistema.

Dica: Nossa localização no sistema está diretamente relacionada à pasta e ao diretório em que nos encontramos.

Essa pasta pode ser a de Downloads, um diretório de Imagens, ou um diretório de Programas e Recursos, onde podemos analisar os arquivos instalados na máquina.

As letras que aparecem antes do cursor fornecem informações valiosas sobre isso.

lcs@Avell4060-2:~$

Estamos na pasta home, que é o ponto inicial do sistema para o usuário lcs. O nome da pessoa usuária é indicado por lcs antes do arroba. Após o arroba, observamos o Avell4060, que indica o nome do dispositivo que estamos utilizando. O til (~) indica que estamos na home, e o cifrão ($) mostra que estamos prontos para digitar comandos no nível de pessoa usuária, sem privilégios administrativos.

Em suma:

Listando e navegando pelos diretórios

Para verificar o conteúdo da home da pessoa usuária, utilizamos o comando ls, que é uma abreviação de "list" ("listar").

Os comandos geralmente são acrônimos em inglês, o que pode torná-los menos intuitivos para nós.

ls

adopet-frontend-cypress

Ao digitá-lo, visualizaremos os diretórios e arquivos presentes, incluindo o repositório que acabamos de clonar. Para entrar nesse diretório, usamos o comando cd ./, que significa change directory ("mudar diretório") seguido pelo nome do diretório que desejamos navegar.

Uma dica útil é usar a tecla "Tab" para autocompletar o nome do diretório.

cd ./adopet-frontend-cypress/

lcs@Avell4060-2:~/adopet-frontend-cypress$

Estamos dentro da pasta home (indicada pelo til ~), e o caminho é seguido pela barra (/). Atualmente, estamos especificamente no repositório adopet-frontend-cypress.

Após entrar no repositório, podemos usar o comando ls novamente para listar todos os itens que foram clonados do repositório remoto para o nosso ambiente.

README.md config-overrides.js package-lock.json package.json public

Orientação e navegação no sistema

No início, é comum ter dúvidas sobre a navegação no sistema. Para saber exatamente em que ponto do sistema nos encontramos, é essencial compreender a estrutura de diretórios e como usar os comandos de navegação. Se estivermos, por exemplo, na pasta do Adopet e quisermos ir a um diretório que contém arquivos de configuração do sistema, utilizamos os comandos adequados para nos deslocar até lá.

Próximo passo

Na próxima etapa, vamos analisar em detalhes como nos orientar e navegar para outros diretórios importantes dentro do sistema Linux. Até mais!

Explorando o terminal Linux - Navegando entre diretórios

Após clonarmos o repositório remoto do projeto Adopet, estamos aprendendo a navegar no ambiente Linux. Uma das questões que surgiram foi sobre como nos localizamos dentro desse ambiente, já que não há ícones para nos ajudar a identificar a pasta atual.

Localizando o diretório atual

Atualmente, estamos dentro do diretório adopet, que está localizado na home do usuário lcs.

lcs@Avell4060-2:~/adopet-frontend-cypress$

Para verificar o diretório em que estamos, usamos o comando pwd ("print working directory", traduzindo "exibir diretório de trabalho"). Antes de utilizar o pwd, devemos limpar a tela para remover informações anteriores. Isso é feito com o comando clear.

clear

Após limpar a tela, digitamos pwd para exibir o caminho completo do diretório atual.

pwd

/home/lcs/adopet-frontend-cypress

Estamos na home do usuário lcs, e dentro dela está o diretório adopet.

Acessando a raiz do sistema

Se desejamos migrar para o diretório inicial do sistema, e não apenas o diretório home do usuário, como fazemos isso?

Dentro deste sistema, há diversos arquivos de configuração, arquivos de aplicativos e bibliotecas, semelhantes aos encontrados em um ambiente Windows. Ao explorarmos o diretório C, encontraremos vários diretórios que não utilizamos frequentemente, mas que desempenham um papel crucial no funcionamento do sistema operacional.

Se digitarmos cd sem especificar um diretório, o sistema nos leva para o diretório home do usuário lcs (observe que há somente o til ~ e saímos do adopet). No caso, se estivermos no usuário lcs, o comando cd nos levará para a home desse usuário. Utilizando o comando ls, podemos visualizar o conteúdo presente na home do usuário lcs (adopet-frontend-cypress).

Por outro lado, se utilizarmos cd /, seremos direcionados para a raiz do sistema operacional.

cd /

lcs@Avell4060-2:/$

Observe que, em vez do til (~) antes do cifrão ($), agora há uma barra (/). Essa barra indica que estamos no diretório raiz do sistema operacional, que é o ponto de partida do sistema.

Ao executar ls nesse diretório, veremos uma série de diretórios que armazenam aplicativos, bibliotecas e arquivos de configuração essenciais para o funcionamento do sistema.

bin dev home lib lib64 lost+found mnt proc run snap sys usr boot etc init lib32 libx32 media opt root sbin srv tmp var

Esses diretórios são comuns em diversas distribuições Linux, como Ubuntu, CentOS, Debian e Amazon Linux.

Entendendo o linux e suas distribuições

O Linux não é um sistema operacional completo como o Windows ou macOS. Na verdade, é um kernel, que é a parte central do sistema operacional.

Kernel: Núcleo de um sistema operacional

O Linux é um kernel ("núcleo") de sistema operacional, e esse núcleo é open source ("código aberto"), o que nos permite utilizar e modificar sua base de código para construir nosso próprio sistema operacional. Essa flexibilidade faz com que o Linux seja amplamente utilizado em diversos dispositivos. Em grande parte, a infraestrutura de rede e servidores web é baseada em distribuições do Linux. Portanto, é crucial aprender a navegar no terminal, especialmente no ambiente Linux.

A navegação no terminal é bastante similar em diferentes distribuições. Embora possa haver variações no gerenciador de pacotes ou em alguns detalhes específicos, a estrutura e a lógica dos comandos de navegação permanecem consistentes.

Navegação e Permissões

Estamos na raiz do sistema e tentaremos acessar o diretório root. Essa pasta contém arquivos de configuração e bibliotecas pertencentes ao superusuário, conhecido como root, que possui privilégios administrativos.

cd ./root

-bash: cd: ./root: Permission denied

Ao usar o comando cd ./root, podemos encontrar uma mensagem de "Permissão negada", porque estamos tentando acessar esse diretório como o usuário lcs, que não possui permissões suficientes.

Agora, vamos tentar acessar o diretório usr, que se refere a user ("usuário") e armazena arquivos, aplicativos e bibliotecas utilizados pelos usuários do sistema.

cd ./usr
ls

Ao usar o comando cd ./usr, conseguiremos acessar o diretório e, ao executar ls, veremos uma série de bibliotecas configuradas para os usuários.

bin games include lib lib32 lib64 libexec libx32 local sbin share src

Conclusão e próximo passo

A mensagem de "Permissão negada" ao tentar acessar o diretório root destaca a importância do controle de acesso no Linux. Para realizar tarefas administrativas, precisamos obter permissões elevadas.

Vamos explorar como obter acesso administrativo para executar funções críticas em servidores com distribuições Linux. Até mais!

Sobre o curso Linux: gerenciando diretórios, arquivos, permissões e processos

O curso Linux: gerenciando diretórios, arquivos, permissões e processos possui 123 minutos de vídeos, em um total de 49 atividades. Gostou? Conheça nossos outros cursos de Linux em DevOps, ou leia nossos artigos de DevOps.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Linux acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas