- Aprender
- Computação e TI
- TI, redes e nuvem
- Fundamentos de Linux
- Processos, pacotes e serviços no Linux
Processos, pacotes e serviços no Linux: systemd e logs
ps, top e free, interrompa-os e altere suas prioridades com sinais e nice, e inspecione o hardware com ferramentas como lscpu, lsblk e lspci. Instale, atualize e remova software com apt e dnf, gerencie serviços com systemctl, leia logs com journalctl, /var/log e dmesg para diagnosticar falhas de um serviço e faça backup de arquivos com tar, gzip, xz e zip.BásicoAula 6 de 7 do curso Curso de Fundamentos de Linux
O que você vai aprender
- Identifique os programas em execução em um sistema Linux, acompanhe o uso de CPU e memória e interrompa, pause ou altere suas prioridades com segurança.
- Listar processos e interpretar a saída de psExplique o que é um processo, identifique-o pelo seu identificador de processo e use
ps,pgrepe/procpara encontrar processos e consultar seu estado. - Monitorar CPU, memória e carga com top, free e uptimeInterprete a visualização de processos em tempo real no
top, avalie a memória comfreee determine pela carga média se um sistema está sobrecarregado. - Interromper processos com sinaisEnvie sinais com
kill,pkillekillall, escolha entre uma solicitação de encerramento e um encerramento forçado e verifique o resultado. - Executar tarefas em segundo plano e definir prioridadesMova comandos entre o primeiro e o segundo plano, mantenha-os em execução após encerrar a sessão e altere sua prioridade de CPU com
niceerenice.
- Listar processos e interpretar a saída de ps
- Descubra quais processador, memória, discos e dispositivos uma máquina Linux possui e quais kernel e drivers ela usa, sem abrir o gabinete.
- Identificar o processador, a memória e o sistemaUse
uname,lscpu,nproc,/procedmidecodepara informar a arquitetura, as CPUs, a memória e o kernel de uma máquina. - Listar discos, dispositivos PCI e USB e seus driversNomeie corretamente os dispositivos de armazenamento, liste os dispositivos conectados a uma máquina com
lsblk,lspcielsusbe encontre os drivers e as mensagens do kernel associados a eles.
- Identificar o processador, a memória e o sistema
- Use os gerenciadores de pacotes das famílias Debian e Red Hat para instalar, atualizar, remover e inspecionar software com segurança a partir de repositórios confiáveis.
- Compreender pacotes, repositórios e dependênciasExplique o que são pacote, repositório e dependência, como as ferramentas de pacotes de alto e baixo nível dividem o trabalho e quais ferramentas cada família de distribuições usa.
- Instalar, atualizar e remover software com apt e dnfAtualize as informações de pacotes, instale e atualize software e remova-o completamente com
aptem sistemas da família Debian ednfem sistemas da família Red Hat. - Buscar pacotes e inspecionar o software instaladoEncontre o pacote necessário, verifique o que está instalado e em qual versão, veja quais arquivos um pacote instalou e a qual pacote um arquivo pertence, e consulte o histórico de pacotes.
- Compreender pacotes, repositórios e dependências
- Verifique, inicie, pare, habilite e personalize serviços em segundo plano com
systemctle compreenda como o systemd decide o que executar na inicialização.- Compreender o systemd, as unidades e o estado dos serviçosExplique o que são um serviço e uma unidade do systemd, interprete a saída de
systemctl statuse distinga um serviço em execução de um serviço habilitado. - Iniciar, parar, habilitar e desabilitar serviçosControle serviços com
systemctlno momento e na inicialização, aplique alterações de configuração com segurança e escolha o alvo padrão de inicialização. - Ler e personalizar arquivos de unidadeEncontre e leia o arquivo de unidade de um serviço, altere suas configurações com segurança usando arquivos complementares e escreva um serviço simples.
- Compreender o systemd, as unidades e o estado dos serviços
- Encontre as mensagens que explicam o que um sistema e seus serviços fizeram, usando o diário de registros do systemd, arquivos de log em
/var/loge mensagens do kernel, e use-as para corrigir falhas de um serviço.- Consultar o diário de registros do systemd com journalctlLeia o diário de registros do systemd com
journalctl, filtrando por serviço, inicialização, prioridade e horário, e saiba onde ele é armazenado. - Ler arquivos de log em /var/log e mensagens do kernelEncontre e leia arquivos de log em texto em
/var/log, incluindo arquivos antigos rotacionados, e usedmesgpara ler as mensagens do kernel sobre hardware e drivers. - Diagnosticar e corrigir falhas de um serviço passo a passoCombine
systemctl,journalctle as verificações do próprio programa em uma rotina reproduzível que identifica a causa da falha de um serviço e confirma a correção.
- Consultar o diário de registros do systemd com journalctl
- Agrupe arquivos e diretórios em arquivos de armazenamento com
tarezip, compacte e descompacte-os com gzip, bzip2 e xz e escolha o formato adequado para backups e compartilhamento.- Criar, listar e extrair arquivos tarUse
tarpara criar arquivos de armazenamento compactados, verificar seu conteúdo e extraí-los no local correto sem sobrescrever arquivos acidentalmente. - Compactar arquivos com gzip, bzip2, xz e zipCompacte e descompacte arquivos individuais, leia logs compactados sem descompactá-los, use
zippara compartilhar e escolha um formato pela velocidade, tamanho e finalidade.
- Criar, listar e extrair arquivos tar
Guia de estudo de Processos, pacotes e serviços no Linux
1Monitorar e controlar processos em execução
Um comando lento, um servidor ocupado e um programa que não fecha começam com a mesma pergunta: o que está em execução? As ferramentas de processos permitem relacionar o nome de um programa ao seu usuário, identificador de processo e uso de recursos. Você interpretará uma visão instantânea, acompanhará as mudanças ao longo do tempo e escolherá como interromper ou pausar uma tarefa. O controle de tarefas do shell e as prioridades de CPU dão mais controle sobre tarefas longas sem perder o prompt do terminal.
1.1 Listar processos e interpretar a saída de ps
Um programa como /usr/bin/sleep é um arquivo no disco. Um processo é uma instância desse programa em execução, com memória e recursos próprios. Três comandos que executam o mesmo programa criam três processos. Cada processo ativo tem um PID, um identificador de processo; o Linux pode reutilizar esse número após seu término.
Encontre o processo e seu processo pai
Um processo normalmente é iniciado por outro processo, seu processo pai. A coluna PPID fornece o PID desse processo pai. Os comandos que você inicia em um shell são filhos dele. O PID 1 é o primeiro processo iniciado pelo kernel; em um sistema com systemd, ele é o systemd. pstree -p desenha essas relações entre processos quando está instalado.
ps apresenta uma visão instantânea. Sua seleção padrão são os processos com seu identificador efetivo de usuário no terminal atual. Para uma visão de todo o sistema, escolha as colunas necessárias:
| Comando | Colunas úteis |
|---|---|
ps -ef | UID, PID, PPID, STIME, TIME, CMD |
ps aux | USER, PID, %CPU, %MEM, VSZ, RSS, TTY, STAT, START, TIME, COMMAND |
A forma ps aux, no estilo BSD, não tem hífen. O campo USER identifica a conta cujas permissões o processo usa. Um processo root pode acessar recursos que um processo de usuário comum não pode.
Interprete uma linha
Considere este exemplo de ps aux:
www-data 2417 0.3 1.2 214560 48212 ? S 09:14 0:02 nginx: worker process
O proprietário é www-data, o PID é 2417 e o uso médio de CPU desde o início é de 0,3%. O processo ocupa atualmente 1,2% da RAM. RSS é a memória residente: 48.212 KiB, cerca de 47,1 MiB. VSZ, 214.560 KiB, também inclui espaço de endereçamento virtual que não está residente na RAM. Um VSZ grande, por si só, não é evidência de falta de memória.
O ? significa que não há terminal de controle. O estado S significa que o processo está em espera, geralmente aguardando trabalho. START é 09:14; TIME é dois segundos de trabalho da CPU. TIME não é o tempo decorrido: um servidor pode funcionar por dias usando muito pouca CPU.
Reconheça os estados dos processos
| Estado | Significado |
|---|---|
R | Em execução ou pronto para receber tempo de CPU |
S | Em espera por um evento |
D | Em espera ininterruptível, muitas vezes pelo armazenamento |
T | Parado ou pausado |
Z | Zumbi: terminou e aguarda a coleta pelo processo pai |
I | Thread ociosa do kernel |
STAT pode acrescentar indicadores: + para um grupo em primeiro plano no terminal, s para um líder de sessão, l para várias threads, N para prioridade de CPU reduzida e < para prioridade aumentada. A espera é normal. Um zumbi já terminou e não usa CPU; enviar outro sinal de encerramento a ele não permite coletar seu código de saída. Um número crescente de zumbis aponta para um programa pai que precisa de atenção.
Restrinja a busca
pgrep -a nginx mostra os PIDs e as linhas de comando correspondentes. Padrões podem corresponder a vários nomes: pgrep ssh pode encontrar tanto sshd quanto ssh-agent. pgrep -u alice seleciona pelo proprietário; pidof nginx busca um nome de programa. Um encadeamento de ps com grep também pode mostrar o próprio processo grep.
Para os cinco processos que mais usam memória, execute:
ps -eo pid,ppid,user,%mem,cmd --sort=-%mem | head -n 6
Há seis linhas porque a primeira é um cabeçalho. ps -p 2417 verifica um PID. /proc/2417/status apresenta detalhes de nome, estado, processo pai e memória. /proc é uma visão virtual fornecida pelo kernel, não relatórios de processos armazenados em disco; o diretório do PID desaparece quando o processo termina.
Principais conclusões
- Um processo é uma instância em execução; seu PID o identifica enquanto está ativo.
ps -efmostra processos pais;ps auxacrescenta colunas de CPU e memória.- TIME mede o trabalho da CPU, enquanto START registra quando o processo começou.
- RSS mede a RAM residente; VSZ inclui outras partes da memória virtual.
- Processos em espera são normais; processos zumbis já terminaram.
pgreprestringe uma busca, e/proc/PID/statusapresenta informações do kernel.
1.2 Monitorar CPU, memória e carga com top, free e uptime
Uma visão instantânea mostra o que existe; observações repetidas mostram o que está mudando. O top combina uma lista de processos em tempo real com totais de atividade de CPU, carga, memória e área de troca. Leia o resumo e os processos mais ocupados em conjunto antes de decidir qual recurso está sob pressão.
Trabalhe com o top
Execute top. Pressione P para ordenar por CPU, M para ordenar por memória, 1 para mostrar cada CPU, h para obter ajuda e q para sair. Seus comandos k e r enviam sinais e alteram valores nice. htop oferece outra visualização interativa, mas pode precisar de instalação.
As colunas de processos incluem PID, USER, PR, NI, VIRT, RES, SHR, estado, %CPU, %MEM, TIME+ e COMMAND. RES é a RAM residente, como RSS no ps; VIRT inclui espaço de endereçamento reservado. No modo padrão do top por CPU, um processo com várias threads pode chegar a 400% ao manter quatro CPUs ocupadas. Pressionar I altera a exibição para dividir o uso pelo número de CPUs.
Identifique o tipo de atividade da CPU
O resumo da CPU divide o tempo em categorias:
| Campo | O que informa |
|---|---|
us, sy | Trabalho de programas de usuário e do kernel |
ni | Trabalho de usuário com prioridade nice ajustada |
id | Tempo ocioso |
wa | Tempo ocioso enquanto operações de entrada e saída estão pendentes |
hi, si | Trabalho de interrupções de hardware e software |
st | Tempo que uma máquina virtual perdeu para seu sistema hospedeiro |
Um alto uso de CPU por programas de usuário sugere processamento. Um wa alto com pouco trabalho de usuário direciona a atenção para esperas pelo armazenamento. Em uma máquina virtual, um st alto aponta para tempo de CPU retido pelo sistema hospedeiro. São causas diferentes de uma resposta lenta.
Compare a carga com a capacidade da CPU
uptime e top mostram cargas médias dos últimos 1, 5 e 15 minutos. O Linux conta tarefas prontas para executar e tarefas em espera ininterruptível, incluindo esperas pelo armazenamento. A carga não é uma porcentagem de CPU. nproc informa as CPUs disponíveis para o processo atual, o que ajuda a interpretar a capacidade.
Para um trabalho limitado pela CPU e com pouca espera pelo armazenamento, suponha que nproc informe 4 e a carga seja 6.00, 5.20, 3.10. A carga recente é de 1,5 tarefa por CPU, portanto havia trabalho em fila. O valor do período mais curto supera o do período mais longo, mostrando um aumento recente. Em 16 CPUs, uma carga de 6 seria bem mais leve. Uma carga alta com CPUs ociosas pode, por outro lado, vir de tarefas no estado D.
Avalie a memória com available
Execute free -h. Sua linha Mem inclui total, used, free, shared, buff/cache e available. O Linux preenche a RAM livre com caches úteis de disco e pode recuperar grande parte dela. Free contabiliza a RAM completamente sem uso; available estima quanto pode ser usado por novas tarefas sem recorrer à área de troca.
Por exemplo, uma máquina informa total 7.6Gi, used 3.1Gi, free 0.4Gi, buff/cache 4.6Gi e available 4.5Gi. O pequeno valor de free não indica falta de memória: cerca de 59% permanece disponível. Nas versões atuais do procps, used é o total menos available; free, used e cache não são partes distintas que possam ser simplesmente somadas.
Os sufixos Ki, Mi e Gi são unidades binárias. Um GiB equivale a 1.073.741.824 bytes; um GB equivale a 1.000.000.000 bytes. free -m usa MiB e free -g usa GiB inteiros, o que pode ocultar pequenas quantidades devido ao arredondamento.
A área de troca move parte do conteúdo da memória para um armazenamento em disco mais lento. Observe se a memória available está baixa enquanto o uso da área de troca aumenta. Se a memória se esgotar, o mecanismo de encerramento por falta de memória do kernel pode encerrar um processo. Verifique sudo journalctl -k para encontrar uma mensagem de OOM antes de presumir que um aplicativo falhou por conta própria.
Principais conclusões
- Use o resumo do sistema e a lista de processos no
top. - A carga no Linux conta tarefas prontas para executar e esperas ininterruptíveis; ela não é uma porcentagem.
- Avalie a carga em relação às CPUs disponíveis e verifique esperas pelo armazenamento.
- A coluna available é mais útil que free para avaliar a margem de RAM.
- Memória available baixa e uso crescente da área de troca indicam pressão; eventos de OOM aparecem nos logs do kernel.
1.3 Interromper processos com sinais
Um sinal é uma notificação curta entregue a um processo. Ele pode solicitar o encerramento, pausar uma tarefa ou informar a um serviço que deve reler suas configurações. O comando kill envia sinais; seu nome não significa que todo sinal encerra o destinatário.
Escolha o sinal
| Sinal | Finalidade |
|---|---|
SIGTERM | Solicitar um encerramento organizado; padrão de kill |
SIGKILL | Forçar o encerramento sem a limpeza pelo aplicativo |
SIGINT | Interromper o programa em primeiro plano, geralmente com Ctrl+C |
SIGTSTP | Solicitar uma pausa, geralmente com Ctrl+Z |
SIGSTOP | Forçar uma pausa |
SIGCONT | Continuar um processo parado |
SIGHUP | Informar o fechamento do terminal; alguns serviços o usam para recarregar a configuração |
SIGQUIT | Encerrar, possivelmente com um despejo de memória; Ctrl+\ o envia |
A maioria dos sinais pode ser tratada ou ignorada pelo programa. SIGKILL e SIGSTOP não podem ser capturados, bloqueados ou ignorados. kill -l lista nomes e números. Os números comuns em x86 e ARM incluem TERM 15, KILL 9, INT 2, HUP 1, QUIT 3, CONT 18, STOP 19 e TSTP 20. Os nomes evitam a numeração dependente da arquitetura.
Interrompa um processo com cuidado
Primeiro identifique o processo. ps -p 5120 -o pid,user,stat,cmd permite inspecionar o PID, o proprietário, o estado e o comando. Em seguida, solicite um encerramento organizado:
kill -TERM 5120
kill 5120, kill -15 5120 e kill -s TERM 5120 enviam a mesma solicitação. Um encerramento organizado permite que o aplicativo salve o trabalho, feche arquivos e remova arquivos de trava. Dê tempo para ele responder e execute ps -p 5120 novamente. Se apenas o cabeçalho aparecer, ele terminou.
Se o mesmo processo ativo ainda estiver travado após a espera, kill -KILL 5120 é a alternativa forçada. O aplicativo perde a chance de fazer a limpeza, portanto pode haver trabalho não salvo e arquivos temporários remanescentes. Confira novamente a identidade antes de recorrer ao sinal forçado: PIDs podem ser reutilizados após o término.
Confira os nomes antes de agir
pkill seleciona por um padrão de nome; killall seleciona um nome de programa. Ambos normalmente enviam SIGTERM. Confira as correspondências de um padrão amplo com pgrep -a fire antes de usar pkill fire: esse padrão pode selecionar mais processos do que você pretendia. pkill -u bob seleciona todos os processos de bob, não um único aplicativo.
killall -HUP rsyslogd envia HUP aos processos de registro correspondentes. O efeito de HUP depende do aplicativo: verifique se ele oferece suporte ao recarregamento antes de tratar o sinal como um comando de recarregamento. Para um serviço gerenciado pelo systemd, use sudo systemctl stop NAME; o gerenciador cuida do grupo de processos do serviço e não tratará a parada solicitada como uma falha a ser corrigida automaticamente.
Compreenda permissões e estados
Uma conta comum normalmente controla seus próprios processos. Uma tentativa de enviar um sinal ao processo de outra conta pode produzir “Operation not permitted”; sudo fornece privilégios de root quando necessário. Verifique o alvo antes de usar esses privilégios, pois parar o serviço errado afeta outros usuários.
Um processo no estado D pode permanecer visível após SIGKILL enquanto espera uma resposta do armazenamento. Repetir o sinal não corrige o armazenamento. Um processo zumbi no estado Z já terminou; seu processo pai deve coletar seu código de saída. Portanto, inspecionar o estado é importante quando o processo não desaparece.
Atalhos de teclado atuam sobre o grupo de processos em primeiro plano. Ctrl+C geralmente encerra a tarefa; Ctrl+Z a pausa e mantém sua memória e seus arquivos abertos. O fechamento do terminal normalmente leva ao envio de HUP e ao encerramento das tarefas associadas, por isso tarefas longas precisam de tratamento adequado.
Principais conclusões
- SIGTERM solicita a limpeza; SIGKILL força o encerramento sem ela.
- Confira as correspondências de padrões e verifique o PID antes de enviar um sinal.
- SIGSTOP pausa e SIGCONT retoma;
killpode fazer mais do que encerrar. - Um zumbi não pode ser encerrado novamente, e esperas pelo armazenamento podem atrasar o encerramento.
- Use
systemctl stoppara um serviço gerenciado.
1.4 Executar tarefas em segundo plano e definir prioridades
Uma tarefa em primeiro plano ocupa o terminal até terminar ou parar. Uma tarefa em segundo plano permite que o shell aceite outro comando enquanto ela é executada. O controle de tarefas altera onde o trabalho é executado; a prioridade de CPU altera como ele compete com outros trabalhos.
Mova tarefas entre o primeiro e o segundo plano
Um caractere E comercial inicia um comando em segundo plano:
sleep 300 &
O shell pode exibir [1] 6431. Aqui, 1 é seu número local de tarefa e 6431 é o PID válido em todo o sistema. jobs lista apenas as tarefas desse shell. fg %1 traz a tarefa 1 para primeiro plano. Se você pausar essa tarefa em primeiro plano com Ctrl+Z, bg %1 a retoma em segundo plano. Sem um número, fg e bg escolhem a tarefa marcada com +.
Experimente a sequência com sleep 300: execute-o em primeiro plano, pressione Ctrl+Z, execute bg, inspecione jobs, execute fg e pressione Ctrl+C. “Stopped” significa pausado, não concluído. Uma tarefa parada não usa CPU, mas ainda mantém memória e arquivos abertos. O Bash pode avisar “There are stopped jobs” quando você tenta sair.
Controle a saída e o encerramento da sessão
Um comando em segundo plano ainda pode escrever no terminal. Redirecione os dois fluxos de saída para uma tarefa longa:
./report.sh > report.log 2>&1 &
O primeiro redirecionamento envia a saída normal para o arquivo. 2>&1 envia a saída de erro para o mesmo destino. O & final devolve o prompt enquanto a tarefa é executada.
Executar em segundo plano, por si só, não protege uma tarefa do fechamento do terminal. Para iniciar um trabalho que ignora SIGHUP, use:
nohup ./long-task.sh > task.log 2>&1 &
Sem redirecionamento explícito de saída, nohup geralmente grava em nohup.out a saída destinada ao terminal. No Bash, disown %1 remove uma tarefa existente da tabela de tarefas do shell, de modo que o Bash não lhe repasse HUP. O programa ainda precisa de destinos utilizáveis para entrada e saída. Um programa destinado a funcionar permanentemente é mais bem gerenciado como serviço.
Abra espaço para tarefas interativas
O valor nice expressa a prioridade de escalonamento de CPU para processos comuns. Os valores vão de -20, a prioridade mais alta, a 19, a mais baixa; o valor inicial usual é 0. Valores maiores dão mais oportunidade a tarefas concorrentes. Um processo com nice 19 ainda pode usar totalmente uma CPU que, de outro modo, estaria ociosa.
nice -n 10 xz -9 big.log
renice -n 15 -p 6431
O primeiro comando inicia a compactação com um ajuste positivo de nice; a partir do valor usual 0, ele passa a 10. O segundo altera para 15 o valor nice do processo em execução. nice sem -n aplica um ajuste de 10. Um usuário comum geralmente pode aumentar o valor nice do próprio processo, reduzindo sua prioridade de CPU. Aumentar a prioridade por meio da redução do valor normalmente exige root, por exemplo sudo renice -n -5 -p 6431.
No top, NI mostra o valor nice; para processos comuns de tempo compartilhado, PR costuma ser 20 mais NI. Portanto, nice 10 aparece como PR 30. Em ps aux, N marca prioridade reduzida e <, prioridade aumentada. O valor nice afeta a disputa pela CPU, não a prioridade de acesso ao disco; ionice controla um recurso separado.
Principais conclusões
&inicia uma tarefa em segundo plano;jobs,fgebgusam números de tarefa locais ao shell.- Ctrl+Z pausa uma tarefa; não a encerra.
- Use redirecionamento de saída e
nohupde forma consciente para uma tarefa longa no terminal. - Valores nice maiores reduzem a prioridade de CPU quando há disputa, não a velocidade máxima em uma CPU ociosa.
2Inspecionar o hardware pela linha de comando
Informações de hardware ajudam você a escolher um pacote compatível, interpretar o uso de recursos e descrever uma falha com clareza. O Linux apresenta o kernel em execução, a organização da CPU, a memória utilizável e os dispositivos conectados por meio de ferramentas de linha de comando. Você distinguirá CPUs lógicas de núcleos físicos, valores decimais nos rótulos de armazenamento de tamanhos binários e um dispositivo detectado de outro com um driver funcional. As mesmas verificações ajudam quando o hardware é virtual.
2.1 Identificar o processador, a memória e o sistema
Antes de instalar software ou dimensionar uma carga de trabalho, descubra o que o sistema realmente oferece. A arquitetura determina quais pacotes de código de máquina podem ser executados. A disponibilidade de CPU ajuda a explicar a carga, e a RAM utilizável limita o trabalho que cabe na memória.
Separe o kernel da distribuição
| Comando | Informação |
|---|---|
uname -r | Versão do kernel em execução, como 6.8.0-45-generic |
uname -m | Arquitetura, como x86_64 ou aarch64 |
uname -a | Todos os campos do uname |
cat /etc/os-release | Nome e versão da distribuição |
hostnamectl | Resumo do host, sistema operacional, kernel e arquitetura |
Ubuntu 24.04 é uma versão de distribuição; um valor como 6.8.0-45-generic identifica o kernel em execução nela. Instalar um novo kernel não troca imediatamente o kernel em execução: isso acontece na reinicialização.
Os nomes das arquiteturas diferem entre famílias de pacotes. Pacotes Debian usam amd64 para a arquitetura informada pelo uname como x86_64, e arm64 para aarch64. Pacotes RPM geralmente usam x86_64 e aarch64 diretamente. Verifique se a compilação corresponde à máquina antes de instalá-la.
Conte núcleos e CPUs lógicas
lscpu informa arquitetura, modelo, soquetes, núcleos por soquete, threads por núcleo e CPUs lógicas. Para uma organização uniforme de CPU:
Um soquete com seis núcleos e duas threads por núcleo fornece 12 CPUs lógicas. Ainda existem seis núcleos físicos. Duas threads de hardware compartilham recursos dentro de um núcleo, portanto 12 CPUs lógicas não garantem o dobro do desempenho de seis núcleos.
nproc informa as unidades de processamento disponíveis para o processo atual; a afinidade de CPU ou limites de recursos podem tornar esse número menor que o total da máquina. /proc/cpuinfo fornece detalhes da CPU diretamente. Em x86, grep -c ^processor /proc/cpuinfo conta as entradas de processador, e os indicadores vmx ou svm mostram suporte à virtualização por hardware. ARM apresenta campos diferentes.
Consulte a memória utilizável e a instalada
free -h fornece um resumo prático da RAM. /proc/meminfo fornece detalhes: MemTotal é a RAM utilizável e MemAvailable estima a capacidade que novas tarefas podem usar. Esse arquivo identifica seus valores como kB, mas eles são kibibytes, ou 1.024 bytes cada.
Por exemplo, MemTotal: 16303448 kB equivale a cerca de 15,5 GiB após duas divisões por 1.024. Uma máquina com módulos físicos de 16 GiB pode mostrar menos RAM utilizável porque as reservas do firmware e do kernel usam parte dela.
Para inspecionar os módulos e slots instalados, execute sudo dmidecode -t memory. sudo dmidecode -t system informa fabricante, modelo e dados de série fornecidos pelo firmware. Uma máquina virtual informa seu hardware virtual. sudo lshw -short, quando instalado, fornece um inventário compacto de hardware.
Verifique um requisito em testes separados
Suponha que um software precise de um sistema ARM de 64 bits, pelo menos quatro CPUs disponíveis e 8 GB de RAM. uname -m retornando aarch64 atende ao requisito de arquitetura. nproc retornando 4 atende ao requisito de CPU. Um total de 3.7Gi equivale a apenas cerca de 4,0 GB, portanto a memória é insuficiente. Atender a duas verificações não compensa falhar na terceira.
Principais conclusões
- Use
/etc/os-releasepara a distribuição euname -rpara o kernel em execução. - Os nomes de arquitetura dos pacotes diferem:
amd64no Debian corresponde ax86_64. - Soquetes, núcleos e threads de hardware determinam a quantidade de CPUs lógicas.
nprocinforma as CPUs disponíveis para o processo atual.- A RAM utilizável pode ser menor que a memória instalada;
/proc/meminfousa kilobytes binários.
2.2 Listar discos, dispositivos PCI e USB e seus drivers
O Linux atribui nomes a dispositivos de hardware em /dev e publica sua representação dos dispositivos em /sys. Várias ferramentas de listagem respondem a perguntas diferentes: quais dispositivos de armazenamento existem, quais barramentos detectaram dispositivos e quais drivers estão lidando com eles.
Identifique discos e partições
Discos SATA, SAS e USB geralmente aparecem como /dev/sda, /dev/sdb e letras seguintes. Suas partições acrescentam um número, como em /dev/sda1. NVMe usa nomes como /dev/nvme0n1, com /dev/nvme0n1p1 para uma partição. Uma máquina virtual pode usar /dev/vda.
lsblk mostra dispositivos de blocos como uma árvore. TYPE distingue um disco de uma partição; RM indica se é removível e RO indica se é somente para leitura. SIZE informa a capacidade e MOUNTPOINTS mostra onde um dispositivo está em uso. Escolha detalhes adicionais com:
lsblk -o NAME,SIZE,MODEL
lsblk -f
O primeiro facilita a comparação de modelo e tamanho. O segundo acrescenta tipo de sistema de arquivos, rótulo e UUID. Nomes como sdb podem mudar conforme a ordem de detecção. Antes de gravar em um disco, confirme sua identidade usando mais do que a letra: gravar no dispositivo errado destrói seus dados.
Uma unidade vendida como 512 GB contém 512 bilhões de bytes. Em GiB, isso equivale a cerca de 476,8, exibido pelo lsblk como 476.8G. O dispositivo não perdeu capacidade: seu rótulo e a exibição usam unidades diferentes.
Encontre dispositivos e drivers associados
| Ferramenta | O que procurar |
|---|---|
lspci | Dispositivos PCI e PCI Express, como controladores de rede e armazenamento |
lspci -k | O driver em uso e possíveis módulos do kernel |
lsusb | Identificadores e descrições de dispositivos USB |
lsusb -t | Conexões USB em árvore, incluindo velocidades |
lsmod | Módulos do kernel carregados |
modinfo e1000e | Informações sobre um módulo |
Um identificador USB como 046d:c52b identifica o fabricante e o produto de forma mais confiável que um nome genérico como “receptor sem fio”. Na saída de PCI, distinga Kernel modules, que nomeia possíveis módulos, de Kernel driver in use, que identifica um driver associado. A detecção, por si só, não significa que o suporte esteja funcionando.
A maioria dos drivers pode ser carregada como módulos do kernel, partes do código do kernel adicionadas quando necessário. Carregar ou remover módulos altera o kernel em execução e exige privilégios de root. Alguns drivers, por outro lado, são integrados ao kernel. Em placas ARM, muitos dispositivos integrados não estão em PCI, portanto uma listagem curta de lspci não significa necessariamente que falte hardware.
Acompanhe uma conexão no log do kernel
Quando um disco USB for conectado, execute sudo dmesg | tail ou inicie sudo dmesg -w antes de conectá-lo. Uma mensagem como [sdb] 60437492 512-byte logical blocks identifica o novo disco como /dev/sdb e informa sua capacidade. Multiplicar essas contagens de blocos resulta em 30.943.995.904 bytes: cerca de 30,9 GB ou 28,8 GiB.
Em seguida, compare a nova entrada do lsblk com essa mensagem e com o modelo do dispositivo. Se um adaptador detectado não funcionar, use lspci -k para verificar o driver e dmesg para ler erros de inicialização. A ausência de um driver associado e um driver que informa um erro exigem verificações posteriores diferentes.
Principais conclusões
- Use
lsblkpara dispositivos de blocos,lspcipara PCI elsusbpara USB. - Os nomes de disco seguem a ordem de detecção; verifique o dispositivo antes de gravar.
- Uma unidade de 512 GB decimais corresponde a cerca de 476,8 GiB.
- Verifique o driver associado e as mensagens do kernel após detectar um dispositivo.
3Instalar e gerenciar software com gerenciadores de pacotes
Um gerenciador de pacotes relaciona arquivos de software a suas versões, dependências e fontes confiáveis. Escolher a ferramenta adequada para a distribuição permite instalar e manter software sem acompanhar cada biblioteca por conta própria. Você aprenderá as famílias de comandos Debian e Red Hat, separará a atualização das informações de pacotes da aplicação de atualizações de versão e identificará o pacote e a transação que forneceram um comando instalado.
3.1 Compreender pacotes, repositórios e dependências
Um pacote reúne arquivos de software com informações usadas para instalá-los e mantê-los. Seus metadados indicam a versão, a arquitetura e os pacotes necessários, e ele pode incluir scripts de instalação. Um gerenciador de pacotes registra quais arquivos pertencem a cada pacote instalado.
Identifique a família da distribuição
| Sistemas | Formato de pacote | Ferramenta de repositório | Ferramenta de baixo nível |
|---|---|---|---|
| Debian, Ubuntu, Linux Mint | .deb | apt | dpkg |
| Fedora, RHEL, Rocky Linux, AlmaLinux, CentOS Stream | .rpm | dnf | rpm |
| openSUSE, SUSE Linux Enterprise | .rpm | zypper | rpm |
Arch Linux usa pacman; Alpine Linux usa apk. O nome antigo yum pertence à família Red Hat. Se você não souber qual sistema possui, leia a saída de cat /etc/os-release antes de escolher os comandos.
Um arquivo como nginx_1.24.0-2_amd64.deb indica nginx, sua versão de software, revisão do empacotamento e arquitetura. Esses campos ajudam o gerenciador de pacotes a selecionar uma compilação compatível. Um nome de aplicativo conhecido não torna todo pacote baixado adequado para qualquer distribuição.
Deixe a ferramenta de alto nível resolver as dependências
Uma dependência é outro pacote necessário ao software, muitas vezes uma biblioteca compartilhada. Instalar um aplicativo pode, portanto, acrescentar vários pacotes. Uma ferramenta de alto nível, como apt ou dnf, encontra um conjunto compatível, baixa-o e solicita à ferramenta de nível inferior que o instale.
dpkg e rpm trabalham com arquivos de pacote locais e mantêm o banco de dados de pacotes instalados. Eles não buscam dependências ausentes nos repositórios. Usá-los para instalar um arquivo pode deixar requisitos ausentes para você resolver. Ferramentas de alto nível também podem instalar arquivos locais, resolvendo seus requisitos a partir dos repositórios configurados.
Buscas e consultas funcionam como usuário comum. Instalação, remoção e atualização de versões alteram arquivos do sistema e normalmente exigem sudo. A tela de confirmação contém informações úteis: inspecione os pacotes adicionais e quaisquer remoções propostas antes de aceitar.
Entenda a confiança nos repositórios
Um repositório fornece arquivos de pacote e índices que descrevem as versões e dependências disponíveis. Os repositórios da própria distribuição oferecem um conjunto compilado para sua versão.
O APT verifica os metadados assinados do repositório e usa as somas de verificação desses metadados para conferir os arquivos baixados. Ele normalmente não verifica uma assinatura separada em cada .deb. O DNF normalmente verifica as assinaturas dos RPMs da distribuição; a verificação da assinatura dos metadados do repositório é configurada separadamente. Essas verificações estabelecem uma cadeia até um fornecedor confiável e ajudam a detectar alterações indevidas.
Adicionar um repositório de terceiros também significa confiar no software e nos scripts de instalação desse fornecedor. Obtenha sua chave de assinatura seguindo as instruções autênticas do fornecedor. Não ignore as verificações de assinatura para contornar um erro como “NO_PUBKEY”. Um arquivo de uma página de download desconhecida também precisa ter uma origem confiável; a extensão do pacote, por si só, não oferece essa confiança.
Busque pelo nome correto
Nomes de software e de pacote podem ser diferentes. O Apache é empacotado como apache2 em sistemas da família Debian e httpd em sistemas da família Red Hat. O comando dig vem de bind9-dnsutils ou bind-utils. Pesquise antes de presumir que o nome de um comando também é o nome de seu pacote.
Outros sistemas de instalação mantêm registros separados. Snap, Flatpak e AppImage reúnem aplicativos com muitas dependências; pip e npm gerenciam bibliotecas de programação. Instalar uma biblioteca Python com pip não a transforma em um pacote gerenciado pelo apt.
Principais conclusões
- Use a família de pacotes e a ferramenta de repositório correspondentes a
/etc/os-release. - Ferramentas de alto nível buscam dependências;
dpkgerpmoperam sobre pacotes e registros locais. - Repositórios fornecem índices de pacotes e uma cadeia de confiança até um fornecedor.
- Nomes de pacotes podem diferir dos nomes de programas e variar entre distribuições.
- Gerenciadores de pacotes do sistema e gerenciadores de aplicativos ou linguagens mantêm registros separados.
3.2 Instalar, atualizar e remover software com apt e dnf
A manutenção de pacotes tem três tarefas distintas: descobrir o que está disponível, aplicar as alterações selecionadas e remover software que não é mais necessário. Leia a transação planejada antes de confirmar, especialmente quando ela remove pacotes.
Atualize as listas e as versões
| Tarefa | Família Debian | Família Red Hat |
|---|---|---|
| Atualizar listas de pacotes | sudo apt update | O DNF atualiza metadados desatualizados automaticamente |
| Aplicar atualizações de versão | sudo apt upgrade | sudo dnf upgrade |
| Instalar nginx | sudo apt install nginx | sudo dnf install nginx |
| Remover nginx | sudo apt remove nginx | sudo dnf remove nginx |
| Remover dependências desnecessárias | sudo apt autoremove | sudo dnf autoremove |
apt update não atualiza o software. Ele baixa as listas de pacotes atuais. Execute em seguida sudo apt upgrade para instalar versões mais recentes. O comando de atualização do DNF cuida dos metadados desatualizados do repositório como parte de seu trabalho. O DNF4 usa dnf check-update para listar alterações disponíveis; o DNF5 usa dnf check-upgrade.
apt upgrade não remove um pacote instalado para concluir uma atualização. Um pacote que precise dessa alteração pode ter sua atualização adiada. sudo apt full-upgrade permite remoções, portanto inspecione seu plano com cuidado. -y aceita uma transação automaticamente e elimina sua oportunidade de revisá-la de forma interativa.
Instale de um repositório ou de um arquivo local
No Ubuntu, execute sudo apt update e depois sudo apt install htop. O APT lista novos pacotes e dependências antes de baixá-los. htop --version verifica o programa instalado. No Fedora, use sudo dnf install htop.
Executar apt install para um pacote existente pode atualizá-lo para a candidata atual; ele não altera nada se essa versão já estiver instalada. Para instalar um arquivo local confiável, informe seu caminho:
sudo apt install ./app_2.1.0_amd64.deb
sudo dnf install ./app-2.1.0-1.x86_64.rpm
O ./ indica um caminho de arquivo. Por outro lado, sudo dpkg -i file.deb e sudo rpm -i file.rpm não buscam dependências ausentes. Se o dpkg deixar dependências não satisfeitas, sudo apt --fix-broken install pode resolvê-las; inspecione o reparo proposto.
Remova software e configurações de forma consciente
O remove do APT mantém a configuração de sistema gerenciada do pacote; purge também a remove. Nenhum dos dois remove arquivos dos diretórios pessoais dos usuários. Autoremove atua sobre dependências instaladas automaticamente que não são mais necessárias aos pacotes instalados. Essa é uma decisão diferente de remover um aplicativo pelo nome.
As entradas de fontes do APT ficam em /etc/apt/sources.list e /etc/apt/sources.list.d/; o Ubuntu 24.04 geralmente usa ubuntu.sources nesse diretório. Atualize as listas após alterar as fontes. O DNF lê arquivos .repo em /etc/yum.repos.d/; dnf repolist mostra os repositórios habilitados.
Conclua a manutenção adequadamente
apt foi projetado para uso interativo. Scripts geralmente usam as interfaces mais estáveis de apt-get e apt-cache. Seus comandos abrangem as mesmas tarefas gerais, embora os padrões possam diferir.
Um kernel recém-instalado passa a ser o kernel em execução após a reinicialização. Programas que usam bibliotecas substituídas precisam ser reiniciados para carregar o novo código. O Ubuntu pode indicar a necessidade de reinicialização com /var/run/reboot-required.
Uma trava do gerenciador de pacotes muitas vezes significa que uma atualização automática ou outra operação de pacotes está ativa. Espere-a terminar; excluir o arquivo de trava pode danificar os registros de pacotes. Um erro de permissão, por outro lado, aponta para falta de privilégios, portanto confirme se a operação exige sudo.
Principais conclusões
apt updateatualiza as listas;apt upgradealtera o software instalado.- O DNF atualiza metadados desatualizados durante a atualização; DNF4 e DNF5 usam nomes diferentes para verificar atualizações.
- O remove do APT mantém a configuração de sistema gerenciada; purge a remove.
- Use um caminho com apt ou dnf para instalar um arquivo local e resolver dependências.
- Revise as remoções em uma atualização completa e as dependências propostas para autoremove.
- Espere a operação que mantém a trava de pacotes terminar e reinicie o programa ou a máquina quando o código atualizado exigir.
3.3 Buscar pacotes e inspecionar o software instalado
Quando um comando está ausente ou uma versão muda, consultas de pacotes permitem investigar a partir do sintoma. Comece decidindo se você precisa de informações do repositório, informações de pacotes instalados ou do pacote ao qual um arquivo específico pertence.
Pesquise antes de instalar
apt search json e dnf search json pesquisam nomes e descrições de pacotes. Inspecione um resultado promissor com apt show NAME ou dnf info NAME. Eles mostram detalhes como versão, tamanho, descrição e repositório. A saída de show do APT também lista dependências; os requisitos no DNF podem ser consultados com dnf repoquery --requires NAME.
As informações do repositório respondem ao que você poderia instalar. Elas, por si só, não estabelecem o que já está instalado. apt policy NAME distingue a versão instalada da candidata, a versão que o APT selecionaria no momento. apt list --upgradeable ou dnf list --upgrades mostra pacotes instalados com atualizações disponíveis.
Consulte os registros de instalação
| Pergunta | Família Debian | Família Red Hat |
|---|---|---|
| O que está instalado? | apt list --installed ou dpkg -l | dnf list --installed ou rpm -qa |
| Qual versão de um pacote está instalada? | dpkg -l nginx | rpm -q nginx |
| Quais arquivos vieram do htop? | dpkg -L htop | rpm -ql htop |
| A qual pacote pertence este arquivo instalado? | dpkg -S /usr/bin/htop | rpm -qf /usr/bin/htop |
Em dpkg -l, o estado ii identifica um pacote instalado. A direção da consulta importa: -L parte de um pacote e lista seus arquivos; -S parte de um arquivo e encontra o pacote ao qual ele pertence. Em sistemas RPM, a distinção correspondente é entre -ql e -qf.
Identifique o pacote de um comando
Suponha que which openssl exiba /usr/bin/openssl. No Debian, dpkg -S /usr/bin/openssl identifica openssl como o pacote ao qual o arquivo pertence. apt policy openssl mostra então a versão instalada, a candidata e os repositórios. Isso evita presumir que o nome do comando deve sempre corresponder ao de seu pacote.
Para um comando ausente, pode não haver um pacote instalado a consultar. dnf provides /usr/bin/rsync pesquisa listas de arquivos dos repositórios. Sistemas da família Debian oferecem a ferramenta separada apt-file: após seu índice ser atualizado com sudo apt-file update, apt-file search bin/rsync encontra os pacotes que o fornecem. O Ubuntu também pode sugerir um pacote quando um comando não é encontrado.
Relacione uma falha a uma transação
O APT registra transações em /var/log/apt/history.log; o dpkg registra ações de nível inferior em /var/log/dpkg.log. No DNF4, dnf history lista transações; o DNF5 usa dnf history list. dnf history info 12 mostra os pacotes alterados na transação 12.
sudo dnf history undo 12 solicita a reversão dessa transação. Revise o plano: a reversão depende de as versões necessárias dos pacotes ainda estarem disponíveis e não restaura dados arbitrários de aplicativos. Para o diagnóstico, leia o histórico antes de fazer outra alteração. Uma atualização recente de biblioteca pode explicar por que o comportamento de um programa mudou, mesmo que ninguém tenha reinstalado o aplicativo principal.
Principais conclusões
- Distinga as versões do repositório da versão realmente instalada.
- Use
dpkg -Lourpm -qlpara consultar os arquivos de um pacote. - Use
dpkg -Sourpm -qfpara consultar a qual pacote pertence um arquivo instalado. - Um arquivo ausente exige uma busca pelo pacote que o fornece no repositório, não uma consulta de pacote instalado.
- O histórico de transações ajuda a relacionar um novo problema a uma alteração recente de pacote.
4Gerenciar serviços com systemd
Serviços continuam realizando tarefas úteis depois que um usuário sai do terminal. O systemd gerencia sua inicialização, seu estado atual e sua resposta a falhas, usando arquivos de unidade para descrever o que deve ser executado. Você interpretará o estado sem confundi-lo com a configuração de inicialização, controlará serviços agora e em futuras inicializações e fará pequenas alterações de configuração preservadas nas atualizações de pacotes. Um arquivo de serviço simples mostra como essas configurações se encaixam.
4.1 Compreender o systemd, as unidades e o estado dos serviços
Um serviço, frequentemente chamado de daemon, fornece uma função em segundo plano, como servir páginas web ou aceitar conexões SSH. Ele geralmente não tem terminal. Muitos nomes de daemons terminam em d, como em sshd e chronyd.
Encontre o gerenciador de serviços
Na maioria das principais distribuições, o systemd é executado como PID 1 e inicia os serviços na ordem necessária. Verifique com ps -p 1 -o comm=. O systemd pode supervisionar processos, reiniciar serviços com falha e organizar a coleta de seus logs. Algumas distribuições usam outro gerenciador, como o OpenRC do Alpine Linux.
O systemd gerencia unidades. Seus sufixos identificam suas funções:
| Sufixo | Função |
|---|---|
.service | Executar e gerenciar um programa ou tarefa |
.socket | Escutar em um socket e ativar um serviço quando necessário |
.timer | Agendar uma ativação |
.mount | Representar um sistema de arquivos montado |
.target | Agrupar unidades em um estado nomeado do sistema |
Nos comandos de serviço, nginx é uma forma abreviada de nginx.service. Os nomes variam: o SSH geralmente usa ssh no Debian e no Ubuntu, e sshd no Fedora e no RHEL. O Apache é apache2 ou httpd. systemctl list-unit-files | grep ssh ajuda a encontrar o nome local.
Leia as duas linhas importantes de estado
Execute systemctl status nginx. Um exemplo pode incluir:
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: enabled)
Active: active (running) since Wed 2026-10-21 09:14:03 UTC
Main PID: 2410 (nginx)
Loaded indica o arquivo de unidade e seu estado de habilitação. Active informa o estado atual e quando ele começou. Main PID identifica o processo principal; as linhas de log recentes vêm em seguida. Um usuário comum pode inspecionar o estado, mas a visualização dos logs do sistema pode exigir privilégios adicionais.
Ativo e habilitado são independentes. Ativo descreve o presente. Habilitado significa que links de habilitação foram criados, geralmente para que um alvo inicie o serviço na inicialização. Um serviço desabilitado ainda pode ser iniciado manualmente ou ativado por outra unidade. Um serviço habilitado pode estar parado ou com falha.
Interprete o estado corretamente
| Estado Active | Interpretação |
|---|---|
active (running) | O programa do serviço está em execução |
active (exited) | Uma tarefa concluída ainda é considerada ativa |
inactive (dead) | Não está ativo |
failed | Uma inicialização ou execução falhou; examine o resultado e os logs |
activating | A inicialização está em andamento |
A cor do ponto de estado ajuda na leitura rápida, mas o texto do estado é a evidência útil. systemctl is-active nginx informa o estado atual; systemctl is-enabled nginx informa a habilitação. static significa que a unidade não tem instruções de habilitação e pode ser ativada por outro caminho. masked significa que sua inicialização está bloqueada.
Escolha a visão geral adequada
systemctl list-units --type=service mostra as unidades de serviço carregadas no momento, com seu filtro de estado padrão. Acrescente --all para incluir unidades carregadas inativas, ou --state=running para se concentrar nos serviços em execução. systemctl --failed isola as unidades com falha. systemctl list-unit-files --type=service lista arquivos de serviço instalados e estados de habilitação, incluindo serviços que não estão em execução agora.
Principais conclusões
- O systemd gerencia unidades; uma unidade
.servicedescreve um programa ou tarefa. - Leia Loaded para o arquivo de unidade e a habilitação, e Active para o estado atual.
- Um serviço habilitado pode estar parado; um serviço desabilitado pode estar em execução.
active (exited)pode descrever uma tarefa concluída com sucesso.- Use list-unit-files para definições instaladas e list-units para unidades carregadas.
4.2 Iniciar, parar, habilitar e desabilitar serviços
O controle de serviços tem duas escalas de tempo: o que deve ser executado agora e o que deve iniciar automaticamente depois. Mantenha essas decisões separadas ao instalar software ou corrigir um serviço.
Controle o estado atual
| Comando | Efeito |
|---|---|
sudo systemctl start nginx | Iniciar agora |
sudo systemctl stop nginx | Parar agora |
sudo systemctl restart nginx | Parar e iniciar, interrompendo o trabalho atual |
sudo systemctl reload nginx | Solicitar que um serviço compatível releia a configuração |
sudo systemctl reload-or-restart nginx | Recarregar se houver suporte; caso contrário, reiniciar |
Use systemctl status nginx após uma alteração. Para uma verificação silenciosa, systemctl is-active --quiet nginx retorna sucesso quando ele está ativo. O comando não exibe texto de estado, o que o torna útil em condições do shell.
O suporte ao recarregamento depende do serviço. Para o nginx, teste uma configuração alterada com sudo nginx -t antes de sudo systemctl reload nginx. Um recarregamento bem-sucedido pode aplicar novas configurações sem parar o serviço. Com uma configuração incorreta, o nginx mantém a configuração antiga em execução ao recarregar; reiniciar com o arquivo incorreto pode, por outro lado, deixá-lo fora do ar.
Configure a inicialização automática
sudo systemctl enable nginx cria links de habilitação; ele não inicia o nginx agora. sudo systemctl disable nginx remove esses links; ele não para o processo atual. Para fazer as duas alterações juntas:
sudo systemctl enable --now nginx
sudo systemctl disable --now nginx
O primeiro habilita e inicia; o segundo desabilita e para. Uma instalação do nginx no Fedora geralmente o deixa parado e desabilitado, enquanto a instalação do pacote na família Debian muitas vezes o inicia e habilita. Verifique o estado real após a instalação.
Após iniciar um serviço web, curl -I http://localhost pode verificar sua resposta local. Uma resposta local bem-sucedida e o acesso de outra máquina são testes diferentes; um firewall ainda pode bloquear o acesso remoto.
Bloqueie a ativação quando necessário
Desabilitar não impede que uma dependência ou um socket ative um serviço. O mascaramento bloqueia a inicialização vinculando o nome da unidade a /dev/null:
sudo systemctl mask bluetooth
sudo systemctl unmask bluetooth
O mascaramento, por si só, não para uma unidade que já está em execução. Pare-a também quando ela precisar deixar de funcionar. Desmascarar remove o bloqueio; isso, por si só, não inicia nem habilita o serviço. Uma tentativa de iniciar uma unidade mascarada informa que ela está mascarada.
Escolha o estado padrão do sistema
Um alvo agrupa unidades. multi-user.target fornece o ambiente multiusuário normal sem interface gráfica, geralmente usado em servidores. graphical.target acrescenta a área de trabalho. systemctl get-default informa o alvo padrão, e sudo systemctl set-default multi-user.target altera o alvo selecionado para futuras inicializações; ele não fecha imediatamente a área de trabalho atual.
sudo systemctl reboot reinicia a máquina e sudo systemctl poweroff a desliga. Para um único serviço, use seus próprios comandos de controle. Encerrar o PID de um serviço gerenciado pode provocar uma reinicialização automática; uma parada intencional com systemctl stop informa ao systemd que deve mantê-lo parado.
Principais conclusões
- Start e stop afetam o presente; enable e disable alteram links de habilitação.
enable --nowedisable --nowcombinam as duas escalas de tempo.- Desabilitar permite outros caminhos de ativação; mascarar bloqueia a inicialização.
- O mascaramento, por si só, deixa em execução um serviço que já está ativo.
- Teste a configuração do aplicativo antes de recarregar ou reiniciar.
- Alterar o alvo padrão seleciona o comportamento de futuras inicializações.
4.3 Ler e personalizar arquivos de unidade
Um arquivo de unidade informa ao systemd como executar um serviço. Leia a configuração efetiva com systemctl cat NAME: ele exibe o arquivo base e quaisquer configurações substitutivas com seus caminhos.
Saiba onde ficam as configurações
Unidades fornecidas por pacotes ficam em /usr/lib/systemd/system/, também acessível como /lib/systemd/system/ em sistemas da família Debian. Arquivos locais do administrador e configurações substitutivas ficam em /etc/systemd/system/, que tem prioridade. Uma atualização de pacote pode substituir seu próprio arquivo, portanto mantenha as alterações locais em uma configuração substitutiva.
Um arquivo de unidade tem seções e configurações Key=value:
| Seção | Configurações importantes |
|---|---|
[Unit] | Description=, ordenação com After=, dependências com Wants= ou Requires= |
[Service] | ExecStart=, User=, WorkingDirectory=, Environment=, Restart= |
[Install] | WantedBy=, usado ao habilitar a unidade |
After=network.target define a ordem; ele não inicia esse alvo por si só nem garante conectividade com a internet. WantedBy=multi-user.target informa a enable que deve criar um link em multi-user.target.wants/. Uma unidade estática não tem instruções de habilitação, mas ainda pode ser ativada por outra unidade.
Crie um serviço simples
Para um pequeno servidor de teste, primeiro prepare /srv/hello com arquivos legíveis e uma conta de sistema:
sudo useradd --system --no-create-home hello
Com Python 3 instalado em /usr/bin/python3, escreva /etc/systemd/system/hello-web.service:
[Unit]
Description=Hello web server
After=network.target
[Service]
ExecStart=/usr/bin/python3 -m http.server 8080 --directory /srv/hello
User=hello
Restart=on-failure
[Install]
WantedBy=multi-user.target
Execute sudo systemctl daemon-reload e depois sudo systemctl enable --now hello-web. Inspecione systemctl status hello-web e faça uma requisição a http://localhost:8080 com curl. A conta de serviço precisa de permissão para ler o diretório e percorrer seus diretórios pais.
Com o Type=simple padrão, o programa permanece em primeiro plano para que o systemd possa acompanhá-lo. ExecStart= aceita um caminho absoluto de executável ou um nome de arquivo simples encontrado no caminho de busca do systemd. Um caminho relativo com uma barra, como ./server, é inválido. Um programa que cria um processo filho em segundo plano precisa de um tipo de serviço adequado, como Type=forking.
Substitua uma configuração fornecida por pacote
sudo systemctl edit nginx abre um arquivo de configuração complementar. Por exemplo:
[Service]
Restart=on-failure
RestartSec=5s
Salvar por meio de systemctl edit recarrega a configuração de unidades do systemd. Reinicie o serviço para aplicar alterações nas configurações de execução. Ao editar arquivos diretamente, execute sudo systemctl daemon-reload antes de reiniciar. Isso recarrega as definições de unidade, não a configuração do próprio aplicativo.
Substituir uma configuração de lista como ExecStart exige uma linha ExecStart= vazia antes da nova. sudo systemctl revert nginx remove as configurações substitutivas locais e restaura a configuração do fornecedor.
Restart=no deixa parado um processo que terminou. on-failure reinicia após falhas abrangidas pela política; always também abrange encerramentos normais. Uma parada intencional com systemctl stop impede a reinicialização automática. Falhas rápidas podem atingir um limite configurado de frequência de inicialização. Os padrões do gerenciador permitem cinco inicializações em 10 segundos; a configuração local pode alterá-los. Corrija a causa antes de limpar o estado de falha e tentar novamente.
Principais conclusões
- Mantenha configurações locais em
/etc/systemd/system/; inspecione-as comsystemctl cat. - As seções da unidade separam descrição e dependências, execução e habilitação.
- Execute um serviço simples em primeiro plano com uma conta adequada.
- Recarregue as definições de unidade após edições diretas e reinicie para aplicar alterações de execução.
- Um arquivo complementar é preservado nas atualizações de pacotes; configurações de lista podem exigir uma linha vazia de redefinição.
- A política de reinício trata encerramentos de processos, enquanto limites de frequência impedem tentativas rápidas intermináveis.
5Ler logs do sistema para diagnosticar e resolver problemas
O estado de um serviço informa que algo falhou; os logs ajudam a explicar por quê. O Linux registra mensagens no diário de registros do systemd, em arquivos de log de aplicativos e no buffer de mensagens do kernel. Você restringirá esses registros por serviço, inicialização, horário e gravidade e relacionará o primeiro erro útil a uma verificação específica. Um reparo disciplinado altera uma causa de cada vez e verifica tanto o serviço em execução quanto seu comportamento de inicialização pretendido.
5.1 Consultar o diário de registros do systemd com journalctl
O diário de registros do systemd coleta mensagens do kernel, da inicialização e dos serviços, incluindo a saída enviada ao diário por programas gerenciados. systemd-journald armazena registros binários indexados. Leia-os com journalctl; um leitor de arquivos de texto como less não consegue interpretar os próprios arquivos do diário.
Leia uma parte suficiente dos registros
O acesso ao diário do sistema depende das permissões e da política local. Root e grupos autorizados, como systemd-journal ou adm, podem ler entradas do sistema. Se uma conta comum vir apenas um conjunto limitado, use sudo journalctl para investigar o sistema.
A visualização padrão começa pelas mensagens antigas em um paginador. Use as teclas de seta para navegar, / para pesquisar e q para sair. Escolha uma visualização mais específica:
| Opção | Efeito |
|---|---|
-r | Mais recentes primeiro |
-e | Ir para o final |
-n 50 | Últimos 50 registros |
-f | Acompanhar os registros recebidos até Ctrl+C |
--no-pager | Exibir diretamente, útil para pipes |
-n sem um número seleciona dez entradas. A saída de estado geralmente mostra apenas algumas linhas recentes, portanto leia o diário quando elas não explicarem a falha.
Combine filtros de unidade, inicialização e horário
sudo journalctl -u nginx -b seleciona os registros do nginx desta inicialização. -b -1 seleciona a inicialização anterior; --list-boots lista os registros de inicializações preservados. -k seleciona mensagens do kernel e normalmente implica a inicialização atual. Para registros mais antigos do kernel, informe a inicialização explicitamente.
Filtros de tempo aceitam horários relativos e datas completas:
sudo journalctl -u nginx --since "2026-10-22 08:00" --until "2026-10-22 09:30"
--since today significa desde a meia-noite de hoje, enquanto --since "1 hour ago" fornece uma janela de tempo móvel. Strings de data e hora entre aspas permanecem juntas como um único argumento. Uma data sem horário começa à meia-noite.
Entenda o limite de prioridade
As prioridades vão de 0, emergência, a 7, depuração. Entre elas estão alerta, crítico, erro, aviso, notificação e informação. Números menores indicam maior gravidade. -p err inclui os níveis 0 a 3, não apenas erro. Use um intervalo explícito como -p err..warning para selecionar essa faixa.
Um filtro restrito de gravidade pode ocultar a evidência necessária. Por exemplo, o SSH pode registrar mensagens de senha malsucedida no nível de informação. No Ubuntu, sudo journalctl -u ssh --since today --grep "Failed password" encontra mensagens correspondentes sem excluí-las por um limite de aviso.
Uma linha como “Failed password for invalid user admin from 203.0.113.45” identifica a conta tentada e o endereço de origem. A data e hora e o PID do programa situam a mensagem na atividade ao redor. -o short-iso facilita a comparação de datas completas; -o verbose apresenta os campos, -o json-pretty exibe registros estruturados e -x acrescenta o texto explicativo disponível.
Saiba o que permanece após uma reinicialização
Diários de registros persistentes ficam em /var/log/journal/; diários voláteis em /run/log/journal/ desaparecem no desligamento. O comportamento de armazenamento é controlado por Storage= na configuração do journald. Uma única inicialização registrada pode significar que registros antigos nunca foram persistidos ou já foram removidos.
journalctl --disk-usage inclui arquivos ativos e inativos do diário. sudo journalctl --vacuum-size=500M remove arquivos inativos antigos até atingir um limite de 500 MiB para esses arquivos. Arquivos ativos não são removidos nessa operação, portanto o total informado de uso de disco pode permanecer maior.
Principais conclusões
- Filtre por unidade, inicialização e horário antes de restringir a prioridade.
- Um limite de prioridade inclui níveis mais graves, não apenas o nível indicado.
- Registros de nível informativo podem conter a causa de um problema.
- Diários persistentes sobrevivem à reinicialização; diários voláteis não.
- A limpeza remove arquivos inativos, enquanto o uso de disco também contabiliza arquivos ativos.
5.2 Ler arquivos de log em /var/log e mensagens do kernel
O diário de registros não é a única fonte de logs. Alguns sistemas também executam rsyslog, e aplicativos podem gravar seus próprios logs de texto. O kernel mantém um buffer de mensagens separado na memória. Escolha a fonte que registrou o evento investigado.
Encontre o log de texto correto
| Fonte | Local comum |
|---|---|
| Mensagens gerais no Debian/Ubuntu, com syslog configurado | /var/log/syslog |
| Autenticação no Debian/Ubuntu | /var/log/auth.log |
| Log de texto do kernel no Debian/Ubuntu | /var/log/kern.log |
| Mensagens gerais e autenticação na família RHEL | /var/log/messages, /var/log/secure |
| Ações do APT e do dpkg | /var/log/apt/history.log, /var/log/dpkg.log |
| Ações do DNF | /var/log/dnf.log |
| Requisições e problemas do nginx | /var/log/nginx/access.log, /var/log/nginx/error.log |
A presença de um arquivo depende dos serviços de registro instalados e de sua configuração. O Debian 12 e posteriores geralmente dependem do diário de registros, a menos que o rsyslog seja instalado. Aplicativos ainda podem manter seus próprios logs em uma máquina assim.
Leia um arquivo de texto com sudo less /var/log/auth.log, inspecione seu final com sudo tail -n 20 /var/log/syslog ou acompanhe novas linhas com sudo tail -f /var/log/nginx/error.log. Para selecionar uma palavra sem distinguir maiúsculas de minúsculas, use sudo grep -i "error" /var/log/syslog.
Leia os campos e os arquivos mais antigos
Um exemplo clássico é:
Oct 22 08:01:17 web1 sshd[3141]: Accepted publickey for alice from 198.51.100.7 port 50522 ssh2
Ele informa a data e hora, o host, o programa com PID e a mensagem do evento. Alguns sistemas usam datas e horas ISO completas com deslocamentos de fuso horário. A mensagem descreve um login bem-sucedido por chave, não uma tentativa malsucedida de senha; ler apenas o nome do programa faz você perder essa distinção.
A rotação de logs limita o crescimento renomeando arquivos antigos, criando novos e, por fim, removendo arquivos expirados. A configuração de logrotate fica em /etc/logrotate.conf e /etc/logrotate.d/. Uma sequência como syslog, syslog.1 e syslog.2.gz abrange registros atuais e antigos. Use zless ou zgrep para texto compactado com gzip sem extraí-lo primeiro. Uma busca apenas no arquivo atual pode deixar passar a falha de ontem.
Leia eventos do kernel
O buffer circular do kernel mantém mensagens recentes e sobrescreve suas entradas mais antigas à medida que enche. Ele registra detecção de dispositivos, falhas de drivers, erros de armazenamento e encerramentos por falta de memória. dmesg o exibe; use sudo quando o acesso for restrito. dmesg -T fornece horários legíveis, dmesg -l err,warn seleciona erros e avisos, e dmesg -w acompanha novas mensagens.
sudo journalctl -k lê entradas do kernel mantidas pelo diário de registros. sudo journalctl -k -b -1 pode acessar uma inicialização anterior que o buffer circular atual não contém mais.
Se um processo Java desaparecer, uma linha do kernel como “Out of memory: Killed process 4810 (java)” relaciona seu encerramento à pressão sobre a memória. Verifique free -h e top e, em seguida, reduza a demanda de memória ou acrescente capacidade. Para problemas de inicialização de serviço, comece pelo diário da unidade; para detalhes específicos do aplicativo, leia seu próprio log de erros.
Use a rotação ou os controles de retenção do diário para gerenciar o espaço ocupado pelos logs. Excluir um log de texto manualmente remove evidências e pode deixar seu espaço em disco alocado até que o programa que grava nele feche o arquivo.
Principais conclusões
- Os locais dos logs de texto dependem da configuração de registro; aplicativos podem manter seus próprios arquivos.
- Use less, tail e grep para logs de texto, e zless ou zgrep para logs antigos compactados.
- A rotação distribui um histórico de eventos por vários arquivos.
- dmesg mostra o buffer atual do kernel; o diário pode preservar inicializações anteriores.
- Mensagens de OOM do kernel podem explicar o desaparecimento de um aplicativo sem erro próprio.
5.3 Diagnosticar e corrigir falhas de um serviço passo a passo
Reinicializações repetidas raramente explicam uma falha. Comece pelo sintoma visível, obtenha a mensagem que identifica sua causa e altere uma coisa. Em seguida, teste o serviço corrigido tanto pelo gerenciador quanto pela função que ele oferece.
Siga uma investigação reproduzível
- Confirme o sintoma: por exemplo, uma requisição web local falha.
- Execute
systemctl status NAMEe leia Active, Result e o código de saída. - Leia
sudo journalctl -u NAME -bou as últimas 50 entradas com-n 50 --no-pager. - Use o log de erros e o teste de configuração do próprio aplicativo.
- Corrija uma causa identificada e repita a verificação relevante.
- Inicie ou reinicie, inspecione o estado e teste a função real.
- Verifique
systemctl is-enabled NAMEem relação ao comportamento de inicialização pretendido.
Leia o primeiro erro significativo da tentativa malsucedida. Uma linha posterior como “Failed to start” resume o resultado; ela pode não indicar a causa. Manter os filtros de horário e unidade alinhados ajuda a separar a tentativa mais recente de falhas anteriores.
Resolva um conflito de porta
Uma reinicialização do nginx falha. Seu diário de registros contém “bind() to 0.0.0.0:80 failed (98: Address already in use).” Algo já está escutando nessa porta. Execute:
sudo ss -tlnp | grep ':80 '
Suponha que ele identifique apache2. Se essa máquina deve usar nginx e o Apache não é mais necessário, sudo systemctl disable --now apache2 para o Apache e remove seus links de habilitação. Em seguida, sudo systemctl start nginx pode usar a porta. Verifique systemctl status nginx e faça uma requisição web local.
A condição importa: não remova um serviço necessário apenas para fazer um segundo iniciar. Se ambos precisarem funcionar, sua configuração de escuta precisa ser alterada de forma planejada. O log identifica o conflito de recurso, enquanto a função pretendida do sistema determina o reparo.
Resolva um erro de configuração
Suponha que o diário informe uma chave de fechamento inesperada em /etc/nginx/sites-enabled/default:24. Execute sudo nginx -t; ele identifica o mesmo arquivo e a mesma linha. Corrija a chave fora do lugar, execute o teste novamente e reinicie somente após o teste ser bem-sucedido. Isso isola a alteração e evita substituir uma configuração que está funcionando por uma incorreta.
Use o código de resultado para restringir a busca
| Estado ou resultado | Próxima verificação |
|---|---|
203/EXEC | Caminho do executável, permissão de execução e capacidade de iniciá-lo |
217/USER | Conta em User= e capacidade de estabelecer suas credenciais |
1/FAILURE | Mensagens de erro do próprio aplicativo |
oom-kill | Registros de OOM do kernel e uso de memória |
Um executável ausente e um programa que inicia, mas rejeita suas configurações, são falhas diferentes. Para “Permission denied”, compare a saída de ls -l e o acesso ao diretório com o usuário configurado para o serviço. Para disco cheio, verifique df -h; para RAM baixa, verifique free -h; para pressão sobre a CPU, inspecione top.
Se o systemd informar “start request repeated too quickly”, primeiro corrija a causa. Em seguida, sudo systemctl reset-failed NAME limpa os contadores de falha e de limite de inicialização para que você possa iniciá-lo novamente. Redefinir apenas o contador não corrige o programa.
Principais conclusões
- Confirme o sintoma, inspecione o estado e leia o primeiro erro que explica a causa.
- Use as verificações do aplicativo e altere uma causa de cada vez.
- Uma porta ocupada exige identificar quem está escutando nela antes do reparo.
- Códigos de saída distinguem falhas de execução, credenciais de usuário, aplicativo e memória.
- Limpe um limite de inicialização após corrigir a causa e verifique estado, função e comportamento de inicialização pretendido.
6Empacotar e compactar arquivos
Um arquivo de armazenamento reúne arquivos em um único objeto; a compactação altera o espaço que esse objeto ocupa. Manter essas tarefas distintas facilita a leitura e a restauração de comandos de backup. Você criará e inspecionará arquivos tar, extrairá para um diretório escolhido e comparará gzip, bzip2, xz e zip. A escolha do formato depende de velocidade, tamanho, necessidades de compartilhamento e metadados dos arquivos, enquanto uma restauração verificada oferece evidência mais forte do que um nome de arquivo conhecido.
6.1 Criar, listar e extrair arquivos tar
Um arquivo de armazenamento reúne arquivos e diretórios com seus nomes e metadados. A compactação reduz os bytes necessários para armazenar dados. Um arquivo tar simples reúne arquivos sem compactá-los; adicionar um compactador produz arquivos como .tar.gz, .tar.bz2 ou .tar.xz.
Leia as opções como uma frase curta
| Opção | Função |
|---|---|
-c, -t, -x | Criar, listar ou extrair; escolha uma operação |
-f FILE | Nomear o arquivo de armazenamento |
-v | Mostrar nomes ou detalhes dos itens |
-z, -j, -J | Usar gzip, bzip2 ou xz |
-C DIR | Mudar de diretório para os itens seguintes ou para a extração |
O GNU tar também aceita opções combinadas e o estilo antigo sem hífen. Em um grupo combinado, mantenha f por último e coloque o nome de arquivo correspondente em seguida. O J maiúsculo seleciona xz; o j minúsculo seleciona bzip2.
Crie um arquivo de armazenamento com nomes úteis para os itens
tar -czvf site-backup.tar.gz -C /var/www site
Isso cria site-backup.tar.gz no diretório atual do shell. O tar muda seu local de entrada para /var/www e depois adiciona site, portanto os nomes armazenados começam com site/. Ele preserva a estrutura de diretórios, os modos de permissão, os metadados de proprietário e grupo e os registros de data e hora.
Informar /var/www/site diretamente também funciona. O GNU tar normalmente remove a barra inicial e armazena var/www/site/...; a extração então recria esse caminho abaixo do destino. Escolher o diretório de entrada com -C fornece uma estrutura de restauração mais curta e prática.
Liste antes de restaurar
Execute tar -tzvf site-backup.tar.gz. Ele lista nomes e metadados sem extrair. Verifique se todos os itens estão dentro de um único diretório. Caso contrário, a extração pode espalhar arquivos pelo destino. O GNU tar detecta formatos comuns de compactação durante a leitura, portanto tar -tvf site-backup.tar.gz também funciona.
Para restaurar em um diretório vazio existente:
tar -xzvf site-backup.tar.gz -C /tmp/restore
O destino já deve existir. A extração pode sobrescrever arquivos com nomes correspondentes, portanto use um diretório de restauração vazio ao verificar um arquivo de armazenamento desconhecido. Para extrair um item, informe seu nome exatamente como listado: tar -xzvf site-backup.tar.gz site/index.html.
Proteja o nome do arquivo de armazenamento e os metadados
A palavra após -f é o nome do arquivo de armazenamento. Em tar -cfz backup.tar.gz docs, o tar trata z como esse nome e as palavras seguintes como entradas. Da mesma forma, tar -cf *.txt permite que a expansão do shell escolha o primeiro arquivo de texto como arquivo de armazenamento de saída e pode sobrescrevê-lo. Sempre informe explicitamente o nome do arquivo de armazenamento.
Um usuário comum restaura arquivos como seu proprietário; root pode restaurar os proprietários registrados. Criar um backup exige acesso de leitura à origem. Para arquivos de sistema protegidos, use um comando autorizado como sudo tar -czf /root/etc-2026-10-22.tar.gz /etc e verifique seus erros para identificar arquivos omitidos.
--exclude='*.log' omite caminhos correspondentes. A opção -a do GNU tar seleciona um compactador pelo sufixo, como em tar -caf backup.tar.xz docs. Antes de remover os originais, leia o arquivo de armazenamento com tar -tzf backup.tar.gz > /dev/null e confirme que a listagem contém os arquivos esperados. Uma leitura bem-sucedida verifica a legibilidade; inspecionar uma restauração também verifica se o conteúdo escolhido é útil.
Principais conclusões
- O empacotamento reúne arquivos e metadados; a compactação reduz o tamanho.
- Escolha uma operação do tar e forneça a
-fum nome explícito de arquivo de armazenamento. -Ccontrola a estrutura de entrada ou o destino da extração.- Liste antes de extrair e restaure em um diretório vazio para evitar sobrescritas.
- Backups exigem permissão de leitura, e root pode restaurar os proprietários registrados.
- Verifique o conteúdo legível e uma restauração antes de confiar no arquivo de armazenamento.
6.2 Compactar arquivos com gzip, bzip2, xz e zip
As ferramentas de compactação diferem em velocidade, tamanho e na forma como tratam os originais. Escolha um formato conforme a tarefa: reduzir rapidamente um log, fazer um backup de Linux ou disponibilizar um download para usuários de vários sistemas operacionais.
Compacte um arquivo e mantenha o original quando necessário
| Compactador | Sufixo compactado | Comando de descompactação |
|---|---|---|
gzip | .gz | gunzip ou gzip -d |
bzip2 | .bz2 | bunzip2 ou bzip2 -d |
xz | .xz | unxz ou xz -d |
Essas ferramentas normalmente substituem um arquivo de entrada por sua versão compactada. gzip access.log deixa access.log.gz e remove o original após o sucesso. Acrescente -k para mantê-lo. Suas formas com -d invertem a operação.
Elas não criam um arquivo de armazenamento de diretório com vários arquivos. gzip project recusa um diretório; o gzip recursivo compacta seus arquivos individualmente. Para preservar uma árvore de diretórios como um único objeto compactado, crie um arquivo tar com o compactador escolhido.
Equilibre tempo, memória e tamanho
O gzip geralmente é rápido, o xz muitas vezes produz arquivos menores com maior custo de tempo e memória, e o bzip2 geralmente fica entre eles. Os resultados dependem da entrada e das configurações. Os níveis de -1 a -9 favorecem a velocidade na extremidade inferior e a compactação na superior. Os padrões são 6 para gzip e xz e 9 para bzip2.
Logs de texto muitas vezes diminuem bastante. Imagens JPEG, vídeos MP4 e arquivos de armazenamento compactados geralmente ganham pouco com outra compactação. Compactá-los novamente pode consumir tempo de CPU sem uma economia útil de espaço.
Em uma amostra de 240 MiB de logs, gzip produziu 31 MiB e xz, 22 MiB. Essas saídas mantêm cerca de 12,9% e 9,2% do tamanho original. Nessa amostra, o arquivo menor veio com um tempo de compactação maior; os valores não são previsões para outros dados.
Leia e teste conteúdo compactado
zcat, zless e zgrep leem texto compactado com gzip; bzcat e xzcat lidam com seus respectivos formatos. Por exemplo, zgrep "error" /var/log/syslog.2.gz pesquisa um log rotacionado sem deixar uma cópia descompactada no disco.
Use gzip -t file.gz ou xz -t file.xz para verificações de integridade. Um sufixo é apenas uma convenção de nomes: file backup.bin pode identificar conteúdo gzip mesmo sem .gz. sha256sum backup.tar.gz produz uma soma de verificação para comparação após a transferência. Somas de verificação iguais mostram que as cópias correspondem, não que todos os arquivos de origem desejados foram incluídos.
Compartilhe um diretório com zip
ZIP agrupa e compacta mantendo os arquivos de origem:
zip -r project.zip project
unzip -l project.zip
unzip project.zip -d /tmp/project
-r inclui o conteúdo do diretório recursivamente. unzip -l o lista; -d escolhe o destino da extração. Os comandos talvez precisem ser instalados primeiro. ZIP é prático para usuários de Windows e macOS. Ferramentas ZIP do Linux podem armazenar metadados Unix, mas restaurar proprietário, grupo e modos de permissão em outros sistemas é menos portátil do que usar tar para um backup de Linux.
Escolha .tar.gz para um backup rotineiro de Linux, .tar.xz quando reduzir um download for mais importante que o tempo de compactação, .zip para amplo compartilhamento entre computadores pessoais e gzip para um único arquivo de texto grande. Mantenha os arquivos de origem até que verificações e uma restauração de teste estabeleçam que o arquivo de armazenamento contém o que você precisa.
Principais conclusões
- Gzip, bzip2 e xz compactam arquivos individuais e normalmente substituem suas entradas.
- Use
-kpara manter um original; use tar para empacotar um diretório. - Os ganhos de compactação e os custos de recursos dependem da entrada e das configurações.
- Use leitores de texto compactado e testes de integridade sem extrair tudo.
- ZIP é prático para compartilhamento; tar é convencional para backups de Linux que preservam metadados.
Exercícios resolvidos de Processos, pacotes e serviços no Linux
1Encontrar e controlar uma tarefa ocupada
17 passos
- 1IntroduçãoComece pelas tarefas em execução
Um terminal ficou lento enquanto uma tarefa longa de compactação está em execução. Antes de interromper qualquer coisa, relacione o sintoma visível a um processo e a um recurso.
Você passará de uma visão instantânea dos processos a informações de CPU e memória em tempo real e decidirá como pausar, interromper ou reduzir a prioridade da tarefa. O PID identifica o processo; o número de tarefa do shell tem outra finalidade ao movê-la entre o primeiro e o segundo plano.
- 2ExplicaçãoEncontre o usuário e a identidade
Execute
ps -efpara obter uma visão instantânea de todo o sistema com PID e PPID. Um comando iniciado no seu terminal geralmente é filho desse shell.Para colunas de CPU e memória, use
ps aux. Um programa pode ter várias instâncias em execução, cada uma com seu próprio PID. Verifique o comando e o usuário ao escolher um alvo: um nome conhecido pode identificar vários processos, e um PID pode ser reutilizado após o término do processo anterior. - 3ExemploInterprete corretamente o tempo de CPU
Uma linha do ps mostra START
09:00, TIME0:08e estadoS. O programa começou às 09:00 e acumulou oito segundos de trabalho da CPU. Ele está em espera por um evento.O tempo decorrido desde a inicialização não é o campo TIME. Um serviço pode aguardar requisições por horas e usar muito pouca CPU. Use
pgrep -a NAMEpara encontrar linhas de comando relevantes e/proc/PID/statusquando precisar da visão detalhada do kernel. - 4DesafioInterprete um servidor em espera
Um servidor foi iniciado ontem. Sua linha no ps tem TIME
0:12, TTY?e estadoS. Isso é evidência de que ele deixou de funcionar durante a maior parte do dia? Explique os três campos.---reveal---
Não. Ele usou 12 segundos de trabalho da CPU, não tem terminal de controle e está em espera no momento. Aguardar requisições é um comportamento normal de um serviço. Esses campos não informam por quantas horas o servidor esteve disponível nem se uma requisição específica foi bem-sucedida.
- 5ExplicaçãoAcompanhe o recurso que muda
Abra
top. PressionePpara ordenar por CPU,Mpor memória e1para CPUs individuais. Pressioneqpara sair.Leia o resumo junto com a lista de processos. Um alto uso de CPU por programas de usuário sugere processamento;
waalto direciona a atenção para operações de entrada e saída pendentes, estalto em uma máquina virtual indica tempo de CPU do sistema hospedeiro retido do sistema convidado. RES mede a RAM residente; uma alocação VIRT grande, por si só, é uma medida inadequada do uso de memória física. - 6ExemploCompare a carga com a capacidade da CPU
Suponha que
nprocinforme 4 e uma carga de trabalho limitada principalmente pela CPU mostre a carga6.00, 5.20, 3.10. Com pouca espera por entrada e saída, a carga recente significa que há mais tarefas prontas para executar do que quatro CPUs conseguem executar ao mesmo tempo.O valor de um minuto supera as médias dos períodos mais longos, indicando um aumento recente. A carga no Linux também conta esperas ininterruptíveis, portanto repita essa comparação considerando o resumo da CPU e os estados dos processos; o número não é uma porcentagem de CPU.
- 7Ideia-chaveLeia a RAM available antes de free
free -hpode mostrar pouca RAM completamente livre enquanto vários GiB permanecem disponíveis. O Linux usa a RAM livre como cache e pode recuperar grande parte dela para novas tarefas.Available estima a capacidade sem recorrer à área de troca. Observe a combinação de memória available baixa e uso crescente da área de troca como evidência mais forte de pressão. Se o kernel encerrar tarefas porque a memória se esgotou, um registro de OOM em
sudo journalctl -kpode explicar o encerramento repentino. - 8DesafioEscolha o recurso a investigar
Um servidor tem muitas tarefas no estado D,
waalto, baixo uso de CPU por programas de usuário e bastante RAM disponível. Qual recurso você deve investigar primeiro e por que a carga ainda pode estar alta?---reveal---
Investigue primeiro o armazenamento ou outras esperas por entrada e saída. O Linux inclui tarefas ininterruptíveis na carga, portanto uma carga alta pode coexistir com CPUs ociosas. Os valores de memória não indicam falta imediata de RAM, e uma carga alta, por si só, não identifica processamento de CPU como causa.
- 9ExplicaçãoSolicite primeiro um encerramento organizado
Um sinal solicita que um processo execute uma ação.
kill PIDenvia SIGTERM, dando ao programa a oportunidade de salvar seu estado e fechar recursos. SIGKILL força o encerramento sem executar seu código de limpeza.Verifique o alvo, envie TERM, dê tempo e confira novamente antes de recorrer ao sinal forçado. Um PID que agora pertence a um novo comando identifica outro processo. Para um serviço supervisionado pelo systemd, solicite
sudo systemctl stop NAMEpor meio do gerenciador. - 10ExemploPause e continue de forma consciente
kill -STOP 5120pausa o processo 5120;kill -CONT 5120o retoma. O processo mantém sua memória e seus arquivos abertos durante a pausa.Ctrl+Z envia uma solicitação de pausa à tarefa em primeiro plano no terminal, enquanto Ctrl+C envia uma interrupção que normalmente a encerra. Um zumbi já terminou e não pode ser encerrado novamente. Uma tarefa em espera ininterruptível pelo armazenamento pode permanecer visível até que essa espera termine, mesmo após um sinal de encerramento forçado.
- 11DesafioMantenha um serviço gerenciado parado
Um processo de trabalho gerenciado reinicia depois que você encerra seu PID. Você quer mantê-lo parado agora para manutenção. Qual ação é adequada e por que encerrar o novo PID é uma rotina ruim?
---reveal---
Use
sudo systemctl stop NAME. O gerenciador de serviços entende que essa parada é intencional e cuida dos processos gerenciados. Encerrar outro PID pode repetir o mesmo ciclo de recuperação de falha, pois o systemd pode tratar o encerramento do processo como motivo para reiniciar o processo de trabalho. - 12ExemploMova uma tarefa sem perdê-la
Inicie
sleep 300em primeiro plano e pressione Ctrl+Z. O Bash informa a tarefa como Stopped.bg %1retoma a tarefa 1 e devolve o prompt, efg %1a traz de volta para primeiro plano.O
%1é uma seleção de tarefa local ao shell, não o PID 1. Uma tarefa parada não terminou: ela mantém recursos. Se a saída de uma tarefa em segundo plano atrapalhar o terminal, envie-a para um arquivo antes de deixar a tarefa em execução. - 13DicaPrepare uma tarefa para o encerramento da sessão
Para uma nova tarefa longa, use
nohup ./long-task.sh > task.log 2>&1 &. Nohup faz a tarefa ignorar HUP, o redirecionamento coloca os dois fluxos de saída em um arquivo e o E comercial a coloca em segundo plano.Cada parte tem uma função distinta. Um E comercial sozinho não protege contra o fechamento do terminal.
disown %1do Bash pode remover uma tarefa existente da tabela de tarefas do shell, mas sua entrada e sua saída ainda precisam de destinos adequados. - 14ExplicaçãoReduza a prioridade sem impor um limite de velocidade
Inicie uma tarefa pesada com
nice -n 10 COMMANDa partir do valor nice usual 0, ou ajuste uma tarefa em execução comrenice -n 15 -p PID. Valores nice maiores reduzem a prioridade normal de escalonamento de CPU.O intervalo vai de -20 a 19. Um usuário comum geralmente pode tornar suas próprias tarefas menos competitivas; aumentar sua prioridade normalmente exige root. Uma tarefa com nice 19 ainda usa totalmente uma CPU ociosa, e o valor nice não define a prioridade de acesso ao disco.
- 15DesafioAjuste uma tarefa em segundo plano em execução
Sua tarefa de compactação em segundo plano tem PID 9328 e nice 0. Você quer que ela dê mais oportunidade de CPU a tarefas interativas concorrentes sem pausá-la. Qual comando e efeito são adequados?
---reveal---
renice -n 15 -p 9328reduz sua prioridade de CPU ao aumentar seu valor nice. A tarefa continua em execução e recebe menos oportunidade quando há disputa pela CPU. Enviar STOP a pausaria completamente, enquanto escolher um valor nice negativo aumentaria sua prioridade. - 16DesafioRelacione as evidências a uma resposta
Um backup está ativo com nice 0. O top mostra que ele usa várias CPUs, com baixa espera por entrada e saída e RAM disponível suficiente; uma tarefa interativa está lenta. Você precisa encerrar o backup para ajudar a tarefa interativa?
---reveal---
Não. As evidências indicam disputa pela CPU, portanto aumentar o valor nice do backup pode dar mais oportunidade à tarefa interativa enquanto o backup continua. Se for necessário interrompê-lo depois, identifique novamente o processo e solicite um encerramento organizado antes de considerar o uso de força.
- 17RecapitulaçãoCombine a ação com as evidências
Use ps e pgrep para estabelecer a identidade e depois top, free e carga para compreender a pressão sobre os recursos. Leia o estado antes de interpretar um processo que parece travado.
Um encerramento organizado, uma pausa, uma movimentação para segundo plano e uma alteração de prioridade resolvem problemas diferentes. Deixe o controle de serviços com o systemd, distinga tarefas locais de PIDs e verifique o resultado após alterar uma tarefa em execução.
2Criar um relatório útil de hardware
10 passos
Salve esta aula para seguir cada Lição Interativa passo a passo.
- 1IntroduçãoReúna fatos que respondam ao requisito
- 2ExplicaçãoIdentifique as camadas do sistema
- 3ExemploConte os componentes da CPU
- 4ExplicaçãoCompare a memória instalada e a utilizável
- 5DesafioVerifique um requisito mínimo
- 6ExemploInterprete uma árvore de armazenamento
- 7ExplicaçãoRelacione um dispositivo ao seu driver
- 8DesafioIdentifique um disco recém-conectado
- 9DesafioDistinga capacidade de suporte do driver
- 10RecapitulaçãoTorne o relatório específico
3Instalar software e identificar o que mudou
14 passos
Salve esta aula para seguir cada Lição Interativa passo a passo.
- 1IntroduçãoMantenha relacionados arquivos e registros de pacotes
- 2ExplicaçãoEscolha a ferramenta de repositório
- 3Ideia-chaveUma dependência faz parte do plano
- 4DesafioExplique os pacotes adicionais
- 5ExemploAtualize as listas antes de instalar
- 6ExplicaçãoVeja o que uma atualização permite
- 7DicaDecida o que a remoção deve manter
- 8DesafioSepare a atualização das listas da aplicação
- 9ExemploIdentifique o pacote de um comando
- 10ExplicaçãoPesquise além dos arquivos instalados
- 11DesafioEscolha a direção da consulta
- 12ConexãoRelacione uma falha à manutenção recente
- 13DesafioRepare com base nas evidências
- 14RecapitulaçãoVerifique o estado de que você realmente precisa
4Executar um serviço agora e após a reinicialização
14 passos
Salve esta aula para seguir cada Lição Interativa passo a passo.
- 1IntroduçãoFaça duas perguntas sobre o estado
- 2ExemploLeia Loaded e Active
- 3Ideia-chaveUma unidade ativa não precisa ter um processo em execução
- 4DesafioInterprete um serviço desabilitado, mas em execução
- 5ExplicaçãoEscolha agora, depois ou ambos
- 6ExemploAplique uma configuração de aplicativo
- 7DesafioBloqueie um serviço sem esquecer seu processo
- 8ExplicaçãoLeia a definição efetiva da unidade
- 9ExemploDescreva um servidor simples em primeiro plano
- 10ExemploFaça uma configuração substitutiva sobreviver às atualizações
- 11DesafioAplique um comando editado diretamente
- 12Ideia-chaveAs regras de reinício respeitam uma parada solicitada
- 13DesafioVerifique um serviço após uma alteração de unidade
- 14RecapitulaçãoMantenha cada camada distinta
5Encontrar a causa da falha de um serviço
13 passos
Salve esta aula para seguir cada Lição Interativa passo a passo.
- 1IntroduçãoComece por um sintoma observável
- 2ExplicaçãoSelecione o serviço e a tentativa
- 3ExemploMantenha mensagens úteis de baixa prioridade
- 4DesafioPesquise a inicialização correta
- 5ExplicaçãoEncontre logs de aplicativos e logs rotacionados
- 6ExemploVerifique o encerramento silencioso de um aplicativo
- 7DesafioEscolha uma fonte de texto mais antiga
- 8ExemploComece pelo primeiro erro que explica a causa
- 9ExemploIdentifique quem usa uma porta ocupada
- 10Ideia-chaveUse códigos de resultado para escolher a próxima verificação
- 11DesafioRecupere-se de uma falha com limite de frequência
- 12DesafioVerifique sem perder evidências
- 13RecapitulaçãoDeixe cada descoberta orientar o próximo passo
6Criar um arquivo de armazenamento que possa ser restaurado
11 passos
Salve esta aula para seguir cada Lição Interativa passo a passo.
- 1IntroduçãoPlaneje a restauração antes do empacotamento
- 2ExplicaçãoSepare o agrupamento da redução de tamanho
- 3ExemploCrie caminhos relativos úteis
- 4ExemploInspecione e extraia em etapas separadas
- 5DesafioPreveja a estrutura da extração
- 6DicaMantenha f junto ao nome do arquivo
- 7ExplicaçãoSaiba quais originais permanecem
- 8ExemploEscolha um formato para a tarefa
- 9DesafioMantenha um log ao compactá-lo
- 10DesafioVerifique a cópia e o conteúdo
- 11RecapitulaçãoUse o formato e as verificações adequados
Questões de Processos, pacotes e serviços no Linux
Conjunto 1: Aplicar comandos cotidianos de manutenção do Linux10 Questões de Prática
Questão 1 de 10
[3] 9026 após iniciar uma tarefa. Como você traz essa tarefa para primeiro plano?Mostrar respostaOcultar resposta
Questão 2 de 10
12.0, 8.0, 4.0. Qual é a melhor interpretação?Mostrar respostaOcultar resposta
Questão 3 de 10
Kernel driver in use. O que você deve investigar em seguida?Mostrar respostaOcultar resposta
Questão 4 de 10
/usr/bin/less pertence?Mostrar respostaOcultar resposta
Questão 5 de 10
Mostrar respostaOcultar resposta
Questão 6 de 10
Mostrar respostaOcultar resposta
Questão 7 de 10
app.log.2.gz. Como você pode pesquisar diretamente esse arquivo mais antigo?Mostrar respostaOcultar resposta
Questão 8 de 10
203/EXEC. Seu diário não contém nenhuma mensagem de inicialização do aplicativo. O arquivo de unidade indica /opt/worker/run, mas esse caminho está ausente. Qual sequência de reparo corresponde às evidências?Mostrar respostaOcultar resposta
Questão 9 de 10
report.log com gzip e manter o arquivo descompactado. Qual comando é adequado?Mostrar respostaOcultar resposta
Questão 10 de 10
Mostrar respostaOcultar resposta
Conjunto 2: Interpretar processos, pacotes e estados de serviços10 Questões de Prática
Salve esta aula para ver todas as respostas e praticar cada conjunto.
Questão 1 de 10
06:20 e TIME 0:04. O que TIME informa?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 2 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 3 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 4 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 5 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 6 de 10
sudo apt update. O que mudou quando o comando é bem-sucedido?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 7 de 10
enabled e inactive (dead). Como você deve interpretar essa combinação?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 8 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 9 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 10 de 10
/srv/notes/day.txt, pertencente a root, com tar -czf notes.tar.gz -C /srv notes. Como usuário comum, você executa tar -xzf notes.tar.gz -C /tmp/inspect nesse diretório vazio existente. Qual caminho e proprietário o arquivo restaurado normalmente terá?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Conjunto 3: Relacionar evidências à ação correta10 Questões de Prática
Salve esta aula para ver todas as respostas e praticar cada conjunto.
Questão 1 de 10
Z, e seu processo pai continua em execução. Por que enviar SIGKILL a esse PID não remove a entrada?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 2 de 10
pgrep encontra dois processos data-export: o PID 8550 é seu data-export --daily; o PID 8551 é o data-export --weekly de outro usuário. Você quer que apenas sua tarefa diária termine de forma organizada. Qual ação é adequada?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 3 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 4 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 5 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 6 de 10
active (exited) após concluir com sucesso uma tarefa de configuração executada uma vez. O que esse estado significa?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 7 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 8 de 10
journalctl -p err?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 9 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 10 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Conjunto 4: Diagnosticar problemas de manutenção com várias ferramentas10 Questões de Prática
Salve esta aula para ver todas as respostas e praticar cada conjunto.
Questão 1 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 2 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 3 de 10
/dev/sdb ontem. Hoje outro dispositivo foi conectado primeiro, e uma gravação no disco errado apagaria arquivos necessários. O que deve determinar seu alvo agora?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 4 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 5 de 10
/usr/bin/scan está ausente. Você quer descobrir qual pacote do repositório fornece esse caminho exato. Qual consulta é adequada?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 6 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 7 de 10
After=network.target estabelece por si só?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 8 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 9 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 10 de 10
bundle/a.txt e bundle/b.txt. Você quer restaurar apenas b.txt. Qual nome de item deve solicitar?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Conjunto 5: Planejar e verificar reparos completos no Linux10 Questões de Prática
Salve esta aula para ver todas as respostas e praticar cada conjunto.
Questão 1 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 2 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 3 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 4 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 5 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 6 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 7 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 8 de 10
nginx -t agora encontra um erro de sintaxe. Qual sequência aplica as duas alterações pretendidas com uma configuração testada?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 9 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 10 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Travou em uma questão sua? Ajuda com Tarefas
Termos-Chave
Á
Área de troca (swap)
A
Alvo do systemd (target)
Arquitetura do processador
Arquivo de armazenamento
Arquivo de configuração complementar (drop-in)
Arquivo de dispositivo
/dev, pelo qual o software acessa um dispositivo representado pelo kernel./dev/nvme0n1p2 identifica uma partição, não um diretório de arquivos.Arquivo de unidade
Atualização da lista de pacotes
apt update, um aplicativo mais recente pode aparecer como disponível enquanto o antigo permanece instalado.Atualização de versão
B
Buffer circular
C
Carga média
Código de saída
Compactação
Conflito de porta
Consulta do pacote ao qual um arquivo pertence
rpm -qf para um executável instalado cujo nome de pacote você não conhece em um sistema RPM.CPU lógica
D
Dependência
Diário de registros do systemd (journal)
Diário de registros persistente
/var/log/journal, permitindo consultar inicializações anteriores até que a retenção os remova.Diário de registros volátil
/run/log/journal, de modo que eles são perdidos no desligamento em vez de serem levados para a próxima inicialização.Dispositivo de blocos
/dev.Driver de dispositivo
E
Estado de atividade
ExecStart
./worker tem um caminho relativo com barra e não é uma forma válida de executável.Extração
G
gzip
H
Habilitação
I
Identificador de processo (PID)
Identificador do processo pai (PPID)
Identificador universalmente único (UUID)
Item do arquivo de armazenamento
L
Limite de frequência de inicialização
Limpeza de arquivos antigos do diário de registros
Log do kernel
M
Mascaramento
/dev/null, incluindo inicializações manuais e por dependência.Mecanismo de encerramento por falta de memória (OOM killer)
Memória disponível
MemTotal
/proc/meminfo, excluindo a memória reservada antes do uso comum.Metadados de arquivo
Metadados do pacote
Módulo do kernel
N
Núcleo físico
Número da tarefa
[2] 7164, fg %2 seleciona a tarefa; 7164 identifica seu processo no nível do sistema operacional.P
Pacote
Política de reinício
systemctl stop intencional mantém o serviço parado.Prioridade
Processo
sleep separados criam dois processos, embora executem o mesmo programa.Processo zumbi
R
Recarregamento
Recarregamento das definições de unidades
Reinício
Remoção completa de pacote e configuração (purge)
Remoção de dependências não utilizadas (autoremove)
Repositório
Rotação de logs
S
Serviço
SIGKILL
SIGSTOP
SIGTERM
Sinal
Soma de verificação (checksum)
Syslog
systemd
T
Tabela de firmware
Tamanho do conjunto residente (RSS)
Tarefa em primeiro plano
fg %2, atalhos de teclado como Ctrl+C atuam sobre a tarefa agora em primeiro plano.Tarefa em segundo plano
Tempo de espera por entrada e saída (I/O wait)
Teste de configuração
nginx -t bem-sucedido após uma correção dá motivo para prosseguir com o recarregamento ou reinício planejado.Transação de pacotes
Trava do gerenciador de pacotes
U
Unidade
nginx.service identifica a unidade como serviço, e não como socket ou alvo.V
Valor nice
Verificação de assinatura
Versão candidata
Versão instalada
X
xz
Z
ZIP
zip -r para empacotar um diretório e seu conteúdo para colegas que usam Windows ou macOS.- 1Linux e código aberto
- 2Linha de comando do Linux
- 3Pipes e redirecionamento no Linux
- 4Scripts de shell
- 5Usuários, grupos e permissões no Linux
- 6Processos, pacotes e serviços no Linux
- 7Sistemas de arquivos e redes no Linux
Sobre esta aula
Crie seus próprios Materiais de Estudo
Transforme suas anotações, slides e documentos em Guias de Estudo, Questões de Prática, Flashcards e mais 6 ferramentas.