A informática para concursos públicos é uma disciplina cada vez mais presente e decisiva nos editais modernos. Dominar os conceitos básicos e avançados, especialmente sobre sistemas operacionais como o Linux, é fundamental para garantir pontos preciosos e se destacar da concorrência.
O Linux é um pilar da tecnologia atual, presente em supercomputadores, servidores de internet, dispositivos móveis (como o Android) e até em aparelhos inteligentes (IoT). Para concursos, compreender sua essência é o primeiro passo.
O kernel é o componente central de qualquer sistema operacional, e o Linux não é exceção. Ele atua como uma ponte entre o hardware do computador e os aplicativos, gerenciando recursos e garantindo que todas as operações ocorram de forma eficiente e segura.
O desenvolvimento do núcleo (ou kernel) Linux foi iniciado em 1991 pelo programador finlandês Linus Torvalds, inspirado no sistema Minix. Torvalds visava criar "um Minix melhor que o Minix". Rapidamente, o projeto ganhou a colaboração de programadores voluntários e grandes empresas como IBM, Google e Microsoft, tornando-se um dos exemplos mais proeminentes de colaboração em software livre e de código aberto.
Embora popularmente conhecido apenas como "Linux", o nome completo do sistema operacional é frequentemente referido como GNU/Linux. A Free Software Foundation (FSF) e o Projeto GNU defendem essa nomenclatura, pois grande parte do código-fonte e das ferramentas que compõem um sistema operacional baseado no kernel Linux vêm do Projeto GNU.
A filosofia do Linux está profundamente enraizada no conceito de Software Livre, uma ideia defendida pelo Projeto GNU, iniciado por Richard Stallman em 1983. O software livre concede aos usuários quatro liberdades essenciais:
Liberdade de usar o programa para qualquer finalidade.
Liberdade de estudar como o programa funciona e adaptá-lo às suas necessidades (o que exige acesso ao código-fonte).
Liberdade de modificar (alterar) o programa.
Liberdade de redistribuir cópias do programa, incluindo suas versões modificadas, sem restrições.
Essas liberdades são garantidas pela Licença Pública Geral GNU (GNU GPL), versão 2 ou posterior, sob a qual o kernel Linux é distribuído.
Diferença Crucial para Concursos: Software Livre vs. Software Proprietário
Software Proprietário (ex: Windows): Tem seu código-fonte fechado, não permitindo que o usuário entenda ou modifique seu funcionamento interno. Geralmente, exige a aquisição de uma licença para uso.
Software Livre (ex: Linux): Oferece as quatro liberdades descritas acima, com código-fonte aberto, permitindo estudo, modificação e redistribuição.
Código Aberto (Open Source): A Receita do Programa
O conceito de código aberto (open source) significa que a "receita" de como o programa foi feito está disponível publicamente. Isso permite que desenvolvedores de todo o mundo inspecionem, estudem e colaborem para aprimorar o software.
MITO DESMISTIFICADO: Linux é sempre gratuito? NÃO! Embora a grande maioria das distribuições Linux possa ser baixada e usada gratuitamente, o "software livre" não significa necessariamente "software gratuito". Empresas como a Red Hat comercializam distribuições Linux, oferecendo suporte, treinamento e serviços agregados. A licença livre garante o acesso ao código-fonte e as liberdades, mas a empresa pode cobrar pela distribuição e serviços.
A arquitetura do kernel é o que define como um sistema operacional funciona. O Linux adota um modelo específico que combina desempenho e flexibilidade.
O kernel do Linux é um kernel monolítico modular. Isso significa que:
Ele inclui todas as funcionalidades principais (gerenciamento de memória, processos, dispositivos e sistemas de arquivos) integradas em um único programa. Isso contribui para um desempenho elevado, pois os processos e funções do kernel executam no mesmo espaço de memória, reduzindo a latência.
Suporta módulos, que permitem carregar ou descarregar funcionalidades dinamicamente, como drivers de dispositivo, sem a necessidade de reiniciar o sistema. Essa modularidade oferece grande flexibilidade, permitindo adaptar o kernel para diferentes usos sem recompilá-lo completamente. Comandos como modprobe
são usados para gerenciar esses módulos.
O kernel Linux é composto por vários componentes que trabalham em conjunto para gerenciar o sistema:
Gerenciamento de Memória: Aloca e gerencia a memória RAM entre os processos, implementando técnicas como paginação e troca (swap).
Sistema de Arquivos Virtual (VFS): Uma camada de abstração que permite ao kernel suportar diversos tipos de sistemas de arquivos (como ext4, NTFS).
Gerenciador de Processos: Controla a criação, execução e finalização de processos, implementando multitarefa e multiprocessamento.
Drivers de Dispositivos: Facilita a comunicação entre o sistema operacional e o hardware (periféricos).
Rede: Gerencia a comunicação em rede, suportando vários protocolos.
Segurança: Implementa controle de acesso, permissões e isolamento de processos.
As principais vantagens dessa arquitetura, que são pontos importantes para concursos, incluem:
Desempenho Elevado: Devido à execução de funções no mesmo espaço de memória.
Flexibilidade: A modularidade permite adaptação sem recompilação completa do kernel.
Portabilidade: Projetado para rodar em uma ampla gama de dispositivos e arquiteturas, desde computadores portáteis (iPaq) até supercomputadores (IBM S/390), incluindo diversas arquiteturas como x86, ARM e PowerPC. Isso o torna ideal para sistemas embarcados, celulares, TVs e centros multimídia.
Algumas características do Linux são frequentemente comparadas com outros sistemas operacionais (especialmente Windows) em provas, sendo essenciais para sua preparação.
Assim como o Windows, o Linux é um sistema multiusuário e multitarefa.
Multiusuário: Várias pessoas podem usar o mesmo sistema, cada uma com suas configurações e permissões.
Comparativo de Usuários (MUITO COBRADO!):
Linux: Possui o usuário Root, que é o superusuário ou administrador, com o máximo grau de liberdade e poder para modificar o sistema operacional. Existem também os usuários comuns e usuários do sistema.
Windows: Possui o usuário Administrador, que tem o maior grau de liberdade concedido pela Microsoft, e usuários padrão.
ATENÇÃO: O Root no Linux é considerado mais poderoso que o Administrador no Windows, com a capacidade de "destruir o sistema operacional se fizer besteira".
Multitarefa: O sistema pode executar vários programas (tarefas) de forma concorrente, dando a aparência de que funcionam simultaneamente.
Esta é uma diferença CRÍTICA em relação ao Windows e uma "pegadinha" comum em concursos:
O Linux é case-sensitive. Isso significa que ele diferencia letras maiúsculas de minúsculas em nomes de arquivos, diretórios e comandos. Por exemplo, "Arquivo.txt" e "arquivo.txt" seriam considerados dois arquivos distintos no Linux.
O Windows NÃO é case-sensitive. Para o Windows, "Arquivo.txt" e "arquivo.txt" seriam o mesmo arquivo, e ele não permitiria a criação de ambos no mesmo local.
ATENÇÃO: Pegadinha de Concurso!
Uma questão pode apresentar a situação de tentar criar um arquivo com o mesmo nome, mas em maiúsculas/minúsculas diferentes, e perguntar se é possível em ambos os sistemas. A resposta é SIM no Linux, mas NÃO no Windows.
A segurança é uma das vantagens frequentemente citadas do Linux.
O kernel Linux, sendo de código aberto, permite que qualquer pessoa realize auditorias no código. Isso dificulta significativamente a inserção de "backdoors" (portas dos fundos para acesso não autorizado).
Houve um caso notório onde a Agência de Segurança Nacional (NSA) dos EUA solicitou a Linus Torvalds que criasse backdoors no GNU/Linux, mas isso não ocorreu devido ao modelo de desenvolvimento aberto. Este é um excelente exemplo da robustez de segurança do Linux.
A forma como o Linux organiza e lida com arquivos e diretórios é um tema recorrente em provas.
O Linux oferece suporte de leitura e escrita a uma vasta gama de sistemas de arquivos, incluindo os nativos e os de outros sistemas operacionais. Isso é uma vantagem significativa, por exemplo, para ferramentas de recuperação de sistemas.
Sistemas de Arquivos Nativos do Linux:
ext2
, ext3
, ext4
: São os mais comuns e utilizados, com ext4
sendo a evolução mais recente.
ReiserFS
, Reiser4
, Btrfs
, F2FS
, XFS
, JFS
: Outros exemplos suportados.
Compatibilidade com Sistemas de Outros SOs:
FAT
, exFAT
, NTFS
: Suporte total para sistemas de arquivos usados pelo Windows. Isso significa que, se você tiver um sistema Dual Boot (Linux e Windows), o Linux pode acessar as partições do Windows.
Partição Swap: O Linux permite a criação de uma partição dedicada (Swap
) para ser usada como memória virtual, complementando a RAM. O Windows, por outro lado, usa a memória virtual dentro de suas partições NTFS
ou FAT32
em tempo de execução.
No Linux, todos os arquivos e diretórios são organizados em uma árvore monolítica, que começa no diretório-raiz (/
). Diferente do Windows, que usa letras para unidades de disco (C:, D:), o Linux monta todas as unidades como subdiretórios dentro dessa estrutura principal.
Convenções de Caminhos:
Diretório-raiz: Representado por /
.
Diretório pessoal (home): Representado por ~
(til).
Diretório de trabalho (atual): Representado por .
(ponto final).
Diretório-pai: Representado por ..
(dois pontos).
Caminhos absolutos: Começam com /
e identificam o arquivo com precisão, independentemente do diretório atual.
Caminhos relativos: Não começam com /
e especificam a localização de um arquivo em relação ao diretório de trabalho atual.
Principais Diretórios do Linux (MUITO COBRADO EM CONCURSOS!)
Conhecer a finalidade dos principais diretórios é crucial, pois é um tema constante em provas:
/dev
: Contém arquivos especiais ou arquivos de dispositivos.
/bin
e /usr/bin
: Contêm comandos-padrão do Linux.
/lib
e /usr/lib
: Possuem as bibliotecas-padrão do Linux.
/etc
: Possui arquivos padrão de configuração.
/home
: Armazena os diretórios pessoais dos usuários.
/var
: Possui arquivos de configuração e de log.
/tmp
: Armazena arquivos temporários.
/usr/local/bin
: Contém comandos que não fazem parte da distribuição padrão, adicionados pelo administrador.
/opt
: Possui software comercial.
/sbin
e /usr/sbin
: Possuem comandos de administração do sistema.
Linux: Não exige extensões de arquivo para que o sistema saiba como lidar com eles. O Linux verifica o cabeçalho do arquivo para obter informações sobre seu tipo. Arquivos podem ter uma, duas, três ou nenhuma extensão.
Windows: Exige extensões de arquivo para identificar qual programa deve ser usado para abri-los. Um arquivo sem extensão no Windows não será aberto com um clique duplo.
DIFERENÇA CRÍTICA LINUX vs. WINDOWS: Extensões
Esta é uma "pegadinha" clássica. Uma questão pode afirmar que não é possível criar arquivos com mais de uma extensão em Linux. Isso é ERRADO! O Linux é super flexível com extensões, enquanto o Windows é mais restritivo.
O Linux é mais do que apenas o kernel; ele é oferecido em "distribuições" que são sistemas operacionais completos.
Uma distribuição Linux (ou GNU/Linux) é uma coleção de software (incluindo o kernel Linux, bibliotecas, utilitários, interface gráfica e aplicações) compilada e empacotada por indivíduos, grupos ou organizações, pronta para instalação e uso.
A natureza de código aberto do Linux permite que qualquer um utilize, modifique e distribua o código, levando à proliferação de inúmeras distribuições. Cada distribuição pode ser customizada para atender a públicos e finalidades específicas, como servidores, desktops, sistemas embarcados ou até mesmo para usuários iniciantes.
Algumas das distribuições mais conhecidas e cobradas em concursos incluem:
Ubuntu: Uma das mais usadas no mundo, conhecida por sua facilidade de uso.
Debian: Base para muitas outras distribuições, incluindo o Ubuntu.
Fedora: Mantida pela comunidade, com inovações rápidas.
Linux Mint: Popular entre usuários que migram do Windows.
Red Hat Enterprise Linux (RHEL) e CentOS: Focadas em uso corporativo.
openSUSE, Slackware, Arch Linux, Mandriva.
A interface gráfica é uma característica que diferencia muitas distribuições. As mais comuns incluem:
GNOME Shell.
KDE Plasma.
Xfce.
Outras como Unity, Cinnamon, LXDE, MATE.
O Linux tem uma penetração enorme em sistemas embarcados e dispositivos móveis. O exemplo mais difundido é o Android, desenvolvido pelo Google, que utiliza o kernel Linux.
A linha de comando (também conhecida como Shell ou Terminal) é uma interface fundamental no Linux, muito explorada em concursos. Mesmo com a evolução das interfaces gráficas, o domínio do terminal é essencial para administradores e usuários avançados.
Linux: Um bom usuário de Linux ainda utiliza frequentemente o terminal para diversas tarefas. As bancas de concurso cobram muitos comandos em Shell/Terminal.
Windows: Investiu pesadamente em interfaces gráficas, e o usuário comum raramente precisa do Prompt de Comando ou PowerShell.
Um comando Linux é um programa ou utilitário que executa uma ação. A estrutura geral é: comando [flags/opções] [argumentos/parâmetros]
Flags/Opções: Modificam o comportamento do comando, geralmente precedidas por um hífen (-
) ou dois hífens (--
). Ex: -h
ou --help
para ajuda.
Argumentos/Parâmetros: Entradas que o comando usa para funcionar, como caminhos de arquivo ou valores.
Conheça os comandos mais usados e cobrados em concursos:
ls
: Lista o conteúdo de um diretório (arquivos e subdiretórios).
Ex: ls --color=auto
para exibir em cores.
Equivalente no Windows: dir
.
cd
: Change Directory. Muda o diretório atual.
Ex: cd Documents
, cd ..
(sobe um nível), cd -
(volta ao anterior), cd
(vai para o diretório home).
Idêntico no Windows: cd
.
pwd
: Print Working Directory. Imprime o caminho absoluto do diretório atual.
mkdir
: Make Directory. Cria um novo diretório.
Ex: mkdir images/
, mkdir -p movies/2004/
(cria subdiretórios aninhados).
Equivalente no Windows: md
.
rm
: Remove. Remove arquivos e diretórios.
ATENÇÃO: Use com extremo cuidado, pois é difícil recuperar arquivos excluídos.
Ex: rm file.txt
(remove arquivo), rm -r dir_vazio/
(remove diretório vazio).
rm -rf dir_com_conteudo/
(remove diretório com conteúdo, -r
para recursivo, -f
para forçar - MUITA CAUTELA!).
Equivalente no Windows: del
(arquivos), rd
(diretórios).
cp
: Copy. Copia arquivos e diretórios.
Ex: cp arquivo_origem.txt arquivo_destino.txt
, cp -r pasta_origem/ pasta_destino/
(copia diretório recursivamente).
Equivalente no Windows: copy
.
mv
: Move. Move ou renomeia arquivos e diretórios.
Ex: mv arquivo_origem.txt pasta_destino/
, mv nome_antigo.txt nome_novo.txt
(renomeia).
Equivalente no Windows: move
, rename
.
man
: Manual. Exibe a página de manual de qualquer outro comando.
Ex: man ls
, man man
.
DICA DE ESTUDO: Acostume-se a ler os manuais para entender flags e opções.
touch
: Cria arquivos vazios ou atualiza os tempos de acesso/modificação de arquivos existentes.
Ex: touch new_file.txt
(cria arquivo vazio).
chmod
: Change Mode. Muda as permissões (modo) de um arquivo.
Permissões básicas: r
(read), w
(write), x
(execute).
Ex: chmod +x script.sh
(torna o script executável).
./
: Executa um arquivo executável no diretório atual.
Ex: ./script.sh
. O script precisa ter permissão de execução (+x
).
sudo
: Superuser do. Permite executar comandos como superusuário (root).
Exige a senha do administrador.
Ex: sudo apt install gimp
(instala software).
exit
: Termina a sessão shell atual.
shutdown
: Desliga a máquina.
Ex: shutdown now
(desliga imediatamente), shutdown 20:40
(agenda desligamento), shutdown -c
(cancela desligamento agendado).
htop
/ ps
: Monitoram processos. htop
é mais interativo.
ps
: Reporta o status dos processos da sessão shell atual.
htop
: Visualizador interativo de processos e recursos do sistema.
kill
: Envia um sinal para encerrar um processo.
Ex: kill 533494
(usa o PID - Process ID), kill firefox
(usa o nome do programa).
Gerenciadores de Pacotes (apt
, yum
, pacman
): Utilizados para instalar, atualizar e remover software.
apt
: Usado em distribuições baseadas em Debian (Ubuntu, Linux Mint). Ex: sudo apt install gimp
.
yum
: Usado em distribuições baseadas em Red Hat (Fedora, CentOS). Ex: sudo yum install gimp
.
pacman
: Usado em distribuições baseadas em Arch (Manjaro). Ex: sudo pacman -S gimp
.
echo
: Exibe texto no terminal.
Ex: echo "Olá mundo"
, echo "Usuário atual: $USER"
.
cat
: Catenate. Cria, visualiza e concatena arquivos.
Principalmente usado para pré-visualizar o conteúdo de um arquivo sem abrir um editor gráfico. Ex: cat arquivo.txt
.
less
/ more
: Inspecionam arquivos interativamente, permitindo navegação para frente e para trás.
less large_text_file.txt
.
tail
: Exibe as últimas linhas de um arquivo.
Padrão: 10 linhas. Pode ser modificado com -n
. Ex: tail -n 4 log.txt
.
head
: Exibe as primeiras linhas de um arquivo.
Padrão: 10 linhas. Pode ser modificado com -n
. Ex: head -n 5 documento.txt
.
grep
: Procura por linhas que correspondam a um padrão (expressão regular) em arquivos de texto e as imprime.
Ex: grep "linux" arquivo.txt
, grep -c "linux" arquivo.txt
(conta ocorrências).
whoami
: Exibe o nome de usuário atualmente logado.
whatis
: Imprime uma descrição de uma linha de um comando.
wc
: Word Count. Retorna o número de palavras, linhas e bytes em um arquivo de texto.
Ex: wc -w arquivo.txt
(somente palavras).
uname
: Unix Name. Imprime informações do sistema operacional.
Ex: uname -a
(todas as informações).
neofetch
: Ferramenta CLI que exibe informações do sistema e hardware de forma gráfica.
find
: Busca por arquivos em uma hierarquia de diretórios com base em um padrão.
Ex: find ./ -name "documento.pdf"
, find ./ -type f -name "*.txt"
.
wget
: World Wide Web Get. Utilitário para recuperar conteúdo da internet (baixar arquivos).
Ex: wget https://exemplo.com/arquivo.zip
.
Comandos Linux vs. Comandos Windows (Comparativo para Concursos)
As bancas adoram misturar comandos! É vital saber as diferenças:
FunçãoLinuxWindows (Prompt/PowerShell) | ||
Listar conteúdo |
|
|
Mover/Renomear |
|
|
Copiar |
|
|
Criar diretório |
|
|
Remover arquivo/diretório |
|
|
Mudar diretório |
|
|
Shell script é uma linguagem poderosa para automatizar tarefas e orquestrar a execução de outros programas no Linux. Embora a sintaxe possa parecer estranha, é extremamente útil.
É um programa (script) escrito para ser interpretado por uma shell (linha de comando). Permite encadear comandos, usar variáveis, condicionais e loops para realizar tarefas complexas de forma automática.
Existem várias shells, cada uma com sua própria linguagem de script, mas a maioria é compatível com a Bourne Shell (sh
).
bash
(Bourne-Again Shell): A shell mais popular, padrão na maioria das distribuições Linux.
Outras: dash
, fish
, zsh
, ksh
, csh
.
#!
): O Interpretador de ScriptsA primeira linha de um script Linux geralmente contém um shebang (#!
), que indica qual programa deve ser usado para executar o script.
Ex: #!/bin/sh
(para usar a Bourne Shell), #!/usr/bin/python
(para Python).
Para executar um script com shebang, ele precisa ter permissão de execução (dada por chmod +x
) e ser chamado com ./script.sh
.
Em shell script, todas as variáveis são tratadas como strings.
Criação: variavel="Conteúdo da variável"
(sem espaços ao redor do =
, sem números ou hífens no início).
Uso: Para acessar o valor de uma variável, use $
antes do nome. Ex: echo $texto
.
Variáveis de Ambiente: Existem variáveis pré-definidas úteis, como $HOME
, $USER
, $PATH
.
read
: Lê um valor digitado pelo usuário e o armazena em uma variável. Ex: read nome
.
Permite capturar a saída de um comando e usá-la em outro lugar, como armazenar em uma variável.
Sintaxe: $(comando)
ou comando
.
Ex: arquivos_txt=$(ls *.txt)
.
if
): Sintaxe e OperadoresO if
em shell script é usado para tomar decisões.
Sintaxe:
if [ condição ]; then
# comandos se verdadeiro
else
# comandos se falso
fi
IMPORTANTE: Os espaços entre [
e ]
e entre os operadores e valores da condição são obrigatórios.
O comando test
(ou [ ]
) avalia a condição e retorna 0
(verdadeiro) ou 1
(falso).
Operadores de comparação comuns (man test
para mais):
-eq
: igual (para inteiros)
-ne
: diferente (para inteiros)
-gt
: maior que (para inteiros)
-lt
: menor que (para inteiros)
-ge
: maior ou igual
-le
: menor ou igual
==
/ !=
: igual / diferente (para strings)
-n "string"
: string tem mais de zero caracteres
-z "string"
: string tem zero caracteres
-d /path/
: verifica se o diretório existe
-f arquivo.txt
: verifica se o arquivo existe
for
, while
): Iterando e AutomatizandoLoops permitem repetir uma série de comandos.
for
: Itera sobre uma lista de valores.
Ex: for fruta in goiaba abacaxi banana; do echo $fruta; done
.
Pode usar seq
para sequências numéricas: for i in $(seq 0 10); do ...; done
.
while
: Repete comandos enquanto uma condição for verdadeira.
Ex: while [ ! -f saci.txt ]; do echo 'Vigiando o Saci'; done
.
continue
: Pula a iteração atual para a próxima.
break
: Sai do loop.
$1
, $@
, $#
): Interagindo com ScriptsScripts podem receber argumentos passados pelo usuário ao serem invocados.
$0
: Nome do script.
$1
, $2
, $3
...: Primeiro, segundo, terceiro argumento, etc..
$@
: Representa todos os argumentos juntos.
$#
: Número total de argumentos recebidos.
|
) e Redireção (>
, >>
, <
): Conectando ProgramasEsta é uma das funcionalidades mais poderosas do shell script. No Unix/Linux, todo programa tem três File Descriptors:
stdin
(0): Standard Input (entrada padrão).
stdout
(1): Standard Output (saída padrão).
stderr
(2): Standard Error (saída de erro padrão).
Pipe (|
): Conecta o stdout
de um comando ao stdin
de outro comando, permitindo que a saída de um programa seja a entrada de outro.
Ex: echo "LARANJA" | tr '[:upper:]' '[:lower:]'
(passa "LARANJA" para tr
para converter em minúsculas).
Redireção de Saída:
>
: Redireciona o stdout
para um arquivo, apagando o conteúdo existente se o arquivo já existir.
>>
: Redireciona o stdout
para um arquivo, adicionando ao conteúdo existente.
Ex: echo "Caju" > frutas.txt
, echo "Mamão" >> frutas.txt
.
Redireção de Entrada:
<
: Redireciona o conteúdo de um arquivo para o stdin
de um comando.
Ex: tr '[:lower:]' '[:upper:]' < frutas.txt
.
Redirecionamento de Erro (2>&1
): Redireciona o stderr
para o stdout
.
Ex: prog 2>&1 > meu.log
(grava saída normal e erros em meu.log
).
Funções são blocos de código reutilizáveis dentro de um script, funcionando como mini-scripts.
Declaração: nome_funcao() { # comandos; }
.
Invocação: nome_funcao arg1 arg2
.
CUIDADO: Funções podem alterar variáveis globais (fora da função).
expr
, bc
)Para operações matemáticas simples, usa-se expr
ou bc
.
expr
: Para contas com números inteiros. Cuidado com espaços e operadores como *
(multiplicação) que precisam ser escapados (\*
) ou entre aspas.
Ex: expr 2 + 2
, expr 8 \* 3
.
bc
: Para contas mais complexas ou com números decimais. As contas são passadas por redirecionamento.
Ex: echo "2 + 2" | bc
, echo "8 / 5" | bc -l
(para maior precisão decimal).
sed
, tr
)Ferramentas como sed
e tr
são essenciais para manipular texto no terminal.
tr
: Troca ou deleta caracteres.
Ex: echo "OLÁ" | tr '[:upper:]' '[:lower:]'
(converte para minúsculas).
sed
: Modifica e filtra texto, utilizando expressões regulares.
Ex: echo "banana" | sed 's/banana/maçã/g'
(substitui todas as ocorrências de "banana" por "maçã").
É fundamental para concursos entender como Linux e Windows se relacionam, especialmente em cenários de coexistência.
Dual Boot: Permite que você instale dois ou mais sistemas operacionais em um mesmo computador. Ao iniciar a máquina, um gerenciador de inicialização (como GRUB no Linux) permite que você escolha qual sistema operacional inicializar.
MUITO IMPORTANTE: O Dual Boot NÃO permite a execução simultânea de dois sistemas operacionais. Você escolhe um ou outro.
Máquina Virtual: É a única forma de executar dois sistemas operacionais simultaneamente no mesmo computador. Um sistema operacional (host) roda, e dentro dele, um software de virtualização hospeda outro sistema operacional (guest).
Ex: Rodar Windows dentro de um Mac.
MUITO IMPORTANTE: Pegadinha de Concurso sobre Dual Boot!
Uma questão que afirme que "Dual Boot permite a execução simultânea de aplicativos em Linux e Windows" está ERRADA. Dual Boot é para escolha, não simultaneidade. A simultaneidade só ocorre com máquinas virtuais.
Windows: Possui o Prompt de Comando (legado, derivado do DOS) e o PowerShell (ambiente mais moderno e programável em .NET). A Microsoft investiu na GUI para que o usuário comum não dependesse desses ambientes.
Linux: O Terminal (Shell) é uma ferramenta de uso mais frequente para usuários e administradores, e muito cobrada em concursos.
Pegadinha Recente: Comandos Linux no PowerShell do Windows?
Com a crescente aproximação entre Microsoft e Linux (ex: WSL - Windows Subsystem for Linux), pode haver questões insinuando que o PowerShell do Windows aceita comandos nativos do Linux. Atualmente (2025) isso é GRITANTEMENTE ERRADO em um contexto de prova de concurso que não especifique o WSL ou ferramentas de compatibilidade. Comandos como chown
(Linux) não funcionam no PowerShell padrão do Windows.
Historicamente "inimigos ferrenhos", a Microsoft e a comunidade Linux têm se aproximado. A Microsoft, inclusive, está desenvolvendo uma versão do Windows com o kernel Linux, visando integrar nativamente partições Linux e aprimorar a interoperabilidade. Esta é uma tendência importante para o cenário de 2025.
O Linux é um sistema operacional robusto, versátil e, acima de tudo, uma fonte rica de conteúdo para concursos públicos. Desde sua arquitetura monolítica modular e a filosofia do software livre, passando pela intrincada estrutura de diretórios e a poderosa linha de comando, cada detalhe é uma oportunidade de pontuação.
Ao focar nas características essenciais, nas comparações com o Windows e nas "pegadinhas" comuns de prova, você estará não apenas estudando Linux, mas aprendendo a pensar como a banca examinadora. A prática constante dos comandos no terminal, a leitura atenta dos editais atualizados e a compreensão aprofundada das exceções são os seus maiores aliados.
Com este guia definitivo, você tem as ferramentas para gabaritar as questões de Linux e conquistar sua aprovação. Bons estudos e sucesso!