0
Azure PowerShell會記住命令行歷史記錄(幾十年後幾乎可用的shell),但不幸的是它在退出和重新啓動後會很快遭受完全失憶症。所以它不能在會話之間記住它。如何讓Azure PowerShell記住命令行歷史記錄?
有什麼辦法讓Azure PowerShell記住下一個會話中的命令行歷史嗎?
Azure PowerShell會記住命令行歷史記錄(幾十年後幾乎可用的shell),但不幸的是它在退出和重新啓動後會很快遭受完全失憶症。所以它不能在會話之間記住它。如何讓Azure PowerShell記住命令行歷史記錄?
有什麼辦法讓Azure PowerShell記住下一個會話中的命令行歷史嗎?
我根據this article電流法:
第1步:製作PowerShell配置文件,see Example 3 here。如果它已存在,請跳到步驟2.
第2步:將其添加到您的配置文件。
$MaximumHistoryCount = 1KB
if (!(Test-Path "$((Get-ChildItem $PROFILE).DirectoryName)\history.csv"))
{ New-Item "$((Get-ChildItem $PROFILE).DirectoryName)\history.csv" -ItemType File -Force
}
function bye
{ Get-History -Count $MaximumHistoryCount | Export-CSV -Path "$((Get-ChildItem $PROFILE).DirectoryName)\history.csv"
exit
}
if (Test-path "$((Get-ChildItem $PROFILE).DirectoryName)\history.csv")
{ Import-CSV "$((Get-ChildItem $PROFILE).DirectoryName)\history.csv" | Add-History
}
register-engineevent PowerShell.Exiting -action { bye }
注:
Get-History
和Invoke-History
來運行先前的命令。#[tab]
,例如:鍵入#5然後按tab鍵展開原始命令。exit
,而不是關閉窗口的歷史,纔會保存。額外的資源和一些替代方法:
PSReadLine提供了 「歷史的自動保存,包括跨現場會議共享的歷史。」 PSReadLine除了保存歷史記錄外,還做了很多工作。另外,如果你想要在歷史中上下更有用,最後一個列出了更多的鍵綁定,使它更有用。
這是一個非常翔實的答案!它讓我對我通常回答的華夫餅有點羞愧;) –