From 01577d599ac46b48e106d63ca3acf04871286eb7 Mon Sep 17 00:00:00 2001 From: Paulo Neves Date: Mon, 23 Feb 2026 19:03:55 +0000 Subject: [PATCH] fix lab --- labs/linux_comandos-basicos/lab.yaml | 155 ++++++++++++++------------- 1 file changed, 78 insertions(+), 77 deletions(-) diff --git a/labs/linux_comandos-basicos/lab.yaml b/labs/linux_comandos-basicos/lab.yaml index cacdfb8..06272e0 100644 --- a/labs/linux_comandos-basicos/lab.yaml +++ b/labs/linux_comandos-basicos/lab.yaml @@ -17,52 +17,52 @@ data: description: "Compreenda a estrutura de diretórios do Linux e aprenda a navegar eficientemente pelo sistema utilizando comandos essenciais." steps: - "**Compreendendo o Sistema de Arquivos Linux**" - - "O Linux organiza todos os arquivos em uma estrutura hierárquica única, iniciando no diretório raiz representado por `/`. Diferente do Windows com suas unidades separadas (C:, D:), no Linux tudo faz parte de uma única árvore de diretórios." + - "O Linux organiza todos os arquivos em uma estrutura hierárquica única, iniciando no diretório raiz representado por **/**. Diferente do Windows com suas unidades separadas (C:, D:), no Linux tudo faz parte de uma única árvore de diretórios." - "Alguns diretórios importantes incluem:" - - "- `/home`: Contém os diretórios pessoais dos usuários" - - "- `/etc`: Armazena arquivos de configuração do sistema" - - "- `/var`: Contém dados variáveis como logs e filas" - - "- `/bin` e `/usr/bin`: Armazenam programas (binários) executáveis" - - "- `/tmp`: Arquivos temporários, geralmente limpos na reinicialização" + - "- **/home**: Contém os diretórios pessoais dos usuários" + - "- **/etc**: Armazena arquivos de configuração do sistema" + - "- **/var**: Contém dados variáveis como logs e filas" + - "- **/bin** e **/usr/bin**: Armazenam programas (binários) executáveis" + - "- **/tmp**: Arquivos temporários, geralmente limpos na reinicialização" - "**Localizando-se no Sistema**" - - "O primeiro passo para navegar eficientemente é saber onde você está atualmente. Para isso, usamos o comando `pwd` (Print Working Directory):" + - "O primeiro passo para navegar eficientemente é saber onde você está atualmente. Para isso, usamos o comando **pwd** (Print Working Directory):" - "`pwd`" - - "Este comando exibe o caminho completo do diretório atual, partindo da raiz `/`." + - "Este comando exibe o caminho completo do diretório atual, partindo da raiz **/**." - "**Listando Conteúdo de Diretórios**" - - "Para ver o conteúdo do diretório atual, usamos o comando `ls` (list). Por padrão, ele mostra apenas arquivos não-ocultos em formato simples:" + - "Para ver o conteúdo do diretório atual, usamos o comando **ls** (list). Por padrão, ele mostra apenas arquivos não-ocultos em formato simples:" - "`ls`" - - "Para obter informações mais detalhadas e ver arquivos ocultos (que começam com `.`), usamos flags adicionais:" + - "Para obter informações mais detalhadas e ver arquivos ocultos (que começam com **.**), usamos flags adicionais:" - "`ls -la`" - "Aqui:" - - "- `-l` ativa o formato longo, mostrando permissões, proprietário, tamanho, data de modificação, etc." - - "- `-a` mostra todos os arquivos, incluindo os ocultos" - - "**Significado das colunas na saída de `ls -l`:**" - - "1. Tipo de arquivo e permissões (ex: `-rw-r--r--`)" - - "2. Número de links" - - "3. Proprietário do arquivo" - - "4. Grupo do arquivo" - - "5. Tamanho em bytes" - - "6. Data e hora da última modificação" - - "7. Nome do arquivo" + - "- **-l** ativa o formato longo, mostrando permissões, proprietário, tamanho, data de modificação, etc." + - "- **-a** mostra todos os arquivos, incluindo os ocultos" + - "**Significado das colunas na saída de ls -l:**" + - "- 1- Tipo de arquivo e permissões (ex: **-rw-r--r--**)" + - "- 2- Número de links" + - "- 3- Proprietário do arquivo" + - "- 4- Grupo do arquivo" + - "- 5- Tamanho em bytes" + - "- 6- Data e hora da última modificação" + - "- 7- Nome do arquivo" - "**Criando e Navegando entre Diretórios**" - - "Para criar um novo diretório, usamos o comando `mkdir` (make directory):" + - "Para criar um novo diretório, usamos o comando **mkdir** (make directory):" - "`mkdir lab-practice`" - - "Para mudar para este diretório, usamos o comando `cd` (change directory):" + - "Para mudar para este diretório, usamos o comando **cd** (change directory):" - "`cd lab-practice`" - "Confirme que você está no novo diretório:" - "`pwd`" - "**Criando Arquivos Vazios**" - - "O comando `touch` é uma maneira simples de criar arquivos vazios ou atualizar a data de modificação de arquivos existentes:" + - "O comando **touch** é uma maneira simples de criar arquivos vazios ou atualizar a data de modificação de arquivos existentes:" - "`touch file1.txt file2.txt file3.txt`" - "Verifique os arquivos criados:" - "`ls -l`" - "Você verá que os arquivos foram criados com tamanho zero." - "**Navegação Avançada**" - "Alguns atalhos úteis para navegação:" - - "- `cd ..`: Move para o diretório pai (um nível acima)" - - "- `cd ~` ou apenas `cd`: Move para o diretório home do usuário atual" - - "- `cd -`: Retorna ao diretório anterior (onde estava antes do último cd)" - - "- `cd /`: Move para o diretório raiz do sistema" + - "- **cd ..**: Move para o diretório pai (um nível acima)" + - "- **cd ~** ou apenas **cd**: Move para o diretório home do usuário atual" + - "- **cd -**: Retorna ao diretório anterior (onde estava antes do último cd)" + - "- **cd /**: Move para o diretório raiz do sistema" - "Experimente voltar um nível acima e depois retornar ao diretório de prática:" - "`cd ..`" - "`pwd`" @@ -73,7 +73,7 @@ data: content: "A tecla Tab é extremamente útil para autocompletar nomes de arquivos e diretórios. Pressione Tab uma vez para completar automaticamente se houver apenas uma opção, ou duas vezes para ver todas as possibilidades." - type: "tip" title: "Navegação Rápida" - content: "Para navegação rápida, você pode combinar múltiplos níveis em um único comando: `cd ../../outro-dir` move dois níveis acima e então para 'outro-dir'." + content: "Para navegação rápida, você pode combinar múltiplos níveis em um único comando: '**cd ../../outro-dir**' move dois níveis acima e então para 'outro-dir'." - type: "warning" title: "Caminhos Absolutos vs Relativos" content: "Caminhos que começam com / são absolutos (a partir da raiz), enquanto outros são relativos ao diretório atual. Usar caminhos relativos geralmente torna seus comandos mais portáveis." @@ -98,30 +98,30 @@ data: - "O Vim opera em diferentes 'modos', sendo os principais o modo normal (navegação), modo de inserção (edição) e modo de comando (executar comandos)." - "Vamos criar um arquivo de texto usando o Vim:" - "`vim notes.txt`" - - "Por padrão, o Vim inicia no modo normal. Para inserir texto, pressione `i` para entrar no modo de inserção. Digite as seguintes linhas:" + - "Por padrão, o Vim inicia no modo normal. Para inserir texto, pressione **'i'** para entrar no modo de inserção. Digite as seguintes linhas:" - "```" - "Minhas anotações sobre Linux:" - "1. Linux é um sistema operacional baseado em Unix" - "2. Foi criado por Linus Torvalds em 1991" - "3. O símbolo do Linux é um pinguim chamado Tux" - "```" - - "Após digitar, pressione a tecla `Esc` para voltar ao modo normal. Para salvar e sair:" - - "1. Digite `:` para entrar no modo de comando" - - "2. Digite `wq` (write and quit) e pressione Enter" + - "Após digitar, pressione a tecla **'Esc'** para voltar ao modo normal. Para salvar e sair:" + - "1. Digite **':'** para entrar no modo de comando" + - "2. Digite **'wq'** (write and quit) e pressione Enter" - "**Fluxo de trabalho básico no Vim:**" - - "- `i`: Entrar no modo de inserção (antes do cursor)" - - "- `a`: Entrar no modo de inserção (após o cursor)" - - "- `Esc`: Voltar ao modo normal" - - "- `:w`: Salvar (write)" - - "- `:q`: Sair (quit)" - - "- `:wq` ou `ZZ`: Salvar e sair" - - "- `:q!`: Sair sem salvar (forçar)" + - "- **'i'**: Entrar no modo de inserção (antes do cursor)" + - "- **'a'**: Entrar no modo de inserção (após o cursor)" + - "- **'Esc'**: Voltar ao modo normal" + - "- **':w'**: Salvar (write)" + - "- **':q'**: Sair (quit)" + - "- **':wq'** ou **'ZZ'**: Salvar e sair" + - "- **':q!'**: Sair sem salvar (forçar)" - "**Visualizando Conteúdo de Arquivos**" - "Para visualizar o conteúdo de um arquivo sem abri-lo para edição, há várias opções:" - "`cat notes.txt`" - - "O comando `cat` exibe todo o conteúdo do arquivo de uma vez. Para arquivos maiores, é melhor usar:" + - "O comando **'cat'** exibe todo o conteúdo do arquivo de uma vez. Para arquivos maiores, é melhor usar:" - "`less notes.txt`" - - "O `less` permite navegar pelo arquivo usando as teclas de seta, Page Up/Down, etc. Pressione `q` para sair." + - "O **'less'** permite navegar pelo arquivo usando as teclas de seta, Page Up/Down, etc. Pressione **'q'** para sair." - "Para ver apenas as primeiras ou últimas linhas:" - "`head -n 2 notes.txt` # Mostra as primeiras 2 linhas" - "`tail -n 2 notes.txt` # Mostra as últimas 2 linhas" @@ -130,23 +130,24 @@ data: - "`cp notes.txt notes-backup.txt`" - "Para mover ou renomear (no Linux, é a mesma operação):" - "`mv notes-backup.txt backup-1.txt`" - - "`ls -l` # Veja que notes-backup.txt agora é backup-1.txt" + - "Veja que **'notes-backup.txt'** agora é **'backup-1.txt'**" + - "`ls -l`" - "Para restaurar o nome original:" - "`mv backup-1.txt notes-backup.txt`" - "**Comparando Arquivos**" - - "O comando `diff` permite ver as diferenças entre arquivos:" + - "O comando **'diff'** permite ver as diferenças entre arquivos:" - "`diff notes.txt notes-backup.txt`" - "Não deve haver diferenças ainda. Vamos modificar o arquivo original:" - "`echo 'Nova linha adicionada!' >> notes.txt`" - - "O operador `>>` acrescenta a saída do comando `echo` ao final do arquivo sem substituir o conteúdo existente." + - "O operador **'>>'** acrescenta a saída do comando **'echo'** ao final do arquivo sem substituir o conteúdo existente." - "Agora, compare novamente:" - "`diff notes.txt notes-backup.txt`" - "Você verá a diferença: a linha adicional no arquivo original." - "**Redirecionamento e Pipes**" - "O Linux permite redirecionar a saída de comandos para arquivos ou outros comandos:" - - "- `>`: Redireciona e sobrescreve o arquivo" - - "- `>>`: Redireciona e acrescenta ao arquivo" - - "- `|`: Pipe - envia a saída de um comando para a entrada de outro" + - "- **'>'**: Redireciona e sobrescreve o arquivo" + - "- **'>>'**: Redireciona e acrescenta ao arquivo" + - "- **'|'**: Pipe - envia a saída de um comando para a entrada de outro" - "Exemplos:" - "`echo 'Conteúdo novo' > new-file.txt` # Cria ou sobrescreve" - "`echo 'Mais uma linha' >> new-file.txt` # Acrescenta" @@ -183,14 +184,14 @@ data: - "- **Stopped**: Pausado, geralmente por um sinal" - "- **Zombie**: Processo terminado, mas com entrada ainda na tabela de processos" - "**Listando Processos**" - - "O comando mais básico para listar processos é `ps` (process status):" + - "O comando mais básico para listar processos é **'ps'** (process status):" - "`ps`" - - "Por padrão, `ps` mostra apenas os processos associados ao seu terminal atual. Para ver todos os processos do sistema, usamos flags adicionais:" + - "Por padrão, **'ps'** mostra apenas os processos associados ao seu terminal atual. Para ver todos os processos do sistema, usamos flags adicionais:" - "`ps aux`" - "Onde:" - - "- `a`: Mostra processos de todos os usuários" - - "- `u`: Formato orientado ao usuário, com colunas como %CPU, %MEM" - - "- `x`: Inclui processos sem terminal de controle" + - "- **'a'**: Mostra processos de todos os usuários" + - "- **'u'**: Formato orientado ao usuário, com colunas como %CPU, %MEM" + - "- **'x'**: Inclui processos sem terminal de controle" - "A saída contém colunas importantes como:" - "- **USER**: Proprietário do processo" - "- **PID**: ID do processo" @@ -198,45 +199,45 @@ data: - "- **STAT**: Estado do processo (R=running, S=sleeping, Z=zombie, etc.)" - "- **COMMAND**: Comando que iniciou o processo" - "**Monitoramento em Tempo Real**" - - "Para monitorar processos em tempo real, usamos ferramentas como `top` ou `htop`:" + - "Para monitorar processos em tempo real, usamos ferramentas como **'top'** ou **'htop'**:" - "`htop`" - - "O `htop` é uma versão melhorada do `top`, com interface colorida e interativa. Ele mostra:" + - "O **'htop'** é uma versão melhorada do **'top'**, com interface colorida e interativa. Ele mostra:" - "- Gráficos de uso de CPU e memória" - "- Lista de processos ordenável (F6)" - "- Filtros (F4) e busca" - "- Opções para enviar sinais a processos (F9)" - - "Navegue usando as teclas de seta e pressione `q` para sair." + - "Navegue usando as teclas de seta e pressione **'q'** para sair." - "**Executando Processos em Segundo Plano**" - - "No Linux, podemos facilmente executar processos em background (segundo plano) usando o operador `&`:" + - "No Linux, podemos facilmente executar processos em background (segundo plano) usando o operador **'&'**:" - "`sleep 300 &`" - - "Este comando inicia um processo que simplesmente "dorme" por 300 segundos (5 minutos), mas o faz em segundo plano, liberando o terminal para outros comandos." + - "Este comando inicia um processo que simplesmente \"dorme\" por 300 segundos (5 minutos), mas o faz em segundo plano, liberando o terminal para outros comandos." - "O sistema exibirá o PID do processo em background, algo como `[1] 12345`." - "**Verificando Processos em Background**" - "Para ver os jobs (tarefas) em execução em segundo plano no seu terminal atual:" - "`jobs`" - - "Para encontrar um processo específico por nome, podemos usar `grep` com `ps`:" + - "Para encontrar um processo específico por nome, podemos usar **'grep'** com **'ps'**:" - "`ps aux | grep sleep`" - - "Observe que este comando também mostrará o próprio processo `grep`." + - "Observe que este comando também mostrará o próprio processo **'grep'**." - "**Controlando Processos**" - "O Linux fornece vários comandos para controlar processos em execução:" - - "- `kill [PID]`: Envia um sinal (por padrão, SIGTERM) para encerrar graciosamente" - - "- `kill -9 [PID]` ou `kill -KILL [PID]`: Força o encerramento imediato (use com cautela)" - - "- `killall [nome]`: Encerra todos os processos com o nome especificado" - - "- `pkill [padrão]`: Encerra processos correspondentes a um padrão" - - "Vamos encerrar o processo `sleep` que iniciamos:" + - "- **'kill [PID]'**: Envia um sinal (por padrão, SIGTERM) para encerrar graciosamente" + - "- **'kill -9 [PID]'** ou **'kill -KILL [PID]'**: Força o encerramento imediato (use com cautela)" + - "- **'killall [nome]'**: Encerra todos os processos com o nome especificado" + - "- **'pkill [padrão]'**: Encerra processos correspondentes a um padrão" + - "Vamos encerrar o processo **'sleep'** que iniciamos:" - "`pkill sleep`" - "Verifique se o processo foi encerrado:" - "`ps aux | grep sleep`" - - "Agora você deve ver apenas o processo `grep` na saída." + - "Agora você deve ver apenas o processo **'grep'** na saída." - "**Prioridade de Processos**" - - "No Linux, cada processo tem uma prioridade ('nice') que vai de -20 (maior prioridade) a 19 (menor prioridade). Podemos iniciar um processo com prioridade específica:" + - "No Linux, cada processo tem uma prioridade (**'nice'**) que vai de -20 (maior prioridade) a 19 (menor prioridade). Podemos iniciar um processo com prioridade específica:" - "`nice -n 10 sleep 60 &`" - "Ou alterar a prioridade de um processo em execução (requer permissões elevadas para aumentar a prioridade):" - "`renice +5 [PID]`" tips: - type: "tip" title: "Alternativa ao top" - content: "O comando htop é uma versão melhorada do top com interface colorida e interativa. Se não estiver instalado, você pode fazê-lo com 'sudo apt install htop' em sistemas Debian/Ubuntu." + content: "O comando htop é uma versão melhorada do top com interface colorida e interativa. Se não estiver instalado, você pode fazê-lo com `sudo apt install htop` em sistemas Debian/Ubuntu." - type: "info" title: "Processos Zumbis" content: "Processos zumbis (estado Z) são processos que terminaram, mas cujo estado de saída ainda não foi coletado pelo processo pai. Geralmente são inofensivos a menos que existam em grande número." @@ -266,15 +267,15 @@ data: - "- **w (write)**: Permite modificar o conteúdo" - "- **x (execute)**: Permite executar (para arquivos) ou acessar (para diretórios)" - "**Visualizando Permissões**" - - "Quando usamos `ls -l`, vemos as permissões no primeiro campo da saída:" + - "Quando usamos **'ls -l'**, vemos as permissões no primeiro campo da saída:" - "`ls -l`" - - "O formato é: `rwxrwxrwx`" + - "O formato é: **-rw-r--r--**" - "- Primeiros 3 caracteres: permissões do proprietário" - "- 3 caracteres do meio: permissões do grupo" - "- Últimos 3 caracteres: permissões para outros" - - "Um `-` indica que a permissão está ausente." + - "Um **'-'** indica que a permissão está ausente." - "**Alterando Permissões**" - - "O comando `chmod` (change mode) permite alterar permissões. Há duas notações principais:" + - "O comando **'chmod'** (change mode) permite alterar permissões. Há duas notações principais:" - "**Notação simbólica**: Usando letras e símbolos" - "Crie um arquivo para teste:" - "`echo 'Arquivo de teste para permissões' > perm_test.txt`" @@ -292,14 +293,14 @@ data: - "- w = 2" - "- x = 1" - "A soma desses valores para cada nível define as permissões:" - - "`chmod 644 perm_test.txt` # rw-r--r--" - - "`chmod 755 perm_test.txt` # rwxr-xr-x" - - "`chmod 600 perm_test.txt` # rw-------" + - "`chmod 644 perm_test.txt # rw-r--r--`" + - "`chmod 755 perm_test.txt # rwxr-xr-x`" + - "`chmod 600 perm_test.txt # rw-------`" - "**Alterando Proprietário e Grupo**" - - "O comando `chown` (change owner) altera o proprietário e/ou grupo:" + - "O comando **'chown'** (change owner) altera o proprietário e/ou grupo:" - "`sudo chown root perm_test.txt` # Muda apenas o proprietário" - "`sudo chown root:root perm_test.txt` # Muda proprietário e grupo" - - "O comando `chgrp` muda apenas o grupo:" + - "O comando **'chgrp'** (change group) muda apenas o grupo:" - "`sudo chgrp root perm_test.txt`" - "**Permissões Especiais para Diretórios**" - "Para diretórios, as permissões têm significados ligeiramente diferentes:" @@ -309,7 +310,7 @@ data: - "Crie um diretório para teste:" - "`mkdir test_dir`" - "Defina permissões de forma recursiva (para o diretório e seu conteúdo):" - - "`chmod -R 750 test_dir` # rwxr-x---" + - "`chmod -R 750 test_dir # rwxr-x---`" tips: - type: "info" title: "Permissões de Diretório"