Kako si ogledati, iskati in počistiti zgodovino ukazov v PowerShellu in CMD

Zadnja posodobitev: 14/08/2025
Avtor: Isaac
  • PowerShell Združuje zgodovino sej in PSReadLine za vztrajnost in napredno iskanje med sejami.
  • Upravljajte PowerShell z možnostmi Get/Invoke/Add/Clear-History, bližnjicami (F7, F8, F9, Ctrl+R/S) in PSReadLine.
  • CMD ponuja F7 in tipko DSK za ogled, izvoz in prilagajanje velikosti zgodovine, čeprav je to mogoče le na sejo.
  • Nadzor z dogodki 4688/4689 vam omogoča beleženje procesov in ukaznih vrstic na sistemski ravni.

Zgodovina ukazov v sistemu Windows

Preverjanje tega, kar smo vtipkali v konzolo, je čisto zlato. ko dokumentiramo, ponavljamo naloge ali popravljamo napake. V Windows CMD in PowerShell obstajata hkrati in vsak od njiju obravnava zgodovino ukazi na drugačen način, z bližnjicami, možnostmi iskanja, izvoza in brisanja, ki jih je vredno obvladati.

V tem praktičnem in zelo popolnem vodniku Naučili se boste, kako si ogledati, iskati, izvoziti, uvoziti in izbrisati zgodovino v PowerShellu in CMD, kako deluje trajna zgodovina PSReadLine, kaj ponujajo stikala Clear-History, katere bližnjice pospešijo vaše delo in kako revidirati procese z dogodkoma 4688 in 4689, če potrebujete forenzični dnevnik.

PowerShell proti CMD: Kako deluje njuna zgodovina

PowerShell in CMD nista v isti ligi Ko govorimo o zgodovini, CMD shrani ukaze le za čas aktivne seje, medtem ko PowerShell združuje vgrajeno zgodovino sej s trajno zgodovino, ki jo vzdržuje modul PSReadLine.

Vgrajena zgodovina sej PowerShella Je nestanovitna in se izbriše, ko zapremo konzolo; poizveduje se z ukazom Get-History in se upravlja z ukazi »cmdlet«, kot so Invoke-History, Add-History ali Clear-History. Spremenljivka $MaximumHistoryCount privzeto omejuje število vnosov in je običajno nastavljena na 4096.

PSReadLine shrani datoteko zgodovine za vsakega uporabnika in gostiteljain vzdržuje zgodovino med sejami. Ta datoteka, ki je na voljo od različice PowerShell 5.0, omogoča navigacijo s puščicama gor in dol ter izvajanje postopnega iskanja z bližnjicami na tipkovnici.

Ogled in iskanje zgodovine v PowerShellu

Get-History je vrata do zgodovine sejPrikaže ID, ukazno vrstico in vrstni red izvajanja; njegov vzdevek je 'h'. Vendar pa odraža le dogodke v trenutni seji, ne pa trajne datoteke PSReadLine.

Get-History

P bližnjice na tipkovnici na konzoli prihranite časPuščica gor za prejšnje ukaze, puščica dol za naslednje, F7 za seznam v oknu, ESC za zapiranje, F8 za iskanje po predponi (vnesite in pritisnite F8) in F9 za izvajanje po ID-ju.

  Vrhunski vodnik po lastnostih bližnjic v sistemu Windows: Vse, kar morate vedeti

Povratno iskanje, zelo uporabnoCtrl+R išče nazaj v zgodovini z vnosom dela ukaza, Ctrl+S pa išče naprej. PSReadLine omogoča tudi iskanje z '#string' in preskakovanje med zadetki s pritiskom na Tab.

Vrstni red zgodovine se morda zdi nenavadenPowerShell doda ukaze, ko se končajo, ne pa ko jih vnesete, v ugnezdenih pozivih pa se nekateri ne zabeležijo, dokler se ne vrnete na prejšnjo raven, kar je lahko zmedeno med dolgimi zagoni.

Trajna zgodovina s PSReadLine

PSReadLine vzdržuje trajen zapis v besedilni datoteki za vsakega uporabnika in gostitelja, kar zagotavlja, da je mogoče prejšnje ukaze obnoviti po zapiranju in ponovnem odprtju PowerShella.

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

Njegovo vedenje je mogoče poizvedovati in spreminjati z ukazoma Get-PSReadLineOption in Set-PSReadLineOption.To vam omogoča, da med drugimi nastavitvami konfigurirate vidike, kot so podvojitve, občutljivost na velike in male črke, pot in slog shranjevanja.

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

Ključne možnosti, ki jih je treba upoštevati:

  • ZgodovinaBrezPodvojenihVnosov: Izognemo se podvojenim vnosom, zmanjšanje podvajanj
  • MaximumHistoryCount: Nadzoruje največje število shranjenih ukazov
  • HistorySearchCursorMovesToEnd: Prilagodi položaj kazalca pri iskanju
  • HistorySearchCaseSensitive: izvaja iskanja z razlikovanjem med velikimi in malimi črkami
  • HistorySavePath: Določa pot do datoteke zgodovine
  • HistorySaveStyle: Določa, kdaj se zgodovina shrani, možnosti vključujejo SaveIncrementally, SaveAtExit in SaveNothing

Prilagodimo ga lahko z uporabo Set-PSReadLineOptionNa primer, če želite shraniti samo ob izhodu in zmanjšati število zapisov na disk:

Set-PSReadLineOption -HistorySaveStyle SaveAtExit

Velikost zgodovine lahko nadzorujete tudi z $MaximumHistoryCountČe ga želite omejiti na 100 ukazov, prilagodite spremenljivko in znova zaženite PowerShell; če ga želite ohraniti, ga dodajte v svoj profil PowerShell.

$MaximumHistoryCount = 100

Brisanje, filtriranje in upravljanje zgodovine v PowerShellu

Počisti zgodovino počisti zgodovino aktivne seje, brez vpliva na trajno datoteko PSReadLine. Uporablja se za začetek od začetka ali brisanje določenih vnosov po ID-ju, vzorcu, količini ali starosti.

Glavna sintaksa z nabori parametrov:

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

Uporabljeni parametri-Id za brisanje po identifikatorju, -CommandLine za natančne vzorce ali nadomestne znake, -Count za število vnosov in -Newest za obrnjeni vrstni red in brisanje najnovejših vnosov. Podpira tudi način potrditve in simulacije z -WhatIf.

  Kako počistiti zaslon v konzoli Windows: razloženi vsi načini

Primer: brisanje vse zgodovine v aktivni seji:

Get-History
Clear-History
Get-History

Primer: brisanje zadnjih 5 vnosov z -Count in -Newest:

Clear-History -Count 5 -Newest
Get-History

Primer: Odstranite vnose, ki ustrezajo vzorcem z -CommandLine:

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

Primer: brisanje po določenih ID-jih:

Clear-History -Id 3, 5
Get-History

Primer: kombiniranje -Id in -Count Za zaporedno brisanje iz določenega ID-ja:

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

Ne pozabiteZ -Count in -Id odstrani iz vključenega ID-ja, z -CommandLine pa odstrani ujemanja po vrstnem redu in privzeto odstrani najstarejše vnose, razen če uporabite -Newest.

Zagon in nalaganje ukazov iz zgodovine v PowerShellu

Invoke-History izvede vnos v zgodovino brez potrebe po prepisovanju. Njegov vzdevek je 'r'. Brez parametrov ponovi zadnji ukaz; z ID-jem izvede natanko ta ukaz:

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

Zgodovino lahko tudi izvozite in uvozite. Za dokumentiranje ali skupno rabo postopkov. Izvozite v CSV ali Clixml in ponovno uvozite tako, da ga dodate z 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
Povezani članek:
Kako obvladati zgodovino zanesljivosti v PowerShellu: upravljanje, revidiranje in analiza

Ogled in upravljanje zgodovine v CMD

CMD hrani samo eno zgodovino med aktivno sejoNavigirate lahko s puščicama gor in dol, za navigacijo uporabite PgUp in PgDn, za odpiranje okna z vsemi shranjenimi ukazi pa pritisnite F7; ESC zapre to okno.

Druge uporabne bližnjice v CMD: F9 za zahtevo po številki ukaza na prikazanem seznamu in F8 za iskanje zadetkov, ki se začnejo s tem, kar ste do sedaj vnesli v vrstico.

Doskey širi zmogljivosti: omogoča ogled celotne zgodovine z ukazom »doskey /history« ali shranjevanje v preusmerjeno datoteko, npr. »doskey /history > C:\cmd_history.txt«. Velikost pomnilnika lahko prilagodite tudi z ukazom /listsize=100.

Brisanje zgodovine v pomnilniku, uporabite bližnjico na tipkovnici Alt+F7. Ne pozabite, da se ob zaprtju CMD vaša zgodovina izgubi, razen če ste jo predhodno izvozili.

Za močnejšo vztrajno zgodovino v CMD, lahko uporabite orodja, kot je Clink, ki znatno izboljšajo upravljanje zgodovine in iskanje, ali Windows terminal, ki integrira več konzol in podpira PowerShell in WSL2.

  Za kaj je namenjen pregledovalnik datotek Plus?: uporaba, funkcije in alternative

Nadzorni ukazi in procesi s pregledovalnikom dogodkov

Za celovit in centraliziran nadzorUstvarjanje procesov lahko beležite z naprednim nadzorom. Dogodek 4688 zabeleži vsak zagnani proces z uporabnikom, kontekstom in podatki o ukazni vrstici; 4689 označuje njegovo prekinitev.

Aktivirajte »Ustvarjanje revizijskega procesa« V lokalnem varnostnem pravilniku v razdelku z naprednim nadzorom nastavite Uspeh in/ali Neuspeh po svojih željah.

Nato prilagodite pravilnik v datoteki gpedit.msc v Konfiguracija računalnika > Nastavitve sistema Windows > Varnostne nastavitve > Napredna konfiguracija pravilnikov za nadzor > Pravilniki za nadzor sistema > Podrobno sledenje in ga omogočite.

Za ogled teh dogodkov, odprite pregledovalnik dogodkov v sistemu Windows, pojdite na Windows Dnevniki > Varnost in filtrirajte po ID-ju 4688. Za poglobljeno analizo lahko orodja, kot je Logbinder Supercharger, olajšajo pregled.

Uporabni ukazi »cmdlet« in zgodovinske opombe v PowerShellu

Glavni ukazi »Zgodovina«: Get-History (vzdevek 'h') za ogled, Invoke-History (vzdevek 'r') za izvajanje, Add-History za dodajanje ukazov in Clear-History (vzdevek 'clhy') za brisanje. Zgodovina PowerShell in PSReadLine obstajata hkrati, vendar Clear-History vpliva samo na zgodovino aktivne seje.

Končne opombe o čiščenju zgodovine: ne sprejema vhodnih podatkov prek cevi, ne vrne izhoda, podpira nadomestne znake v -CommandLine in podpira CommonParameters, kot sta -Verbose in -ErrorAction, za dodaten nadzor.

Ukazi lupine: za uporabo v naslovni vrstici Raziskovalca datotek sistema Windows 11
Povezani članek:
Ukazi lupine in CMD za naslovno vrstico v sistemu Windows 11

Obvladovanje zgodovine v PowerShellu in CMD Omogoča hitro pridobivanje ukazov, odpravljanje napak v postopkih, dokumentiranje in nadzor. PSReadLine zagotavlja vztrajnost in iskalno moč, medtem ko Clear-History nadzoruje, kateri ukazi ostanejo v seji, dogodka 4688 in 4689 pa dvigneta beleženje na raven varnosti in skladnosti.