Como visualizar, pesquisar e limpar o histórico de comandos no PowerShell e no CMD

Última atualização: 14/08/2025
autor: Isaac
  • PowerShell Combina histórico de sessão e PSReadLine para persistência e pesquisas avançadas entre sessões.
  • Gerencie o PowerShell com Obter/Invocar/Adicionar/Limpar histórico, atalhos (F7, F8, F9, Ctrl+R/S) e opções PSReadLine.
  • CMD oferece F7 e doskey para visualizar, exportar e ajustar o tamanho do histórico, embora seja apenas por sessão.
  • A auditoria com eventos 4688/4689 permite registrar processos e linhas de comando no nível do sistema.

Histórico de comandos no Windows

Verificar o que digitamos no console é ouro puro. quando estamos documentando, repetindo tarefas ou corrigindo erros. Em Windows CMD e PowerShell coexistem e cada um lida com o histórico de comandos de uma forma diferente, com atalhos, opções de pesquisa, exportação e exclusão que vale a pena dominar.

Neste guia prático e muito completo Você aprenderá como visualizar, pesquisar, exportar, importar e excluir histórico no PowerShell e no CMD, como funciona o histórico persistente do PSReadLine, o que as opções Clear-History oferecem, quais atalhos aceleram seu trabalho e como auditar processos com os eventos 4688 e 4689 se precisar de um log forense.

PowerShell vs. CMD: Como funciona sua história

PowerShell e CMD não jogam na mesma liga Quando falamos de histórico, o CMD retém os comandos apenas durante a sessão ativa, enquanto o PowerShell combina um histórico de sessão integrado com um histórico persistente mantido pelo módulo PSReadLine.

Histórico de sessão integrado do PowerShell É volátil e é limpo quando o console é fechado; é consultado com Get-History e gerenciado com cmdlets como Invoke-History, Add-History ou Clear-History. Por padrão, a variável $MaximumHistoryCount limita o número de entradas e normalmente é definida como 4096.

PSReadLine salva um arquivo de histórico por usuário e hoste mantém o histórico entre as sessões. Este arquivo, disponível desde o PowerShell 5.0, permite navegar com as setas para cima e para baixo e realizar pesquisas incrementais usando atalhos de teclado.

Exibir e pesquisar histórico no PowerShell

Get-History é o portal para o histórico da sessãoExibe o ID, a linha de comando e a ordem de execução; seu alias é 'h'. No entanto, ele reflete apenas os eventos da sessão atual, não o arquivo PSReadLine persistente.

Get-History

Os atalhos de teclado no console economize tempo: Seta para cima para comandos anteriores, Seta para baixo para os próximos, F7 para listar em uma janela, ESC para fechar, F8 para pesquisar por prefixo (digite e pressione F8) e F9 para executar por ID.

  Como comprar licenças baratas do Windows e do Office na Espanha

Pesquisa reversa, muito útilCtrl+R pesquisa para trás no histórico digitando parte do comando, e Ctrl+S pesquisa para frente. O PSReadLine também permite pesquisar com '#string' e alternar entre as correspondências pressionando Tab.

A ordem da história pode parecer estranha: O PowerShell adiciona comandos quando eles terminam, não quando você os digita, e em prompts aninhados alguns não são registrados até você retornar ao nível anterior, o que pode ser confuso durante execuções longas.

Histórico persistente com PSReadLine

O PSReadLine mantém um registro permanente em um arquivo de texto por usuário e host, garantindo que comandos anteriores possam ser recuperados após fechar e reabrir o PowerShell.

%userprofile%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt

Seu comportamento pode ser consultado e modificado com Get-PSReadLineOption e Set-PSReadLineOptionIsso permite que você configure aspectos como duplicatas, diferenciação entre maiúsculas e minúsculas, caminho e estilo de salvamento, entre outras preferências.

Get-PSReadLineOption | Select HistoryNoDuplicates, MaximumHistoryCount, HistorySearchCursorMovesToEnd, HistorySearchCaseSensitive, HistorySavePath, HistorySaveStyle

Principais opções a considerar:

  • HistoryNoDuplicates: evita entradas duplicadas, reduzindo duplicatas
  • MaximumHistoryCount: controla o número máximo de comandos armazenados
  • HistorySearchCursorMovesToEnd: Ajusta a posição do cursor nas pesquisas
  • HistorySearchCaseSensitive: realiza pesquisas que diferenciam maiúsculas de minúsculas
  • HistorySavePath: define o caminho para o arquivo de histórico
  • HistorySaveStyle: determina quando o histórico é salvo, as opções incluem SaveIncrementally, SaveAtExit e SaveNothing

Pode ser personalizado usando Set-PSReadLineOption. Por exemplo, para salvar apenas na saída e reduzir as gravações em disco:

Set-PSReadLineOption -HistorySaveStyle SaveAtExit

Controle também o tamanho do histórico com $MaximumHistoryCountPara limitá-lo a 100 comandos, ajuste a variável e reinicie o PowerShell; para torná-lo persistente, adicione-o ao seu perfil do PowerShell.

$MaximumHistoryCount = 100

Limpar, filtrar e gerenciar histórico no PowerShell

Clear-History limpa o histórico da sessão ativa, sem afetar o arquivo PSReadLine persistente. Usado para começar do zero ou excluir entradas específicas por ID, padrão, quantidade ou idade.

Sintaxe principal com conjuntos de parâmetros:

Clear-History  <int[]>]  <int>]    
Clear-History  <int>] >]    

Parâmetros utilizados-Id para excluir por identificador, -CommandLine para padrões exatos ou curingas, -Count para o número de entradas e -Newest para inverter a ordem e excluir as entradas mais recentes. Também suporta modo de confirmação e simulação com -WhatIf.

  Como alterar facilmente o brilho da tela no Windows 11

Exemplo: apagar todo o histórico na sessão ativa:

Get-History
Clear-History
Get-History

Exemplo: excluir as últimas 5 entradas com -Count e -Newest:

Clear-History -Count 5 -Newest
Get-History

Exemplo: remover entradas que correspondem a padrões com -CommandLine:

Clear-History -CommandLine '*Help*', '*Syntax'
Get-History

Exemplo: excluir por IDs específicos:

Clear-History -Id 3, 5
Get-History

Exemplo: combinando -Id e -Count Para excluir em sequência de um ID específico:

Clear-History -Id 7 -Count 5
Get-History

Lembre-se: -Count com -Id remove do Id incluído, com -CommandLine ele remove as correspondências em ordem e, por padrão, remove as entradas mais antigas, a menos que você use -Newest.

Executar e carregar comandos do histórico no PowerShell

Invoke-History executa uma entrada de histórico sem precisar reescrevê-lo. Seu alias é 'r'. Sem parâmetros, ele repete o último comando; com um Id, ele executa exatamente esse comando:

Invoke-History          # Repetir la última entrada
Invoke-History -Id 12   # Ejecutar la entrada 12

Você também pode exportar e importar o histórico. Para documentar ou compartilhar procedimentos. Exporte para CSV ou Clixml e importe novamente adicionando com Add-History:

Get-History | Export-Csv -Path .\historial.csv -NoTypeInformation
Get-History | Export-Clixml -Path .\historial.xml

$h = Import-Clixml .\historial.xml
$h | Add-History
powershell
Artigo relacionado:
Como dominar o histórico de confiabilidade no PowerShell: gerenciamento, auditoria e análise

Visualizar e gerenciar histórico no CMD

O CMD mantém apenas um histórico durante a sessão ativaVocê pode navegar com as setas para cima e para baixo, usar PgUp e PgDn para navegar e pressionar F7 para abrir uma janela com todos os seus comandos salvos; ESC fecha essa janela.

Outros atalhos úteis no CMD: F9 para solicitar o número do comando na lista exibida e F8 para procurar correspondências que comecem com o que você digitou até agora na linha.

Doskey expande capacidades: permite visualizar o histórico completo com 'doskey /history' ou salvá-lo em um arquivo redirecionado, por exemplo, 'doskey /history > C:\cmd_history.txt'. Você também pode ajustar o tamanho da memória com /listsize=100.

Para limpar o histórico na memória, use o atalho de teclado Alt+F7. Não se esqueça de que, ao fechar o CMD, seu histórico será perdido, a menos que você o tenha exportado anteriormente.

Para ter um histórico persistente mais poderoso no CMD, você pode usar ferramentas como o Clink, que melhoram significativamente o gerenciamento de histórico e a pesquisa, ou o Windows terminal, que integra vários consoles e suporte para PowerShell e WSL2.

  Tutorial do ShareX: Guia completo, dicas e alternativas

Auditar comandos e processos com o Visualizador de Eventos

Para controle abrangente e centralizadoVocê pode registrar a criação de processos usando auditoria avançada. O evento 4688 registra cada processo iniciado, com informações de usuário, contexto e linha de comando; o evento 4689 indica seu término.

Ativar 'Criação de processo de auditoria' na política de segurança local, na seção de auditoria avançada, definindo Sucesso e/ou Falha como preferir.

Em seguida, ajuste a política em gpedit.msc em Configuração do computador > Configurações do Windows > Configurações de segurança > Configuração avançada da política de auditoria > Políticas de auditoria do sistema > Rastreamento detalhado e habilite-o.

Para visualizar esses eventos, abra o Visualizador de Eventos no Windows, navegue até o Windows Logs > Segurança e filtrar por ID 4688. Para uma análise mais aprofundada, ferramentas como o Logbinder Supercharger podem facilitar a revisão.

Cmdlets úteis e notas históricas no PowerShell

Principais Cmdlets de Histórico: Get-History (também conhecido como 'h') para visualizar, Invoke-History (também conhecido como 'r') para executar, Add-History para adicionar comandos e Clear-History (também conhecido como 'clhy') para excluir. Os históricos do PowerShell e do PSReadLine coexistem, mas o Clear-History afeta apenas o histórico da sessão ativa.

Notas finais sobre Clear-History: não aceita entrada canalizada, não retorna saída, suporta curingas em -CommandLine e suporta CommonParameters como -Verbose e -ErrorAction para controle adicional.

Comandos de shell: para uso na barra de endereços do Explorador de Arquivos do Windows 11
Artigo relacionado:
Comandos Shell e CMD para a barra de endereços no Windows 11

Dominando a história no PowerShell e no CMD facilita a recuperação rápida de comandos, depuração de procedimentos, documentação e auditoria. O PSReadLine fornece persistência e poder de busca, enquanto o Clear-History controla quais comandos permanecem na sessão, e os eventos 4688 e 4689 elevam o registro a um nível de segurança e conformidade.