===== Exemplos do comando ps =====
==== Nível Básico ====
* **Listar todos os processos do usuário atual:**
- ps
- Exibe os processos em execução no terminal do usuário atual.
* **Listar todos os processos no sistema:**
- ps -e
- Mostra todos os processos em execução no sistema.
* **Listar processos com informações detalhadas:**
- ps -ef
- Exibe todos os processos com detalhes adicionais (como PID, usuário, comando, etc.).
* **Listar processos de um usuário específico:**
- ps -u nome_usuario
- Exibe os processos pertencentes a um usuário específico.
* **Exibir o PID de um processo específico:**
- ps -C nome_processo
- Exibe o PID de um processo com o nome fornecido.
==== Nível Intermediário ====
* **Listar processos ordenados por uso de CPU:**
- ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu
- Lista todos os processos, exibindo PID, PPID, comando, uso de memória e CPU, ordenados pelo maior uso de CPU.
* **Listar processos com árvore hierárquica:**
- ps -e --forest
- Mostra os processos organizados em uma estrutura hierárquica, destacando a relação entre processos pai e filho.
* **Exibir processos que pertencem a um grupo de processos específico:**
- ps -e --group nome_grupo
- Lista todos os processos pertencentes a um grupo específico.
* **Filtrar processos pelo nome e exibir o comando completo:**
- ps -C nome_processo -o pid,cmd
- Exibe o PID e o comando completo dos processos com o nome especificado.
* **Listar os processos mais antigos em execução:**
- ps -eo pid,etime,cmd --sort=etime
- Lista todos os processos, exibindo o tempo de execução (ETIME) e o comando, ordenados pelos processos mais antigos.
==== Nível Avançado ====
* **Monitorar o uso de memória de um processo específico:**
- ps -p PID -o %mem,%cpu,cmd
- Monitora o uso de memória e CPU de um processo com um PID específico.
* **Exibir todos os processos de um terminal (TTY) específico:**
- ps -t tty1
- Mostra os processos que estão sendo executados no terminal `tty1`.
* **Mostrar processos de um grupo de usuários específico (GID):**
- ps -eo pid,uid,gid,cmd --group GID
- Exibe os processos pertencentes a um grupo de usuários específico, identificado pelo GID.
* **Listar processos e seus respectivos threads:**
- ps -eLf
- Exibe todos os processos junto com seus threads (filamentos), mostrando informações detalhadas de cada thread.
* **Monitorar o tempo de execução de um processo:**
- ps -p PID -o etime,etime=RUNNING_TIME
- Exibe o tempo total de execução de um processo específico.
==== Nível Especializado ====
* **Exibir processos zumbis:**
- ps -e -o stat,ppid,pid,cmd | grep "Z"
- Lista todos os processos zumbis (processos que terminaram, mas ainda estão no sistema).
* **Exibir processos que estão em espera de I/O:**
- ps -eo pid,stat,cmd | grep "D"
- Lista processos que estão em estado de espera (I/O wait), identificados pelo estado "D".
* **Mostrar processos com seus limites de memória (cgroups):**
- ps -eo pid,cmd,pmem --sort=-pmem | head -n 10
- Exibe os processos que mais consomem memória, ordenados e limitados aos 10 primeiros.
* **Monitorar um processo específico continuamente com `watch`:**
- watch -n 1 'ps -p PID -o %cpu,%mem,cmd'
- Atualiza a cada segundo a exibição de informações do uso de CPU e memória de um processo específico.
* **Listar processos que estão sendo executados como root:**
- ps -U root -u root -N
- Lista todos os processos que estão sendo executados pelo usuário root.
* **Exibir processos com uma saída customizada usando cabeçalhos personalizados:**
- ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem --header
- Exibe os processos, ordenados pelo uso de memória, com cabeçalhos customizados.
* **Listar processos em execução dentro de um container (usando namespaces):**
- ps --ns 4026531836 -e
- Exibe processos que estão sendo executados em um namespace específico (útil para containers).
* **Exibir processos e registrar em um arquivo de log com timestamp:**
- ps -eo pid,ppid,cmd,%mem,%cpu >> /var/log/process_log_$(date +\%Y\%m\%d).log
- Salva a lista de processos em um arquivo de log, incluindo um timestamp no nome do arquivo.