Quiz Módulo 6 - Scripting Shell
Instruções
Este quiz contém 30 questões de múltipla escolha para validar seu entendimento do Módulo 6.
Dica: Responda cada questão antes de revelar a resposta. As respostas estão ocultas logo após cada pergunta.
Questão 1
Qual é o shebang padrão para um script Bash?
Ver explicação
Resposta correta: #!/bin/bash
Explicação: O shebang #!/bin/bash indica que o script deve ser executado com Bash. Ele deve estar na primeira linha do script. Exemplo: #!/bin/bash seguido de uma linha em branco e então o código.
Questão 2
Como tornar um script executável?
Ver explicação
Resposta correta: chmod +x script.sh
Explicação: chmod +x script.sh adiciona permissão de execução ao script. Depois, pode-se executá-lo com ./script.sh ou bash script.sh. chmod 755 script.sh faz o mesmo.
Questão 3
Como declarar uma variável em Bash?
Ver explicação
Resposta correta: var="valor"
Explicação: Em Bash, declara-se uma variável com `var="valor"` (sem espaços ao redor do `=`). Para usar a variável: `$var` ou `${var}`. Para exibir: `echo $var`.
Questão 4
Qual comando permite agendar uma tarefa recorrente no Linux?
Ver explicação
Resposta correta: cron
Explicação: cron é o daemon que executa tarefas agendadas. crontab é o comando para gerenciar tarefas do cron. As tarefas são definidas em arquivos crontab com uma sintaxe especial.
Questão 5
Qual comando permite editar as tarefas cron de um usuário?
Ver explicação
Resposta correta: crontab -e
Explicação: crontab -e abre o editor para modificar as tarefas cron do usuário atual. crontab -l lista as tarefas, crontab -r remove todas as tarefas. As tarefas ficam em /var/spool/cron/crontabs/username.
Questão 6
Qual é a sintaxe correta de uma linha crontab?
Ver explicação
Resposta correta: minuto hora dia mês dia-semana comando
Explicação: Formato do crontab: minuto hora dia mês dia-semana comando. Exemplos: 0 * * * * (a cada hora), 0 0 * * * (meia-noite todo dia), */5 * * * * (a cada 5 minutos). Dias da semana: 0-7 (0 e 7 = domingo).
Questão 7
Qual sintaxe crontab executa uma tarefa a cada hora?
Ver explicação
Resposta correta: 0 * * * *
Explicação: 0 * * * * significa: minuto 0 de cada hora, todo dia, todo mês, todo dia da semana = toda hora no minuto 0. 0 0 * * * = meia-noite todo dia. * * * * * = todo minuto.
Questão 8
Qual sintaxe crontab executa uma tarefa todos os dias à meia-noite?
Ver explicação
Resposta correta: 0 0 * * *
Explicação: 0 0 * * * significa: minuto 0, hora 0 (meia-noite), todo dia, todo mês, todo dia da semana = todos os dias à meia-noite. Muito comum para backups diários.
Questão 9
Qual comando lista as tarefas cron de um usuário?
Ver explicação
Resposta correta: crontab -l
Explicação: crontab -l lista as tarefas cron do usuário atual. crontab -l -u username lista as tarefas de outro usuário (requer root). crontab -e edita, crontab -r remove todas as tarefas.
Questão 10
Qual estrutura de controle permite executar código condicional em Bash?
Ver explicação
Resposta correta: if-then-else
Explicação: A estrutura if-then-else permite executar código condicional. Sintaxe: if [ condição ]; then comandos; else comandos; fi. Exemplo: if [ $var -eq 10 ]; then echo "Igual"; fi.
Questão 11
Qual loop permite iterar sobre uma lista em Bash?
Ver explicação
Resposta correta: for
Explicação: O loop for permite iterar sobre uma lista. Sintaxes: for var in lista; do comandos; done ou for ((i=1; i<=10; i++)); do comandos; done. Exemplo: for file in *.txt; do echo $file; done.
Questão 12
Qual loop executa código enquanto uma condição for verdadeira?
Ver explicação
Resposta correta: while
Explicação: O loop while executa código enquanto uma condição for verdadeira. Sintaxe: while [ condição ]; do comandos; done. until faz o inverso (enquanto a condição for falsa). Atenção com loops infinitos!
Questão 13
Qual variável contém o código de retorno do último comando?
Ver explicação
Resposta correta: $?
Explicação: $? contém o código de retorno do último comando. 0 = sucesso, diferente de zero = erro. Exemplo: command; if [ $? -eq 0 ]; then echo "Sucesso"; fi. Também pode-se usar diretamente: if command; then ....
Questão 14
Qual variável contém o número de argumentos passados para o script?
Ver explicação
Resposta correta: $#
Explicação: $# contém o número de argumentos passados para o script. $1, $2, etc. contêm os argumentos individuais. $0 contém o nome do script. $@ contém todos os argumentos.
Questão 15
Qual variável contém o primeiro argumento passado para o script?
Ver explicação
Resposta correta: $1
Explicação: $1 contém o primeiro argumento, $2 o segundo, etc. $0 contém o nome do script. $@ contém todos os argumentos. Exemplo: ./script.sh arg1 arg2 → $1="arg1", $2="arg2".
Questão 16
Qual comando permite criar uma função em Bash?
Ver explicação
Resposta correta: function_name() seguido de comandos entre chaves
Explicação: Sintaxe para criar uma função: `function_name() { comandos; }` (com chaves ao redor dos comandos). Também pode-se usar `function function_name { comandos; }`. Para chamar: `function_name` ou `function_name arg1 arg2`. Nota: As chaves são necessárias para delimitar o corpo da função.
Questão 17
Qual arquivo contém as tarefas cron do sistema (para todos os usuários)?
Ver explicação
Resposta correta: /etc/crontab
Explicação: /etc/crontab contém as tarefas cron do sistema. Formato semelhante, mas com um campo de usuário: minuto hora dia mês dia-semana usuário comando. Os diretórios /etc/cron.d/, /etc/cron.hourly/, /etc/cron.daily/, etc. também contêm tarefas do sistema.
Questão 18
Qual diretório contém os scripts executados diariamente pelo cron?
Ver explicação
Resposta correta: /etc/cron.daily
Explicação: /etc/cron.daily/ contém os scripts executados diariamente. Semelhante: /etc/cron.hourly/, /etc/cron.weekly/, /etc/cron.monthly/. Esses scripts são executados pelo anacron ou run-parts.
Questão 19
Qual comando permite testar se um arquivo existe em Bash?
Ver explicação
Resposta correta: [ -f arquivo ] ou test -f arquivo
Explicação: [ -f arquivo ] testa se um arquivo existe e é um arquivo regular. Outros testes: [ -d arquivo ] (diretório), [ -e arquivo ] (existe), [ -r arquivo ] (legível), [ -w arquivo ] (gravável), [ -x arquivo ] (executável).
Questão 20
Qual comando permite ler uma entrada do usuário em um script Bash?
Ver explicação
Resposta correta: read
Explicação: read variavel lê uma linha da entrada padrão e armazena na variável. Exemplos: read nome, read -p "Digite seu nome: " nome (com prompt), read -s senha (entrada oculta).
Questão 21
Qual estrutura permite fazer uma escolha múltipla em Bash?
Ver explicação
Resposta correta: case-esac
Explicação: case permite fazer uma escolha múltipla. Sintaxe: case $var in pattern1) comandos;; pattern2) comandos;; *) comandos;; esac. Mais legível que vários if-elif para muitas opções.
Questão 22
Qual sintaxe crontab executa uma tarefa a cada 5 minutos?
Ver explicação
Resposta correta: */5 * * * *
Explicação: */5 * * * * significa a cada 5 minutos. O */5 significa "todos os valores divisíveis por 5". 5 * * * * = apenas no minuto 5 de cada hora. 5,10,15 * * * * = nos minutos 5, 10 e 15.
Questão 23
Qual variável contém o PID do processo atual?
Ver explicação
Resposta correta: $$
Explicação: $$ contém o PID do processo shell atual. Útil para criar arquivos temporários únicos: tempfile="/tmp/script.$$". $PPID contém o PID do processo pai.
Questão 24
Qual comando permite redirecionar a saída de erro para um arquivo?
Ver explicação
Resposta correta: command 2> error.log
Explicação: 2> redireciona a saída de erro (stderr, file descriptor 2). > redireciona a saída padrão (stdout, file descriptor 1). 2>&1 redireciona stderr para stdout. &> redireciona ambos para um arquivo.
Questão 25
Qual comando permite redirecionar tanto a saída padrão quanto a de erro para um arquivo?
Ver explicação
Resposta correta: command &> file ou command > file 2>&1
Explicação: command &> file redireciona stdout e stderr para o arquivo. Equivalente a command > file 2>&1. A ordem é importante: 2>&1 deve vir depois de > file para redirecionar stderr para o mesmo local que stdout.
Questão 26
Qual comando permite criar um array em Bash?
Ver explicação
Resposta correta: array=(1 2 3)
Explicação: Sintaxe para criar um array: `array=(1 2 3)` ou `array=("um" "dois" "três")`. Para acessar: `${array[0]}`, `${array[1]}`, etc. `${array[@]}` contém todos os elementos. `${#array[@]}` = quantidade de elementos.
Questão 27
Qual sintaxe crontab executa uma tarefa todas as segundas-feiras às 9h00?
Ver explicação
Resposta correta: 0 9 * * 1
Explicação: 0 9 * * 1 = minuto 0, hora 9, todo dia, todo mês, segunda-feira (1). Dias da semana: 0 ou 7 = domingo, 1 = segunda, 2 = terça, ..., 6 = sábado.
Questão 28
Qual comando permite sair de uma função com um valor de retorno?
Ver explicação
Resposta correta: return
Explicação: return sai de uma função com um código de retorno. return 0 = sucesso, return 1 = erro. exit encerra todo o script. break sai de um loop. return sem argumento retorna o código do último comando.
Questão 29
Qual comando permite sair de um script com um código de retorno?
Ver explicação
Resposta correta: exit
Explicação: exit encerra o script com um código de retorno. exit 0 = sucesso, exit 1 (ou outro diferente de zero) = erro. Se nenhum código for especificado, usa o código do último comando. return só funciona em funções.
Questão 30
Qual comando permite ver os logs das tarefas cron no Ubuntu 24.04?
Ver explicação
Resposta correta: journalctl -u cron ou grep CRON /var/log/syslog
Explicação: No Ubuntu 24.04, os logs do cron estão nos logs do systemd. journalctl -u cron exibe os logs do serviço cron. Também é possível buscar em /var/log/syslog: grep CRON /var/log/syslog. Os logs mostram execuções e erros das tarefas cron.
Resultado do Quiz
Parabéns por ter completado o quiz do Módulo 6!
Pontuação:
- 25-30 respostas corretas: Excelente! Você domina scripting Bash e cron.
- 20-24 respostas corretas: Muito bom! Reveja os conceitos onde teve dificuldade.
- 15-19 respostas corretas: Bom! Revise os capítulos sobre scripting e cron.
- Menos de 15: Recomendado revisar o módulo antes de continuar.
Próximos Passos
Agora que você validou seus conhecimentos:
Módulo 7: Rede e Configuração
Labs práticos: Coloque em prática scripting e cron com os labs do Módulo 6
Quiz criado em: Dezembro 2024 - Testado no Ubuntu 24.04