Como usar o comando principal do Linux (e compreender sua saída)

Um prompt de terminal em um laptop com Linux.
Fatmawati Achmad Zaenuri / Shutterstock

O topcomando Linux é um dos pilares dos sistemas operacionais do tipo Unix. Sua tela utilitária contém informações úteis sobre os processos em execução do sistema e o uso de recursos. Mas, você sabia que ele também suporta cores, realces e até gráficos elementares?

Um painel repleto de informações

O topcomando  existe desde 1984 e há muitas variantes dele. Para este artigo, estamos executando o Ubuntu 18.04 com todos os patches aplicados e a versão 3.3.12 de top. Também fizemos referência cruzada de tudo em dois outros computadores de teste, um executando o Fedora e o outro Manjaro.

O topdisplay padrão armazena o máximo de informações possível na janela do terminal. A informação é um pré-requisito para a administração, então isso é uma coisa boa. Uma das características de um bom administrador de sistema é a capacidade de identificar problemas emergentes e lidar com eles antes que afetem o serviço. top oferece um painel de muitas métricas de sistema diferentes que o ajudam a fazer exatamente isso.

A exibição é melhor descrita como funcional, em vez de intuitiva, e as abreviações são abundantes. Quando você se encontra pela primeira vez top, parece apertado, enigmático e desagradável. Com alguns pressionamentos de tecla, no entanto, você pode ajustar o conteúdo e o formato da tela de acordo com o que é importante para você.

Verifique sua versão do top

Para verificar qual versão do top você possui, digite o seguinte em uma janela de terminal:

top -v

top -v em uma janela de terminal.

Se sua versão for muito posterior a 3.3.12, ela pode não oferecer suporte a todos os recursos que iremos abordar.

A tela padrão

Você pode começar topdigitando o seguinte e pressionando “Enter”:

topo

topo em uma janela de terminal.

A exibição padrão contém duas áreas de informações: a área de resumo (ou painel) e a área de tarefas (ou lista de processos). Por padrão, topatualiza sua exibição a cada três segundos – você notará uma leve oscilação quando isso acontecer.

a exibição padrão superior em uma janela de terminal.

A primeira linha de números no painel inclui o tempo, há quanto tempo seu computador está funcionando, o número de pessoas conectadas e qual foi a média de carga nos últimos um, cinco e 15 minutos. A segunda linha mostra o número de tarefas e seus estados: em execução, parada, dormindo ou  zumbi .

A terceira linha exibe os seguintes valores  da unidade de processamento central (CPU):

  • us: Quantidade de tempo que a CPU gasta executando processos para pessoas no “espaço do usuário”.
  • sy: Quantidade de tempo gasto executando processos de “espaço do kernel” do sistema.
  • ni: Quantidade de tempo gasto na execução de processos com um valor legal definido manualmente.
  • id: Quantidade de tempo ocioso da CPU.
  • wa: Quantidade de tempo que a CPU gasta esperando a conclusão da E / S.
  • oi: Quantidade de tempo gasto em manutenção de interrupções de hardware.
  • si: Quantidade de tempo gasto em manutenção de interrupções de software.
  • st: Quantidade de tempo perdido devido à execução de máquinas virtuais (“tempo de roubo”).
Recomendado:  Como fazer texto diagonal no Word

A quarta linha mostra a quantidade total ( em kibibytes ) de memória física e quanto está livre, usada e armazenada em buffer ou em cache.

A quinta linha mostra a quantidade total (também em kibibytes) de memória swap e quanto está livre, usado e disponível. O último inclui memória que deve ser recuperada de caches.

Os títulos das colunas na lista de processos são os seguintes:

  • PID: ID do processo.
  • USUÁRIO: O dono do processo.
  • PR: Prioridade do processo.
  • NI: O bom valor do processo.
  • VIRT: Quantidade de memória virtual utilizada pelo processo.
  • RES: Quantidade de memória residente usada pelo processo.
  • SHR: Quantidade de memória compartilhada usada pelo processo.
  • S: Status do processo. (Veja a lista abaixo para os valores que este campo pode assumir).
  • % CPU: a proporção do tempo de CPU usado pelo processo desde a última atualização.
  • % MEM: o compartilhamento de memória física usado.
  • TIME +: Tempo total de CPU usado pela tarefa em centésimos de segundo.
  • COMANDO: O nome do comando ou linha de comando (nome + opções).

Os valores de memória são mostrados em kibibytes. A COMMANDcoluna está fora da tela, à direita – não cabia na imagem acima, mas veremos isso em breve.

O status do processo pode ser um dos seguintes:

  • D: Sono ininterrupto
  • R: Correndo
  • S: Dormindo
  • T: rastreado (parado)
  • Z: Zumbi

Pressione Q para sair  top.

Rolando a tela

Você pode pressionar as setas para cima ou para baixo, Home, End e as teclas Page Up ou Down para mover para cima e para baixo e acessar todos os processos.

Pressione a seta para a esquerda ou direita para mover a lista de processos para os lados. Isso é útil para ver todas as colunas que não cabem nos limites da janela do terminal.

Na imagem abaixo, pressionamos a seta para a direita algumas vezes para ver a COMMANDcoluna.

topo com a lista de processos rolada lateralmente para revelar a coluna de comando, em uma janela de terminal.

Alterando as unidades numéricas

Vamos mudar as unidades de exibição para valores sensíveis. Pressione E maiúsculo para percorrer as unidades usadas para exibir os valores de memória nestas opções: kibibytes, mebibytes, gibibytes, tebibytes, pebibytes e exbibytes. A unidade em uso é o primeiro item nas linhas quatro e cinco.

Pressione “e” minúsculo para fazer a mesma coisa para os valores na lista de processos: kibibytes, mebibytes, gibibytes, tebibytes e pebibytes.

Pressionamos E para definir as unidades de memória do painel para gibibytes e “e” para definir as unidades de memória da lista de processos para mebibytes.

topo com gibibytes e mebibytes usados ​​para unidades de memória em uma janela de terminal.

Alterando o Conteúdo do Resumo

Você pode alterar as configurações de exibição das linhas no painel ou removê-las completamente.

Pressione l para ativar ou desativar a linha de resumo de carga (a primeira linha). Removemos a linha de resumo de carga na imagem abaixo.

Linha de resumo de carga removida do topo em uma janela de terminal.

Se você tiver uma CPU multi-core , pressione 1 para alterar a exibição e ver as estatísticas individuais de cada CPU. Existem quatro CPUs em nosso computador. Pressionamos 1 para ver o quão duro cada um deles está trabalhando.

superior com a tela da CPU expandida para ver estatísticas individuais da CPU, em uma janela de terminal.

Claro, isso ocupa mais espaço na tela dentro da janela do terminal.

Você pode pressionar “t” para trocar as exibições da CPU para gráficos ASCII simples que mostram a porcentagem de uso de cada CPU.

topo com gráficos ASCII mostrando a carga de trabalho da CPU, em uma janela de terminal.

Para cada CPU, topexibe três números e o gráfico. Da esquerda para a direita, os números são os seguintes:

  • O combinado use a niporcentagem (espaço do usuário + tarefas com configurações agradáveis ​​não padronizadas).
  • A syporcentagem (espaço do kernel).
  • O total (arredondado para um valor inteiro).
Recomendado:  O Echo Auto atualizado da Amazon adiciona Alexa ao seu carro

Pressione “t” novamente para alterar a exibição do gráfico para caracteres de bloco sólido.

topo com gráficos de bloco ASCII mostrando a carga de trabalho da CPU, em uma janela de terminal.

Pressione “t” mais uma vez para remover a exibição da CPU e a linha de resumo da tarefa completamente.

topo com a CPU e as linhas de resumo da tarefa removidas, em uma janela de terminal.

Pressione “m” para percorrer a memória e trocar as linhas de memória por diferentes opções de exibição. O primeiro toque substitui as estatísticas por um gráfico ASCII.

topo mostrando gráficos ASCII para as estatísticas de memória, em uma janela de terminal.

Outra pressão altera o gráfico para bloquear caracteres.

topo mostrando gráficos de bloco ASCII para as estatísticas de memória, em uma janela de terminal.

Pressione “m” mais uma vez para remover todas as linhas da CPU.

topo com a memória e as linhas de swap removidas do display, em uma janela de terminal.

Se quiser, você pode ver gráficos de CPU e memória ao mesmo tempo. Basta pressionar “t” e “m” até obter a combinação desejada.

topo com gráficos ASCII para CPU e memória, em uma janela de terminal.

Cor e realce

Você pode pressionar “z” para adicionar cor ao visor.

topo com um display colorido, em uma janela de terminal.

Quando você pensa nisso top, provavelmente não pensa em telas coloridas e gráficos ASCII, mas eles estão embutidos.

Pressione “y” para destacar as tarefas em execução na lista de processos. Pressionar “x” realça a coluna usada para classificar a lista de processos. Você pode alternar entre o realce de texto em negrito e reverso pressionando “b”.

topo com tarefa em execução e coluna classificada destacada usando texto invertido, em uma janela de terminal.

Classificando por Colunas

Por padrão, a lista de processos é classificada pela %CPUcoluna. Você pode alterar a coluna de classificação pressionando o seguinte:

  • P: A %CPUcoluna.
  • M: A %MEMcoluna.
  • N: a PIDcoluna.
  • T: A TIME+ coluna.

Na imagem abaixo, a lista de processos é classificada pela PIDcoluna.

topo com o processo listado classificado pela coluna PID, em uma janela de terminal.

Veja a linha de comando completa

Pressionar “c” alterna a coluna COMANDO entre exibir o nome do processo e a linha de comando completa.

topo mostrando a linha de comando completa na coluna de comando, em uma janela de terminal.

Para ver uma “árvore” de processos que foram iniciados ou gerados por outros processos, pressione V.

Veja os processos para um único usuário

Pressione “u” para ver os processos de um único usuário. Você será solicitado a fornecer o nome ou UID .

Prompt do usuário em uma janela de terminal.

Digite o nome do UID da pessoa que deseja monitorar. Vamos digitar “dave” e clicar em “Enter”. Agora, os únicos processos na área de tarefas pertencem ao usuário dave.

top exibindo tarefas para um único usuário dave, em uma janela de terminal.

Ver apenas as tarefas ativas

Pressione I para ver apenas as tarefas ativas.

topo mostrando apenas tarefas ativas, em uma janela de terminal.

As tarefas que não consumiram nenhuma CPU desde a última atualização não serão mostradas.

Definir quantos processos exibir

Pressione “n” para limitar a exibição a um certo número de linhas, independentemente de as tarefas estarem ativas. Você será solicitado a informar o número de processos a serem exibidos.

top solicitando o número de linhas a serem exibidas, em uma janela de terminal.

Nós digitamos 10 e pressionamos Enter, então 10 processos aparecem na área de tarefas.

top exibindo dez processos na área de tarefas, em uma janela de terminal.

Renice a Process

Você pode pressionar “r” para alterar o valor adequado (prioridade)  para um processo. Você será solicitado a fornecer o ID do processo. Basta pressionar Enter para usar o ID do processo da tarefa na parte superior da janela do processo. Digitamos 7800, que é o ID do processo de uma instância do Firefox.

top solicitando o ID do processo de um processo, em uma janela de terminal.

Depois de pressionar Enter, será solicitado que você forneça o novo valor legal para aplicar ao processo. Digitamos 15 e depois pressionamos Enter.

top definindo um processo com um bom valor de 15, em uma janela de terminal.

O novo valor agradável é aplicado ao processo imediatamente.

Mate um Processo

Pressione “k” para encerrar um processo . Em seguida, você será solicitado a fornecer o ID do processo que deseja eliminar. Na verdade, você pode enviar qualquer sinal para o processo. Vamos eliminar o processo 7879, que parou de responder.

top solicitando um id de processo, em uma janela de terminal.

Você terá a chance de digitar o sinal que deseja enviar. Você pode especificá-lo por nome ou número. Se você simplesmente pressionar Enter,  top o SIGTERMsinal (matar) será enviado.

Recomendado:  Como reduzir automaticamente a duração das reuniões no Google Agenda

top solicitando um sinal para enviar, em uma janela de terminal.

Assim que você pressiona Enter, o sinal é enviado para o processo.

Personalização do display

Você também pode personalizar as cores e colunas que são exibidas. Vamos mudar a cor usada para os prompts, o padrão para o qual é vermelho.

superior mostrando um prompt vermelho claro em uma janela de terminal.

Pressione Z maiúsculo para ir para a página de configurações de cores. A parte superior da tela mostra as cores em uso pelos diferentes elementos de exibição. Para indicar qual elemento de exibição você deseja alterar, pressione um dos seguintes, que diferenciam maiúsculas de minúsculas:

  • S : Área de dados de resumo.
  • M : Mensagens e avisos.
  • H : Títulos das colunas.
  • T : Informações sobre a tarefa na lista de processos.

Pressionamos M para alterar os prompts.

página de configuração de cor superior com a opção M selecionada, em uma janela de terminal.

Para escolher uma cor, pressione um dos seguintes números:

  • 0: Preto.
  • 1: vermelho.
  • 2: Verde.
  • 3: amarelo.
  • 4: Azul.
  • 5: Magenta.
  • 6: ciano.
  • 7: Branco.

Pressionamos 6 para usar ciano.

janela de configurações de cor superior com a cor 6 selecionada, em uma janela de terminal.

Pressione Enter para salvar suas configurações. As solicitações de entrada agora estarão na cor que você selecionou.

topo com um prompt ciano, em uma janela de terminal.

Também podemos alterar as colunas exibidas na tela Gerenciamento de campos. Pressione F para entrar na tela Gerenciamento de campos.

topo mostrando a tela de gerenciamento de campos, em uma janela de terminal.

Os campos exibidos têm um asterisco ( * ) ao lado e são destacados em negrito. Pressione as setas para cima e para baixo para mover o destaque pela lista de campos.

Se você mover o destaque da parte inferior de uma coluna, ele aparecerá no topo da próxima (a menos que você esteja na parte inferior da última coluna). Se você movê-lo para fora do topo de uma coluna, ele aparecerá na parte inferior da anterior (a menos que você esteja no topo da primeira coluna).

Deslocamos o destaque para a COMMANDentrada e, em seguida, pressionamos “d” para remover o asterisco ( *). Em seguida, mudamos para a UIDentrada e pressionamos “d” para colocar um asterisco próximo a essa entrada. Isso significa que a COMMANDcoluna não será exibida, mas UIDsim.

superior exibindo a tela de gerenciamento de campo com a coluna UID selecionada em uma janela de terminal.

Enquanto o destaque está na UIDcoluna, pressionamos “s” para ordenar a lista de processos na UIDcoluna.

superior exibindo a tela de gerenciamento de campo com a coluna UID definida como a coluna de classificação em uma janela de terminal.

Pressione Enter para salvar suas configurações e então pressione “q” para sair da tela Fields Management.

topo com a coluna UID exibida e definida como a coluna de classificação em uma janela de terminal.

A UIDcoluna substituiu a COMMANDcoluna e a lista de processos é classificada por ela.

Modo de exibição alternativo

Isso funciona melhor no modo de tela inteira. Pressione A para exibir quatro áreas na lista de processos e, a seguir, pressione “a” para mover de uma área para outra.

topo com a exibição alternativa ativada em uma janela de terminal.

Cada área possui uma coleção diferente de colunas, mas cada uma também pode ser personalizada por meio da tela de Gerenciamento de Campos. Isso lhe dá a oportunidade de ter uma exibição personalizada em tela inteira mostrando informações diferentes em cada área e a capacidade de classificar cada área por uma coluna diferente.

Outras teclas

A seguir estão algumas outras chaves que você pode achar úteis top:

  • W : Salve suas configurações e personalizações para que ainda estejam em vigor na próxima vez que você iniciar  top.
  • d : Defina uma nova taxa de atualização da tela.
  • Espaço : Força toppara atualizar sua exibição agora.

Banana Top

Como vimos, toptem um repertório e tanto. Outros programas, como o htop , foram inspirados por ele, mas cada um tem sua própria visão sobre as coisas.

No entanto,  top está instalado em todos os lugares. Quando você vai a empresas para examinar redes ou servidores, frequentemente será informado de que absolutamente nada pode ser alterado nos servidores ativos. O cliente faz as regras, então você tem que usar o que já está instalado.

Mesmo se você preferir uma ferramenta de monitoramento diferente, você deve conhecê-la top. Mais cedo ou mais tarde, você provavelmente se encontrará em uma situação em que é tudo a que você terá acesso.