Originado como um projeto amador de Linus Torvalds em 1991, o sistema operacional Linux ascendeu a um patamar de destaque em supercomputadores, servidores web, smartphones e diversas outras tecnologias.
O Linux é amplamente apreciado por sua robustez, segurança e uso eficiente de recursos. Sua adoção e demanda têm aumentado consistentemente ao longo dos anos, e essa tendência parece destinada a continuar.
Em 2021, a Statista divulgou que 47% dos desenvolvedores profissionais empregam o Linux. No mesmo ano, o 9º Relatório Anual de Empregos de Código Aberto indicou que o desenvolvimento e a administração do Linux eram as segundas habilidades mais procuradas por gerentes e desenvolvedores em processos de contratação.
O domínio do Linux é fundamental em áreas como desenvolvimento de software, administração de sistemas, DevOps, administração de redes, engenharia de segurança e ciência de dados, entre outros. Portanto, se você almeja uma carreira em alguma dessas áreas, é muito provável que suas habilidades em Linux sejam avaliadas em entrevistas.
Para auxiliar na sua preparação, apresentamos algumas das principais perguntas sobre Linux que podem surgir em entrevistas, juntamente com suas respectivas respostas.
O que é Linux?
Resposta: Linux é um sistema operacional de código aberto e gratuito, concebido por Linus Torvalds em 1991 e distribuído sob a Licença Pública Geral GNU (GPL).
Por que optar pelo Linux?
Resposta: O sistema operacional Linux oferece diversas vantagens. Primeiramente, o Linux apresenta um alto nível de segurança e é praticamente imune a ataques de malware.
Além disso, o Linux é notavelmente estável, confiável e raramente apresenta travamentos, o que o torna a escolha preferida para muitos servidores. Outro benefício é a sua leveza, consumindo menos RAM e memória, permitindo seu uso até mesmo em máquinas mais antigas.
Em resumo, o Linux é gratuito, de código aberto, constantemente atualizado e altamente personalizável, permitindo que os usuários adaptem o sistema operacional às suas necessidades específicas. Existem também diversas distribuições otimizadas para diferentes finalidades, como hacking, programação e até mesmo uso geral.
Quais são os componentes fundamentais do sistema operacional Linux?
Resposta: O sistema operacional Linux é composto por três componentes principais.
- Kernel: Este é o núcleo do sistema operacional Linux. Trata-se da camada mais baixa, responsável pela interação direta com o hardware do computador. O kernel aloca e gerencia recursos como CPU, memória e armazenamento, fornecendo serviços para outras partes do sistema operacional e programas em execução.
- Shell: Esta é uma interface de linha de comando que permite aos usuários interagir com o sistema operacional e executar programas. Ela funciona como uma ponte entre os usuários e o kernel, interpretando comandos e os executando.
- Aplicativos: Estes são os programas que operam sobre o sistema operacional, desempenhando funções específicas como navegação na web, processamento de texto e reprodução de mídia.
O kernel, o shell e os aplicativos formam o sistema operacional Linux.
Por que o Linux é considerado mais seguro?
Resposta: Um fator chave para a segurança do Linux é sua natureza de código aberto. Muitos desenvolvedores examinam o código do Linux regularmente e, quando um bug ou vulnerabilidade é identificado, ele é discutido e resolvido rapidamente nos fóruns da comunidade Linux.
Adicionalmente, a forma como o Linux gerencia permissões e privilégios garante que o acesso root não seja concedido a usuários comuns por padrão, limitando o dano potencial causado por um vírus. Sua menor popularidade entre usuários diários também contribui para sua segurança, já que hackers tendem a direcionar sistemas operacionais com maior base de usuários.
O que é o Kernel do Linux?
Resposta: Esta é a camada fundamental do sistema operacional Linux, atuando como seu componente principal. O kernel se posiciona entre o hardware e outras partes do sistema, interagindo diretamente com o hardware do computador e gerenciando recursos como memória, CPU e armazenamento.
Ele também garante que diversas tarefas e processos recebam os recursos necessários para operar de forma eficiente e sem problemas.
Qual a diferença entre Linux e Unix?
Resposta: O Linux é um sistema operacional gratuito e de código aberto, desenvolvido por Linus Torvalds, enquanto o Unix é um sistema operacional proprietário, portável, multitarefa e multiusuário, criado pela AT&T. Ao contrário do Linux, o Unix não é de código aberto.
O que é uma GUI?
Resposta: Uma Interface Gráfica do Usuário (GUI) é uma interface para um sistema operacional que permite aos usuários interagir por meio de elementos gráficos como janelas, ícones, menus, ponteiros e barras de rolagem (WIMPS).
Esses elementos gráficos são manipulados por dispositivos apontadores como mouse, caneta, trackball ou o dedo em telas sensíveis ao toque.
O que é CLI?
Resposta: Uma Interface de Linha de Comando (CLI) é uma interface baseada em texto que permite aos usuários interagir com um sistema de computador inserindo comandos como sequências de texto no terminal.
O sistema responde executando os comandos ou exibindo as informações solicitadas.
Explique o que é o Shell do Linux.
Resposta: O shell do Linux é um programa que interpreta e executa comandos inseridos através da interface de linha de comando, permitindo aos usuários interagir e controlar seus computadores.
O shell recebe comandos em um formato legível por humanos, os converte em uma forma que o kernel entenda e os encaminha para execução.
Quais os tipos de Shells no Linux?
Resposta: Existem diversos tipos de shells no Linux, cada um otimizado para usos específicos. Alguns dos tipos de shells incluem:
- Bourne Shell (sh)
- Bourne Again Shell (Bash)
- C Shell (csh)
- KornShell (ksh)
- Z Shell (zsh)
- Friendly Interactive Shell (fish)
- Debian Almquist Shell (dash)
- TENEX C Shell (tcsh)
Estes são alguns dos shells mais populares no Linux.
O que é um Script Shell?
Resposta: Trata-se de um arquivo de texto contendo uma sequência de comandos a serem executados pelo shell do Linux na ordem em que aparecem.
Os scripts shell contêm comandos que, de outra forma, precisariam ser inseridos na interface de linha de comando, um por vez. Esses scripts são muito úteis para automatizar tarefas repetitivas ou executar trabalhos em lote.
Explique as permissões de arquivos no Linux.
Resposta: Existem três tipos de permissões de arquivos no Linux:
- Leitura (r): Permite que um usuário abra e leia o conteúdo de um arquivo ou exiba o conteúdo de um diretório. No entanto, o usuário não pode modificar o arquivo ou o conteúdo do diretório.
- Escrita (w): A permissão de escrita em um arquivo permite que um usuário modifique seu conteúdo. Em um diretório, permite adicionar, remover e renomear arquivos.
- Execução (x): Permite que um usuário execute um arquivo como um programa. No Linux, um usuário não pode executar um programa sem a permissão de execução.
Esses são os tipos de permissões no sistema operacional Linux.
Como conceder permissões no Linux?
Resposta: Para conceder permissões no Linux, utiliza-se o comando chmod, que significa “change mode”. O chmod é empregado para alterar as permissões de um arquivo ou diretório.
A permissão pode ser concedida para diferentes grupos de usuários, incluindo: grupo (g), usuário (u), outros (o) e todos os usuários (a). As permissões read(r), write(w) e execute(x) podem ser concedidas adicionando (+) ou removidas subtraindo (-).
A sintaxe para alterar as permissões é a seguinte:
chmod permissions nome-do-arquivo/diretório
Como encontrar onde um arquivo está armazenado no Linux?
Resposta: Para descobrir a localização de um arquivo no Linux, primeiro execute o comando
find <nome-do-arquivo>
para buscar o arquivo nos diretórios disponíveis. Se um arquivo com o nome especificado for encontrado, execute:
realpath <nome-do-arquivo>
para obter o caminho absoluto para o local de armazenamento do arquivo.
Como excluir um diretório no Linux?
Resposta: Para excluir um diretório no Linux, pode-se usar o comando rmdir, que significa “remove directory”. Este comando é usado para excluir diretórios vazios.
Por exemplo, para excluir um diretório vazio chamado teste, execute:
rmdir teste
Para excluir um diretório não vazio, use rm juntamente com a flag -r,
rm -r exemplo
O que é espaço de troca?
Resposta: Trata-se de uma área reservada no disco rígido, geralmente na forma de partição, utilizada pelo sistema operacional Linux quando a memória RAM está esgotada.
Se mais memória for necessária e a RAM estiver cheia, páginas inativas ou pouco usadas são movidas da RAM para o espaço de troca, liberando espaço para mais processos na RAM.
O que é LILO?
Resposta: O Linux Loader (LILO) é um bootloader para o sistema operacional Linux. Um bootloader é um programa responsável por carregar o sistema operacional na memória e iniciá-lo após a inicialização de um computador.
Assim que o computador é ligado, o LILO localiza o kernel do Linux e outros programas necessários, carregando-os na memória. Em seguida, inicia o kernel do Linux.
O que é Redirecionamento?
Resposta: Consiste em alterar a fonte da entrada padrão, que normalmente é o teclado, e os destinos da saída padrão e do erro padrão, que geralmente é a tela.
Por exemplo, através do redirecionamento, a entrada pode ser obtida a partir de um arquivo e a saída e as informações de erro podem ser salvas em um arquivo.
O que é agrupamento de comandos?
Resposta: É uma forma de executar vários comandos em conjunto como uma única unidade. O agrupamento permite que vários comandos sejam executados como um bloco.
O agrupamento utiliza recursos como redirecionamento e encadeamento (pipe) para criar scripts mais complexos e automatizar tarefas.
O que é um servidor Linux sem estado?
Resposta: Este servidor não armazena informações de estado ou dados localmente. Todo o armazenamento de dados ocorre no lado do cliente e o servidor não mantém nenhum registro dos dados que processa.
O que é agregação de rede?
Resposta: É uma técnica para combinar diversas interfaces de rede em uma única interface. Isso aumenta a largura de banda da rede, a taxa de transferência e a conectividade de backup, aprimorando o desempenho de uma rede.
O que é o comando grep?
Resposta: O comando Global regular expression print (Grep) é uma ferramenta de linha de comando usada para pesquisar padrões em um arquivo, exibindo todas as linhas do arquivo que contêm os padrões. O padrão procurado é uma expressão regular, geralmente uma sequência de caracteres.
O que são Daemons?
Resposta: Daemons são programas utilitários executados em segundo plano sem intervenção do usuário. Daemons realizam tarefas como monitoramento de periféricos e manutenção do sistema, garantindo o bom funcionamento do sistema operacional.
O que são Links Simbólicos?
Resposta: Um link simbólico, também conhecido como soft link ou symlink, é um tipo de arquivo no sistema operacional Linux que aponta para outro arquivo ou diretório. Ele é o equivalente a um atalho no sistema operacional Windows.
Links simbólicos facilitam o acesso a arquivos que de outra forma seriam difíceis ou inconvenientes de alcançar.
O que são Variáveis de Ambiente?
Resposta: São variáveis dinâmicas definidas no shell e usadas para armazenar informações que os programas necessitam para executar ou configurar seu comportamento de acordo com as necessidades dos usuários.
Alguns exemplos de variáveis de ambiente incluem LANG, que armazena o idioma padrão do sistema; TEMP, que indica o diretório para arquivos temporários; e HOME, que mostra o diretório inicial dos usuários atuais, entre outros.
Diferencie os comandos Bash e DOS para visualizar o conteúdo de arquivos.
Resposta: No shell Bash, os comandos que podem ser usados para visualizar o conteúdo de um arquivo incluem:
- cat – imprime o conteúdo do arquivo na tela
- nl – similar ao cat, mas acrescenta números de linha ao conteúdo exibido
- less – lê o conteúdo de um arquivo uma página (tela) por vez
- head – exibe as primeiras 10 linhas de um arquivo na tela
- tail – exibe as últimas 10 linhas de um arquivo na tela
No shell DOS, os seguintes comandos podem ser utilizados para visualizar o conteúdo de arquivos:
- type – exibe o conteúdo de um arquivo sem modificá-lo
- more – exibe o conteúdo de um arquivo uma tela por vez
Os shells Bash e DOS têm comandos distintos para visualizar o conteúdo de arquivos.
Cite algumas distribuições Linux.
Resposta: As distribuições Linux são versões do Linux construídas sobre o kernel do Linux, que são empacotadas e distribuídas para os usuários.
Algumas distribuições Linux populares incluem Ubuntu, Fedora, Debian, CentOS, Arch Linux, Red Hat Enterprise Linux e Mint Linux.
Quais são os diferentes estados de processos no Linux?
Resposta: Os principais estados de processo no Linux incluem:
- Running – um processo sendo executado pela CPU
- Sleeping – um processo aguardando recursos que não estão disponíveis no momento
- Stopped – um processo que foi interrompido pelo processador ou por um sinal
- Zombie – um processo que terminou, mas seu processo pai ainda não liberou seus recursos
Estes são os principais estados de processos no Linux.
Quais são as diferentes chamadas do sistema de gerenciamento de processos no Linux?
Resposta: As diferentes chamadas do sistema de gerenciamento de processo incluem:
- fork() – Utilizada para criar um novo processo
- kill() – Usada para enviar um sinal para finalizar um processo em execução
- wait() – Suspende a execução do processo de chamada até que um processo filho termine
- exec() – Carrega um programa no processo atual e o executa
- exit() – Finaliza a execução de um programa
Estas são as principais chamadas do sistema para o gerenciamento de processos no Linux.
Como verificar o status de um processo?
Resposta: Para verificar o status de um processo, execute o comando ‘ps’ para ver o status atual de todos os processos ativos em um sistema Linux.
Para ver mais detalhes sobre um processo específico, use:
ps -p <ID-do-processo>
Como parar um processo em execução no Linux?
Resposta: Para interromper um processo em execução no Linux, execute:
kill <ID-do-processo>
para finalizar um processo usando seu ID. Você também pode interromper um processo por seu nome, executando:
killall <nome-do-processo>
Como a sensibilidade à capitalização afeta os comandos?
Resposta: No sistema operacional Linux, os comandos são sensíveis à capitalização, o que significa que o shell trata comandos escritos em letras maiúsculas e minúsculas como distintos e diferentes.
Por exemplo, o comando ‘rmdir’ é diferente de ‘RMDIR’. No sistema operacional Linux, os comandos de linha de comando são geralmente escritos em letras minúsculas.
Qual comando é usado para verificar o consumo de memória no Linux?
Resposta: O comando free, quando executado, mostra a quantidade de espaço usado e livre no sistema. Diferentes flags podem ser usadas com o comando para exibir diferentes tipos de informações.
O que é o comando ls?
Resposta: É um comando usado para listar o conteúdo de um diretório.
O que é o comando ps?
Resposta: O comando ps exibe informações sobre os processos ativos no momento.
O que é o comando netstat?
Resposta: É um comando utilizado para mostrar informações relativas às conexões de rede do sistema, exibindo detalhes sobre as conexões de rede ativas.
O que é o comando cp?
Resposta: É um comando utilizado para copiar arquivos e diretórios.
O que é o comando mkdir?
Resposta: É um comando utilizado para criar diretórios no Linux.
O que é o comando cat?
Resposta: Este comando é utilizado para visualizar o conteúdo de arquivos, criar arquivos novos, redirecionar a saída de outros comandos, concatenar múltiplos arquivos e exibir a saída na tela.
Considerações Finais
Este artigo sobre perguntas e respostas para entrevistas em Linux visa auxiliar você a se preparar para sua próxima entrevista.
Boa sorte! 👍