Windows PowerShell có tính năng History (Lịch sử) tích hợp nhớ tất cả các lệnh bạn đã thực thi khi sử dụng nó. Mặc dù nó nên nhớ lịch sử của phiên hoạt động (active session), tôi thấy nó giữ lại nhiều hơn vậy. Trong bài viết này, tôi sẽ chỉ cách xem lịch sử lệnh PowerShell và sử dụng nó một cách thông minh.

Cách xem Lịch sử lệnh PowerShell
Lợi ích lớn nhất của tính năng Lịch sử là bạn không phải gõ lại để thực thi một lệnh cụ thể đã chạy một lần. Tuy nhiên, lướt qua hàng trăm lệnh không giúp ích nhiều. Làm sao để tìm kiếm trong chúng hoặc chạy một lệnh cụ thể mà bạn chỉ nhớ một phần? Làm theo các phương pháp sau.
- Phương pháp Bàn phím (Keyboard Method)
- Tìm kiếm Tiến (Forward) hoặc Lùi (Backward) trong Lịch sử PowerShell
- Xem toàn bộ Lịch sử của phiên này
- Gọi một lệnh cụ thể từ Lịch sử lệnh PowerShell
- Tìm kiếm trong Lịch sử
Cuối cùng, chúng tôi cũng giải thích cách xóa, xuất (export) và nhập (import) Lịch sử lệnh PowerShell. Rất tiện nếu bạn cần thực thi cùng các lệnh thường xuyên.
1] Phương pháp Bàn phím

Tôi chắc bạn đã dùng Command Prompt ít nhất một lần nếu dùng Windows một thời gian. Nếu bạn dùng phím mũi tên lên/xuống, bạn có thể đi qua các lệnh đã thực thi. Cái tương tự cũng áp dụng cho PowerShell. Nhưng đây là phần thú vị. Nếu bạn nhớ một phần lệnh, đây là cách tìm kiếm.
- Gõ phần lệnh bạn nhớ
- Nhấn F8, và tiếp tục nhấn F8 cho đến khi tìm thấy.
- Thuật ngữ tìm kiếm sẽ được làm nổi bật bằng màu xanh 형광, tiếp theo là phần còn lại của lệnh.
Nhược điểm duy nhất là thuật ngữ tìm kiếm phải là đầu của lệnh.
2] Tìm kiếm Tiến hoặc Lùi trong Lịch sử

Nếu bạn muốn tìm kiếm tiến hoặc lùi trong Lịch sử, bạn có thể dùng Ctrl + R và Ctrl + S. Cái trước cho phép tìm kiếm lùi trong Lịch sử trong khi cái sau tìm kiếm tiến. Ngay khi bạn dùng phím tắt, bạn sẽ thấy một đoạn mã ở dưới cùng (bck-i-search hoặc fwd-i-search). Gõ nội dung bạn muốn tìm, và ngay cả khi văn bản thuộc về giữa lệnh, nó cũng sẽ tìm được. Nó tốt hơn nhiều so với phương pháp F8 ở trên.
3] Xem toàn bộ Lịch sử lệnh PowerShell của phiên này

Gõ History (hoặc Get-History), và nhấn Enter. Bạn sẽ thấy tất cả các lệnh đã thực thi trong phiên hiện tại. Mặc dù bạn có thể xem các lệnh thực thi trong phiên trước bằng phím mũi tên, lệnh History sẽ không có chúng. Nếu bạn nhấn phím "H" và Enter, nó cũng sẽ hiển thị lịch sử lệnh. Coi đây như phím tắt cho lệnh History.
4] Gọi một lệnh cụ thể từ Lịch sử

Nếu bạn chú ý, hình ảnh trên có ID bên cạnh mỗi lệnh. Nếu bạn muốn thực thi một lệnh cụ thể từ danh sách, bạn cần dùng Invoke-History.
- Ghi nhớ ID của lệnh bạn muốn thực thi
- Gõ Invoke-History <ID>. Thay <ID> bằng số chính xác
- Nhấn Enter, và nó sẽ thực thi lệnh đó từ Lịch sử.
5] Tìm kiếm trong Lịch sử

Cách dễ nhất để tìm kiếm trong Lịch sử lệnh là dùng phương pháp Select-String trên đầu ra History (Get-History).
- Gõ lệnh sau, và thay "Get" bằng thuật ngữ bạn muốn tìm
- Get-History | Select-String -Pattern "Get."
- Nó sẽ tiết lộ tất cả các lệnh khớp với từ khóa tìm kiếm.
Vì bạn có ID kèm theo, bạn có thể dùng lệnh Invoke-History để thực thi ngay lập tức.
Xóa, Xuất và Nhập Lịch sử PowerShell
Để xóa tất cả lệnh khỏi Lịch sử, bạn chỉ cần thực thi lệnh "Clear-History." Lưu ý rằng ngay sau khi làm vậy, bạn vẫn có thể truy cập lệnh bằng phím mũi tên lên/xuống.
Để xuất tất cả các lệnh, bạn có thể dùng định dạng Export-Clixml hoặc Export-CSV. Đây là lệnh mẫu:
Get-History | Export-Clixml -Path <Path>\PSHistorycommands.xml Get-History | Export-Csv -Path <Path>\PSHistorycommands.csv
Để nhập các lệnh này trở lại phiên khác hoặc phiên mới, dùng lệnh sau:
Add-History -InputObject (Import-Clixml -Path <Path>\PSHistorycommands.xml) Add-History -InputObject (Import-Csv -Path <Path>\PSHistorycommands.csv)
Bạn có thể mở tệp CSV hoặc XML này bất cứ lúc nào để xem Lịch sử lệnh PowerShell ngay lập tức. Điều này tóm gọn hầu như mọi thứ về Lịch sử lệnh PowerShell, và cách bạn có thể tái sử dụng chúng bằng cách tìm kiếm hoặc nhập chúng trở lại ngày mai.
