Aula 1: O que é Linux — história, filosofia e por que usar open source
Se você está iniciando sua jornada no universo da tecnologia, infraestrutura ou segurança da informação, O que é Linux é a pergunta fundamental que abre todas as portas. Esta aula introdutória foi projetada para profissionais de TI e entusiastas que nunca tiveram contato com o sistema — você não precisa saber nada além de como ligar um computador e navegar na internet. Ao final desta aula, você compreenderá não apenas a definição técnica, mas também a história, a filosofia e as razões práticas pelas quais O que é Linux se tornou a espinha dorsal da internet, dos supercomputadores, dos smartphones Android e dos dispositivos embarcados que usamos diariamente.
Em nossos projetos na JRT Technology Solutions, nossos especialistas utilizam diariamente sistemas Linux para implementar servidores web, clusters de alta disponibilidade, firewalls corporativos e ambientes de conteinerização. A experiência nos mostrou que compreender O que é Linux vai muito além de decorar comandos: é internalizar uma mentalidade de transparência, controle e colaboração que transforma profissionais comuns em engenheiros de infraestrutura de alto nível. Esta aula é o alicerce sobre o qual construiremos todo o conhecimento prático das próximas 29 aulas do curso.
Nesta primeira aula, vamos cobrir desde os conceitos fundamentais do que é um sistema operacional e um kernel, passando pela fascinante história da criação do Linux por Linus Torvalds em 1991, até a análise detalhada das licenças open source que regem o ecossistema. Você aprenderá a diferença entre software livre e software proprietário, conhecerá as principais distribuições e — sim — já colocará a mão na massa com seus primeiros comandos no terminal, verificando informações vitais do sistema.
Prepare-se para uma imersão completa. Não se preocupe com a quantidade de informações: tudo será explicado passo a passo, com analogias do dia a dia, definições claras de cada termo técnico e exemplos reais que você pode executar imediatamente. Vamos juntos descobrir por que O que é Linux é a pergunta mais importante que você fará em sua carreira técnica.
O que você vai aprender nesta aula
- Definir com clareza O que é Linux, diferenciando kernel, sistema operacional e distribuição.
- Compreender a cronologia histórica: dos sistemas Unix nos anos 1970 ao lançamento do Linux em 1991 e seu estado atual.
- Dominar os tipos de licenças open source — GPL, MIT, BSD, Apache — e saber exatamente o que cada uma permite ou restringe na prática.
- Diferenciar software livre (free software) de software gratuito (freeware) e software proprietário.
- Identificar as principais distribuições Linux e seus casos de uso (servidores, desktops, segurança, embarcados).
- Executar seus primeiros comandos no terminal para verificar informações do sistema.
- Diagnosticar e resolver os erros mais comuns que iniciantes enfrentam ao acessar o terminal pela primeira vez.
Pré-requisitos e Ambiente
Para aproveitar esta aula ao máximo, você precisará de acesso a um terminal Linux. Se você ainda não tem Linux instalado em sua máquina — e não se preocupe, a instalação completa será tema de uma aula futura — existem três alternativas simples e imediatas que nossos especialistas da JRT Technology Solutions recomendam para iniciantes:
- Git Bash no Windows: instalando o Git for Windows, você obtém um terminal que emula comandos Unix/Linux básicos. Baixe em
https://git-scm.com, execute o instalador com as opções padrão e abra o Git Bash pelo menu Iniciar. Isso lhe dará comandos como ls, pwd, cat e uname. - Terminal online via navegador: sites como
https://bellard.org/jslinux/oferecem máquinas virtuais Linux completas rodando no navegador, sem instalação alguma. Basta acessar, escolher uma distribuição (recomendamos Alpine ou Debian pela leveza) e começar a digitar comandos instantaneamente. - Máquina virtual com VirtualBox: baixe o VirtualBox em
https://virtualbox.orge a ISO do Ubuntu Server 24.04 LTS emhttps://ubuntu.com/download/server. Embora a instalação completa seja abordada mais adiante no curso, você pode criar uma máquina virtual rapidamente apenas para acompanhar os exemplos desta aula.
Se você já possui qualquer distribuição Linux instalada — Ubuntu, Debian, Fedora, Arch, Mint, openSUSE ou qualquer outra — está pronto para prosseguir. O importante é ter um terminal à disposição para executar os comandos reais que mostraremos a seguir.
O que é Linux — O Sistema Operacional que Mudou o Mundo
Responder O que é Linux exige precisão técnica. Muitas pessoas usam o termo “Linux” para se referir a todo o sistema operacional — a interface gráfica, os aplicativos, o terminal. Tecnicamente, porém, Linux é o kernel: o núcleo do sistema operacional, a camada de software que faz a comunicação direta entre o hardware (processador, memória, discos, placas de rede) e os programas que você executa. Pense no kernel como o motor de um carro: você não vê o motor quando dirige, mas é ele quem transforma combustível em movimento. Sem o motor, o carro não sai do lugar; sem o kernel, nenhum programa consegue acessar o hardware.
O kernel Linux foi criado em 1991 por Linus Torvalds, um estudante finlandês da Universidade de Helsinki que queria um sistema Unix-like para seu computador pessoal com processador Intel 80386. Na época, sistemas Unix eram caros e rodavam em máquinas proprietárias de grande porte. Linus anunciou seu projeto em um grupo de discussão na Usenet com a famosa frase: “I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu)”. Ele estava errado — o hobby se tornou o maior projeto colaborativo de software da história da humanidade.
Quando falamos coloquialmente sobre O que é Linux, geralmente nos referimos a um sistema operacional completo baseado no kernel Linux + ferramentas GNU. O projeto GNU (GNU’s Not Unix), iniciado por Richard Stallman em 1983, já vinha desenvolvendo um conjunto completo de utilitários livres — compiladores, editores de texto, shells, bibliotecas — mas ainda não tinha um kernel funcional. O kernel Linux preencheu essa lacuna, e a combinação GNU/Linux formou um sistema operacional completo, livre e funcional. Por isso, muitos defensores do software livre insistem no termo GNU/Linux, embora “Linux” seja amplamente aceito como referência ao sistema como um todo.
Para entender O que é Linux na prática, imagine o sistema operacional como um restaurante completo. O kernel é a cozinha — é lá que os ingredientes (hardware) são transformados em pratos (resultados). As ferramentas GNU são os utensílios — facas, panelas, fogões — sem os quais o chef não consegue trabalhar. O shell (terminal) é o garçom: você faz o pedido (digita comandos), ele leva à cozinha (kernel) e traz o resultado de volta. A interface gráfica é o salão decorado — agradável, mas dispensável se você só quer comer bem. Essa analogia será útil em todas as aulas do curso.
Nossos especialistas da JRT Technology Solutions frequentemente explicam a clientes que O que é Linux se resume a três palavras: controle, transparência e estabilidade. Controle porque você decide cada aspecto do sistema; transparência porque todo o código-fonte está disponível para auditoria; estabilidade porque servidores Linux frequentemente operam por anos sem reinicialização. Não é exagero afirmar que mais de 96% dos servidores web do mundo, todos os 500 supercomputadores mais rápidos do planeta e bilhões de dispositivos Android executam o kernel Linux.
A História do Linux — Da Universidade de Helsinki ao Domínio Global
A jornada para entender O que é Linux passa obrigatoriamente pela sua história. O ano é 1969: nos laboratórios Bell da AT&T, Ken Thompson e Dennis Ritchie criam o Unix, um sistema operacional revolucionário por ser portável (escrito em linguagem C, não em assembly) e multitarefa. O Unix rapidamente se espalha por universidades e centros de pesquisa, mas seu licenciamento proprietário e os altos custos impedem que entusiastas e pequenas empresas o utilizem livremente.
Em 1983, Richard Stallman, um programador do MIT frustrado com a crescente cultura de software proprietário, lança o Projeto GNU e a Free Software Foundation (FSF). O objetivo: criar um sistema operacional completamente livre, onde qualquer pessoa pudesse executar, estudar, modificar e redistribuir o software. Stallman define as Quatro Liberdades Fundamentais do Software Livre: liberdade de executar o programa para qualquer propósito (liberdade 0), liberdade de estudar como o programa funciona e adaptá-lo às suas necessidades (liberdade 1), liberdade de redistribuir cópias (liberdade 2) e liberdade de aperfeiçoar o programa e liberar os aperfeiçoamentos ao público (liberdade 3).
Enquanto o projeto GNU construía compiladores, editores e bibliotecas, faltava uma peça central: o kernel. Em 1991, Linus Torvalds, um jovem de 21 anos, começa a trabalhar em seu próprio kernel como hobby. Em 25 de agosto de 1991, ele posta no grupo comp.os.minix pedindo sugestões de funcionalidades. Em 5 de outubro de 1991, o kernel Linux versão 0.02 é lançado publicamente sob uma licença que proibia redistribuição comercial. Em 1992, Linus altera a licença para a GPL (GNU General Public License), alinhando-se ao movimento de software livre — uma decisão que definiria o futuro do projeto.
O resto, como dizem, é história. A combinação do kernel Linux com as ferramentas GNU criou um sistema operacional livre e poderoso. Empresas como Red Hat (fundada em 1993), Debian (1993), Slackware (1993) e SUSE (1996) começaram a empacotar distribuições Linux. Em 1999, a Red Hat se tornou a primeira empresa de software livre a abrir capital na bolsa de valores. Em 2001, a IBM investiu 1 bilhão de dólares em Linux. Em 2008, o Google lançou o Android, que roda sobre o kernel Linux e hoje está em mais de 3 bilhões de dispositivos ativos. Em nossos projetos na JRT Technology Solutions, testemunhamos diariamente como essa história de colaboração aberta gera sistemas incrivelmente robustos para ambientes críticos.
A Filosofia Open Source e as Licenças de Software — O que Cada Uma Significa na Prática
Compreender O que é Linux exige mergulhar no universo das licenças de software. Uma licença de software é um contrato legal que define o que você PODE e NÃO PODE fazer com determinado programa. Diferentemente de um produto físico — se você compra uma cadeira, pode pintá-la, revendê-la ou desmontá-la — o software é regido por direitos autorais, e a licença é o documento que autoriza determinados usos. Esta seção é fundamental porque muitos profissionais de TI subestimam as implicações legais das licenças até enfrentarem uma auditoria ou um processo judicial.
As licenças se dividem em dois grandes grupos: proprietárias (comerciais fechadas) e open source (código aberto). Dentro do open source, há subcategorias importantes que detalharemos a seguir, com exemplos reais de projetos que as utilizam. Nossos especialistas da JRT Technology Solutions sempre avaliam meticulosamente as licenças de cada componente de software antes de integrá-lo a soluções corporativas, pois uma escolha errada pode inviabilizar a distribuição de um produto ou expor código proprietário indevidamente.
| Licença | Tipo | Pode usar em software comercial? | Pode modificar o código? | Obriga a abrir modificações? | Pode redistribuir? | Exemplo de projeto |
|---|---|---|---|---|---|---|
| GPL v2/v3 | Copyleft forte | Sim | Sim | Sim — copyleft: modificações devem ser distribuídas sob a mesma GPL | Sim, sob GPL | Kernel Linux, Git, MySQL (community) |
| LGPL | Copyleft fraco | Sim | Sim | Apenas modificações da biblioteca em si; programas que a usam podem ser proprietários | Sim | GTK+, FFmpeg (bibliotecas) |
| MIT | Permissiva | Sim | Sim | Não — código pode ser incorporado em software proprietário | Sim | Node.js, React, Rails, X11 |
| BSD 2-Clause | Permissiva | Sim | Sim | Não | Sim | FreeBSD, Nginx (versões antigas) |
| Apache 2.0 | Permissiva | Sim | Sim | Não, mas requer atribuição e notificação de mudanças | Sim | Apache HTTP Server, Kubernetes, Hadoop |
| Proprietária EULA | Fechada | Depende do contrato | Não (código-fonte não disponível) | Não se aplica | Não (apenas executável licenciado) | Windows, Adobe Photoshop, Oracle DB |
GPL (GNU General Public License) — a licença do kernel Linux: criada por Richard Stallman, a GPL é uma licença copyleft. O termo “copyleft” é um jogo de palavras com “copyright” (direitos autorais): em vez de restringir, o copyleft usa a lei de direitos autorais para garantir que as liberdades permaneçam. Se você modifica um programa sob GPL e distribui a versão modificada (seja gratuitamente ou vendendo), é obrigado a disponibilizar o código-fonte completo da sua modificação sob a mesma GPL. Na prática, isso significa que o kernel Linux é “viral” — qualquer código que você enlace diretamente ao kernel deve ser GPL. Essa cláusula gerou debates históricos, como o embate entre Linus Torvalds e empresas que queriam criar módulos proprietários de kernel. Para o usuário comum, a GPL garante que o Linux jamais será “fechado” por uma empresa: se a Red Hat modificar o kernel, ela DEVE publicar o código; se você modificar, também deve. O kernel Linux está sob GPL v2 (versão 2), não a v3, por decisão explícita de Linus Torvalds.
Licença MIT: é a licença permissiva por excelência. O texto é incrivelmente curto (cerca de 200 palavras) e basicamente diz: “Você pode fazer o que quiser com este código, inclusive incluí-lo em software proprietário, desde que mantenha o aviso de copyright original e o texto da licença”. Não há obrigação de abrir código, não há cláusula de patentes. É a licença preferida para bibliotecas e frameworks que desejam adoção máxima — Node.js, React, Ruby on Rails, jQuery e milhares de outros projetos a utilizam. Para o usuário, significa que você pode pegar uma biblioteca MIT, modificá-la e vendê-la como parte de um software fechado sem qualquer problema legal.
Licença Apache 2.0: mais detalhada que a MIT, a Apache 2.0 é uma licença permissiva que concede explicitamente direitos de patente — um ponto crítico ausente na MIT. Se um contribuidor envia código para um projeto Apache, ele automaticamente concede uma licença de patente perpétua e irrevogável para todos os usuários daquele código. Isso protege contra “patent trolls” que poderiam contribuir com código e depois processar usuários por violação de patente. A Apache 2.0 também exige atribuição (manter avisos de copyright) e notificação de mudanças (se você modificar um arquivo, deve indicar que houve modificações). Projetos como Kubernetes, Apache HTTP Server, Hadoop e o próprio Android Open Source Project utilizam Apache 2.0.
Licença BSD: existem várias variantes (2-clause, 3-clause, 4-clause). A BSD 2-Clause é similar à MIT: extremamente permissiva. A BSD 3-Clause adiciona uma cláusula de não-endosso: você não pode usar o nome do projeto ou dos contribuidores para promover produtos derivados sem permissão. O FreeBSD, um sistema operacional completo derivado do Unix BSD original, usa a BSD 2-Clause. O OpenSSH, ferramenta essencial de conectividade segura, utiliza licenças BSD.
Licença Comercial Proprietária: ao contrário das anteriores, aqui o código-fonte não está disponível. Você adquire apenas o direito de USAR o software, geralmente mediante pagamento de licença por cópia, por usuário, por core de processador ou por assinatura mensal/anual. Exemplos incluem Microsoft Windows, Oracle Database, Adobe Photoshop e VMware vSphere. A licença tipicamente proíbe engenharia reversa, cópia, redistribuição e modificação. Em ambientes corporativos, nossos especialistas da JRT Technology Solutions constantemente avaliam o TCO (Total Cost of Ownership) — custo total de propriedade — comparando soluções proprietárias e open source, e frequentemente o Linux e seu ecossistema livre apresentam vantagens não apenas econômicas, mas também de flexibilidade e independência de fornecedor.
O que é Linux na Prática — Distribuições, Famílias e o Ecossistema
Quando alguém pergunta O que é Linux no dia a dia, a resposta prática passa pelo conceito de distribuição (distro): um conjunto empacotado que inclui o kernel Linux, bibliotecas, utilitários GNU, um gerenciador de pacotes, interface gráfica e aplicativos. Pense em uma distribuição como um “kit pronto para uso” — em vez de você montar um carro comprando motor, chassis, rodas e bancos separadamente, a distribuição entrega o veículo completo, pronto para ligar e dirigir. Existem centenas de distribuições ativas, cada uma com filosofia, ciclo de atualização e público-alvo distintos.
| Distribuição | Família | Gerenciador de Pacotes | Foco Principal | Indicada para Iniciantes? | Exemplo de Uso Real |
|---|---|---|---|---|---|
| Ubuntu | Debian | APT (dpkg) | Desktops, servidores, nuvem | Sim — ampla documentação e comunidade | Servidores web na AWS, desktops corporativos |
| Debian | Debian | APT (dpkg) | Estabilidade máxima | Intermediário | Servidores críticos que exigem uptime absoluto |
| Fedora | Red Hat | DNF (RPM) | Tecnologias de ponta | Sim — boa experiência desktop | Desenvolvimento, testes de novas funcionalidades |
| Red Hat Enterprise Linux (RHEL) | Red Hat | DNF/YUM (RPM) | Ambientes corporativos com suporte pago | Não — licenciamento comercial | Bancos, hospitais, bolsas de valores |
| Rocky Linux / AlmaLinux | Red Hat (RHEL-compatible) | DNF (RPM) | Substitutos gratuitos do RHEL | Intermediário | Servidores empresariais sem custo de licença |
| Arch Linux | Independente | Pacman | Rolling release, personalização extrema | Não — requer conhecimento avançado | Desktops de desenvolvedores experientes |
| Kali Linux | Debian | APT (dpkg) | Testes de penetração e segurança | Sim, se o foco for segurança | Pentesting, auditoria de segurança, CTFs |
| Alpine Linux | Independente | APK | Leveza e segurança (containers Docker) | Não — foco em containers | Imagens Docker minimalistas (apenas ~5 MB) |
As distribuições se agrupam em famílias que compartilham o mesmo gerenciador de pacotes e filosofia. A família Debian (que inclui Ubuntu, Linux Mint, Kali, Elementary OS) utiliza o sistema APT (Advanced Package Tool) com pacotes .deb. A família Red Hat (RHEL, Fedora, CentOS Stream, Rocky Linux, AlmaLinux) utiliza DNF (Dandified YUM) com pacotes .rpm. A família Arch (Arch Linux, Manjaro, EndeavourOS) utiliza o Pacman. Escolher uma família é como escolher entre aprender inglês ou espanhol: a gramática é diferente, mas ambos permitem comunicação efetiva. Nos treinamentos da JRT Technology Solutions, recomendamos que iniciantes comecem com Ubuntu LTS ou Fedora — a documentação farta e as comunidades ativas reduzem drasticamente a curva de aprendizado.
Primeiro Contato com o Terminal — Seus Primeiros Comandos Linux
Agora que você compreende O que é Linux em teoria, é hora do contato prático com o terminal (também chamado de shell, linha de comando ou console). O terminal é uma interface textual onde você digita comandos e recebe respostas — sem mouse, sem ícones, apenas texto. No início pode parecer intimidador, mas você rapidamente descobrirá que é a forma mais rápida e poderosa de interagir com o sistema. O shell padrão na maioria das distribuições atuais é o Bash (Bourne Again Shell), um descendente direto do shell Bourne original do Unix.
Abra seu terminal. Se estiver usando Ubuntu Desktop, pressione Ctrl + Alt + T. Se estiver no Git Bash no Windows, abra pelo menu Iniciar. Se estiver usando um terminal online, a interface já estará pronta. Você verá algo como usuario@maquina:~$. Isso é o prompt — o sistema está dizendo: “Estou pronto para receber um comando. Quem está logado é usuario, neste computador chamado maquina, e você está no diretório ~ (que representa sua pasta pessoal). O $ indica que você é um usuário comum; se fosse #, indicaria que você é o superusuário root (administrador total).
Execute seu primeiro comando: whoami. Este comando retorna o nome do usuário logado. É útil para verificar com qual identidade você está operando — um hábito de segurança que nossos especialistas da JRT Technology Solutions cultivam constantemente, especialmente ao administrar múltiplos servidores simultaneamente.
# Comando whoami: exibe o nome do usuário atual
whoami
aluno
Agora, execute pwd (Print Working Directory — “imprima o diretório de trabalho”). Este comando mostra o caminho completo do diretório onde você está no momento. O conceito de “onde você está” no sistema de arquivos é fundamental — é como saber em qual cômodo da casa você se encontra antes de dar instruções.
# Comando pwd: exibe o diretório atual (Print Working Directory)
pwd
/home/aluno
Em seguida, use ls (List — “listar”) para ver o conteúdo do diretório atual. Sem argumentos, ls lista arquivos e pastas visíveis. Com a flag -l (long format), exibe detalhes como permissões, tamanho e data de modificação. Com -a (all), mostra também arquivos ocultos (aqueles cujo nome começa com ponto, como .bashrc).
# Comando ls: lista arquivos e diretórios
ls
# Comando ls -l: lista em formato longo (permissões, tamanho, data)
ls -l
# Comando ls -la: combina formato longo + arquivos ocultos
ls -la
total 32
drwxr-xr-x 2 aluno aluno 4096 Jun 17 10:15 Documentos
drwxr-xr-x 2 aluno aluno 4096 Jun 17 10:15 Downloads
drwxr-xr-x 2 aluno aluno 4096 Jun 17 10:15 Música
-rw-r--r-- 1 aluno aluno 12 Jun 17 10:16 notas.txt
Cada linha do ls -l contém informações valiosas. A primeira coluna (ex: drwxr-xr-x) são as permissões: d indica diretório, - indica arquivo comum. Os próximos nove caracteres são permissões de leitura (r), escrita (w) e execução (x) para o dono, grupo e outros usuários, respectivamente. A segunda coluna é o número de links; a terceira é o dono do arquivo; a quarta é o grupo; a quinta é o tamanho em bytes; depois vêm data/hora da última modificação e, finalmente, o nome do arquivo ou diretório.
Para saber mais sobre qualquer comando, use o man (manual). man ls abre o manual completo do comando ls, com todas as opções e exemplos. Navegue com as setas e pressione q para sair. Este é o melhor amigo do administrador Linux — em nossos projetos na JRT Technology Solutions, mesmo engenheiros seniores consultam man pages diariamente.
# Comando man: exibe o manual do comando especificado
# Pressione 'q' para sair do manual
man ls
Verificando o Sistema — Comandos Essenciais de Diagnóstico
Com os primeiros conceitos assimilados, vamos executar comandos que revelam informações cruciais sobre o sistema — uma prática que você repetirá inúmeras vezes em sua carreira. Esta seção atende diretamente à pergunta O que é Linux mostrando como inspecionar o kernel, a distribuição e o hardware.
Execute uname -a (Unix Name — “nome Unix”). A flag -a significa “all” e exibe todas as informações disponíveis: nome do kernel, nome do host (nome da máquina na rede), versão do kernel, data de compilação, arquitetura do processador e tipo de sistema operacional.
# Comando uname -a: exibe informações completas sobre o kernel e o sistema
uname -a
Linux servidor-jrt 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 18:00:00 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Interpretando a saída linha por linha:
- Linux: nome do kernel (sim, o kernel literalmente se chama “Linux”).
- servidor-jrt: hostname da máquina — o nome que identifica este computador na rede. Em nossos laboratórios na JRT Technology Solutions, seguimos uma convenção de nomenclatura padronizada para facilitar a gestão de dezenas de servidores.
- 6.8.0-31-generic: versão completa do kernel. O formato é major.minor.patch-versão_específica_da_distro.
- #31-Ubuntu SMP PREEMPT_DYNAMIC: número da compilação e flags de compilação — SMP significa Symmetric Multi-Processing (múltiplos processadores), PREEMPT_DYNAMIC indica um kernel com capacidade de preempção dinâmica (importante para sistemas de tempo real).
- x86_64 repetido três vezes: arquitetura da máquina, do processador e do sistema operacional — 64 bits (AMD64/Intel 64).
- GNU/Linux: sistema operacional completo.
Agora, identifique sua distribuição com cat /etc/os-release. O comando cat (concatenate) lê e exibe o conteúdo de arquivos. O arquivo /etc/os-release é um arquivo de configuração padrão presente em todas as distribuições modernas que contém informações identificadoras da distribuição — nome, versão, ID, URL, etc. O caminho /etc é o diretório de configurações do sistema; os-release é o arquivo específico com dados do sistema operacional.
# Comando cat /etc/os-release: exibe informações da distribuição Linux
cat /etc/os-release
NAME="Ubuntu"
VERSION="24.04 LTS (Noble Numbat)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 24.04 LTS"
VERSION_ID="24.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=noble
Verifique também o uso de disco com df -h (Disk Free — “espaço livre em disco”). A flag -h significa “human-readable” e exibe os tamanhos em KB, MB, GB em vez de blocos brutos. É um comando que você usará constantemente para monitorar servidores e evitar surpresas desagradáveis com disco cheio.
# Comando df -h: exibe espaço em disco de todas as partições, formato legível
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 12G 36G 25% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
Cada coluna do df -h merece explicação: Filesystem é a partição ou dispositivo; Size é o tamanho total; Used é quanto já foi usado; Avail é o espaço disponível; Use% é a porcentagem de uso; Mounted on é o ponto de montagem — onde no sistema de arquivos essa partição está acessível. Neste exemplo, a partição raiz (/) tem 50 GB totais, 12 GB usados e 36 GB livres. O tmpfs é um sistema de arquivos em memória RAM para arquivos temporários.
Por fim, verifique os processos em execução com ps aux. O comando ps (Process Status) sem flags mostra apenas processos do terminal atual; com aux (a = todos os usuários, u = formato orientado ao usuário, x = inclui processos sem terminal associado) você vê todos os processos do sistema. Combine com grep para filtrar — por exemplo, ps aux | grep bash para encontrar processos relacionados ao Bash.
# Comando ps aux: lista TODOS os processos em execução no sistema
ps aux | head -5
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 169740 11820 ? Ss 10:00 0:01 /sbin/init
root 2 0.0 0.0 0 0 ? S 10:00 0:00 [kthreadd]
aluno 1534 0.1 0.2 15132 5376 pts/0 Ss 10:05 0:00 bash
aluno 1652 0.0 0.1 15228 3452 pts/0 R+ 10:08 0:00 ps aux
A saída do ps aux é densa em informações. USER é o dono do processo; PID é o Process ID (identificador único); %CPU e %MEM são consumo de CPU e memória; COMMAND é o comando que iniciou o processo. Note que o processo com PID 1 é o /sbin/init — o primeiro processo iniciado pelo kernel, ancestral de todos os outros. Em distribuições modernas com systemd, o init é um link simbólico para o systemd. Compreender a árvore de processos é fundamental para diagnóstico de problemas de performance — habilidade que aprofundaremos ao longo do curso.
Erros Comuns e Como Resolver
Mesmo procedimentos simples podem gerar frustração quando encontramos barreiras inesperadas. Nesta seção, compilamos os erros mais frequentes que nossos especialistas da JRT Technology Solutions observam em treinamentos de iniciantes, com diagnóstico, causa e solução completa para cada um.
-
Erro 1: “command not found” (comando não encontrado)
Sintoma: você digita um comando e recebebash: comando: command not found.
Causa: o shell não conseguiu localizar o executável do comando nos diretórios listados na variável de ambiente PATH. Isso pode ocorrer porque (a) o comando não está instalado, (b) você digitou incorretamente, ou (c) o comando está em um diretório que não está no PATH.
Solução: primeiro, verifique a digitação — Linux diferencia maiúsculas de minúsculas: Ls é diferente de ls. Se estiver correto, verifique se o programa está instalado com which comando (ex: which htop). Se which retornar vazio, instale o pacote. No Ubuntu/Debian: sudo apt update && sudo apt install htop. No Fedora/RHEL: sudo dnf install htop. O comando sudo executa o comando seguinte como superusuário (root) e será detalhado em aulas futuras. -
Erro 2: “Permission denied” (permissão negada)
Sintoma: ao tentar executar um arquivo ou acessar um diretório, você recebebash: ./script.sh: Permission deniedouls: cannot open directory '/root': Permission denied.
Causa: o sistema de permissões Unix/Linux impede que usuários comuns acessem ou executem recursos para os quais não têm autorização. O diretório /root, por exemplo, pertence ao superusuário root e nenhum outro usuário pode acessá-lo por padrão.
Solução: para executar um arquivo, adicione permissão de execução com chmod +x nome_do_arquivo. Exemplo: chmod +x script.sh e depois ./script.sh (o ./ é necessário para indicar que o arquivo está no diretório atual, pois o diretório corrente geralmente não está no PATH por motivos de segurança). Para acessar diretórios protegidos, use sudo antes do comando: sudo ls /root. Mas atenção: só use sudo quando tiver certeza do que está fazendo — é como ter a chave mestra do prédio. -
Erro 3: Terminal não abre ou aparece “travado” (cursor piscando sem prompt)
Sintoma: você abriu um terminal virtual (como o JSLinux no navegador ou um terminal SSH) e o cursor fica piscando infinitamente, sem exibir o prompt$.
Causa: o shell está aguardando a conclusão de um processo de inicialização ou há um script de perfil (~/.bashrc, ~/.profile) com algum comando bloqueante — algo que está executando e nunca termina.
Solução: se for um terminal online, recarregue a página ou feche e reabra a sessão. Se for uma instalação local, pressione Ctrl + C para interromper o processo em execução no terminal. Se o problema persistir, pressione Ctrl + Alt + F2 para acessar um terminal virtual (TTY) independente e editar o arquivo problemático com um editor como nano: nano ~/.bashrc. Procure por comandos que pareçam suspeitos (ex: um ping infinito ou um loop) e comente a linha adicionando # no início. -
Erro 4: “No such file or directory” (arquivo ou diretório inexistente)
Sintoma: você tenta acessar um arquivo com cat, cd ou ls e recebeNo such file or directory.
Causa: caminho digitado incorretamente, com espaços não escapados, ou você está em um diretório diferente do que imagina.
Solução: execute pwd para confirmar onde você está. Use ls -la para ver o conteúdo real do diretório. No Linux, “Meu Arquivo.txt” (com espaço) é diferente de “MeuArquivo.txt”. Para nomes com espaços, useQuer aprender na prática com especialistas?
A JRT Technology Solutions oferece treinamentos e implementação de Linux para equipes corporativas.