about_PSReadLine
Kısa Açıklama
PSReadLine, PowerShell konsolunda geliştirilmiş bir komut satırı düzenleme deneyimi sağlar.
Uzun Açıklama
PSReadLine 2.1, PowerShell konsolu için güçlü bir komut satırı düzenleme deneyimi sağlar. Şu olanakları sunar:
- Komut satırı söz dizimi renklendirmesi
- Söz dizimi hatalarının görsel göstergesi
- Daha iyi bir çok satırlı deneyim (hem düzenleme hem de geçmiş)
- Özelleştirilebilir anahtar bağlamaları
- Cmd ve Emacs modları
- Birçok yapılandırma seçeneği
- Bash stili tamamlama (Cmd modunda isteğe bağlı, Emacs modunda varsayılan)
- Emacs yank/kill-ring
- PowerShell belirteci tabanlı "sözcük" taşıma ve silme
- Tahmine Dayalı IntelliSense
PSReadLine için PowerShell 3.0 veya daha yeni bir sürümü gerekir. PSReadLine varsayılan konsol ana bilgisayarı, Visual Studio Code ve Windows Terminali ile çalışır. PowerShell ISE'de çalışmıyor.
PSReadLine 2.1.0, PowerShell 7.2 ile birlikte birlikte kullanılabilir ve desteklenen tüm PowerShell sürümlerinde de kullanılabilir. Bu, PowerShell Galerisi. PSReadLine 2.1.0'ı desteklenen bir PowerShell sürümüne yüklemek için aşağıdaki komutu çalıştırın.
PSReadLine 2.2.0 (beta) iki yeni tahmine dayalı IntelliSense özelliği ekledi:
- Yeni seçimine izin vermek için PredictionViewStyle parametresi
ListVieweklendi. - PsReadLine'ı PS 7.1'de tanıtan API'lere bağlanarak kullanıcının özel bir kaynaktan önerileri iş parçacığı oluşturan bir tahmin modülünü içeri
CommandPredictionaktarmasına olanak sağlar.
Install-Module -Name PSReadLine -AllowPrerelease
Not
PowerShell 7.0'dan itibaren, ekran okuyucu programı algılandığında PowerShell Windows PSReadLine'ı otomatik yükleme adımlarını atlar. Şu anda PSReadLine, ekran okuyucularla iyi çalışmıyor. PowerShell 7.0'ın varsayılan olarak Windows düzgün çalışır. Gerekirse modülü el ile yükleyebilirsiniz.
Tahmine Dayalı IntelliSense
Tahmine dayalı IntelliSense, kullanıcıya komutları başarıyla tamamlamada yardımcı olan sekme tamamlama kavramına bir ektir. Kullanıcıların geçmişiyle eşleşen tahminlere ve etki alanına özgü ek eklentilere göre tam komutları keşfetmesini, düzenlemesini ve yürütmesini sağlar.
Tahmine Dayalı IntelliSense'i etkinleştirme
Tahmine dayalı IntelliSense varsayılan olarak devre dışıdır. Tahminleri etkinleştirmek için aşağıdaki komutu çalıştırın:
Set-PSReadLineOption -PredictionSource History
PredictionSource parametresi, etki alanına özgü ve özel gereksinimler için eklentileri de kabul eder.
Tahmine Dayalı IntelliSense'i devre dışı bırakmak için şunu çalıştırmanız gerekir:
Set-PSReadLineOption -PredictionSource None
Aşağıdaki işlevler Microsoft.PowerShell.PSConsoleReadLine sınıfında kullanılabilir.
Temel düzenleme işlevleri
Durdurma
Geçerli eylemi iptal edin, örneğin: artımlı geçmiş araması.
- Emacs:
<Ctrl+g>
AcceptAndGetNext
Geçerli girişi yürütmeyi deneme. Yürütülürse (AcceptLine gibi), ReadLine bir sonraki çağrıldında tarihten bir sonraki öğeyi geri çağırabilirsiniz.
- Emacs:
<Ctrl+o>
AcceptLine
Geçerli girişi yürütmeyi deneme. Geçerli giriş eksikse (örneğin, kapatma parantezi, köşeli ayraç veya tırnak eksikse) devamlılık istemi sonraki satırda görüntülenir ve PSReadLine geçerli girişi düzenlemek için anahtarları bekler.
- Cmd:
<Enter> - Emacs:
<Enter> - Vi ekleme modu:
<Enter>
AddLine
Sonraki satırda devamlılık istemi görüntülenir ve PSReadLine anahtarların geçerli girişi düzenlemesini bekler. Bu, tek bir satır tek bir satır tek başına tam giriş olduğunda bile tek bir komut olarak çok satırlı girişi girmek için kullanışlıdır.
- Cmd:
<Shift+Enter> - Emacs:
<Shift+Enter> - Vi ekleme modu:
<Shift+Enter> - Vi komut modu:
<Shift+Enter>
BackwardDeleteChar
İmleç öncesinde karakteri silin.
- Cmd:
<Backspace>,<Ctrl+h> - Emacs:
<Backspace>,<Ctrl+Backspace>,<Ctrl+h> - Vi ekleme modu:
<Backspace> - Vi komut modu:
<X>,<d,h>
BackwardDeleteInput
BackwardKillInput gibi - noktadan giriş başlangıcına kadar olan metni siler, ancak silinen metni kill halkası içine koymaz.
- Cmd:
<Ctrl+Home> - Vi ekleme modu:
<Ctrl+u>,<Ctrl+Home> - Vi komut modu:
<Ctrl+u>,<Ctrl+Home>
BackwardDeleteLine
BackwardKillLine gibi - noktadan satırın başlangıcına kadar olan metni siler, ancak silinen metni kill-ring'e koymaz.
- Vi komut modu:
<d,0>
BackwardDeleteWord
Önceki sözcüğü siler.
- Vi komut modu:
<Ctrl+w>,<d,b>
BackwardKillInput
İmleci girişin başındaki metni temizleme. Temizli metin, kill-ring içine yerleştirilir.
- Emacs:
<Ctrl+u>,<Ctrl+x,Backspace>
BackwardKillLine
Geçerli mantıksal satırın başındaki metni imleçle temizlemek. Temizli metin, kill-ring içine yerleştirilir.
- İşlev sınırsızdır.
BackwardKillWord
Geçerli sözcüğün başındaki girişi imleçten temizlemek. İmleç sözcükler arasında ise, giriş önceki sözcüğün başından imleçe temiz. Temizli metin, kill-ring içine yerleştirilir.
- Cmd:
<Ctrl+Backspace>,<Ctrl+w> - Emacs:
<Alt+Backspace>,<Escape,Backspace> - Vi ekleme modu:
<Ctrl+Backspace> - Vi komut modu:
<Ctrl+Backspace>
CancelLine
Geçerli girişi iptal edin ve girişi ekranda bırakıp tekrar ana bilgisayar durumuna dönerek istem yeniden değerlendirin.
- Vi ekleme modu:
<Ctrl+c> - Vi komut modu:
<Ctrl+c>
Kopyala
Seçilen bölgeyi sistem panosuna kopyalayın. Hiçbir bölge seçilmemişse satırın tamamını kopyalayın.
- Cmd:
<Ctrl+C>
CopyOrCancelLine
Metin seçilirse panoya kopyalayın, aksi takdirde satırı iptal edin.
- Cmd:
<Ctrl+c> - Emacs:
<Ctrl+c>
Kes
Silinen metni sistem panosuna yerleştirerek seçili bölgeyi silin.
- Cmd:
<Ctrl+x>
DeleteChar
İmleç altındaki karakteri silin.
- Cmd:
<Delete> - Emacs:
<Delete> - Vi ekleme modu:
<Delete> - Vi komut modu:
<Delete>,<x>,<d,l>,<d,Spacebar>
DeleteCharOrExit
İmleç altındaki karakteri silin veya satır boşsa işlemden çıkın.
- Emacs:
<Ctrl+d>
DeleteEndOfBuffer
Çok satırlı arabelleğin sonuna kadar siler.
- Vi komut modu:
<d,G>
DeleteEndOfWord
sözcüğün sonuna kadar silin.
- Vi komut modu:
<d,e>
DeleteLine
Çok satırlı arabelleğin geçerli mantıksal çizgisini serek geri almayı sağlar.
- Vi komut modu:
<d,d>,<d,_>
DeletePreviousLines
Önceki istenen mantıksal satırları ve çok satırlı arabellekte geçerli mantıksal satırı siler.
- Vi komut modu:
<d,k>
DeleteRelativeLines
Arabellek başından çok satırlı bir arabellekte geçerli mantıksal satıra siler.
Vi komutlarının çoğunda olduğu gibi komutun, mutlak bir satır numarası belirten sayısal bir bağımsız değişkenle bir ön ucu kullanılabilir. Bu sayı, geçerli satır sayısıyla birlikte silinecek satır aralığını <d,g,g> ifade ediyor olabilir.
Belirtilmezse, sayısal bağımsız değişken varsayılan olarak 1'i kullanır ve bu da çok satırlı arabellekte ilk mantıksal satıra başvurur.
Çok satırlı satırdan silinecek gerçek satır sayısı, geçerli mantıksal satır numarası ile belirtilen sayısal bağımsız değişken arasındaki fark olarak hesaplanır ve bu da negatif olabilir. Bu nedenle yöntem adının göreli bölümü.
- Vi komut modu:
<d,g,g>
DeleteNextLines
Geçerli mantıksal satırı ve bir sonraki istenen mantıksal satırları çok satırlı bir arabellekte siler.
- Vi komut modu:
<d,j>
DeleteLineToFirstChar
Çok satırlı arabellekte geçerli mantıksal satırın ilk boş olmayan karakterinden siler.
- Vi komut modu:
<d,^>
DeleteToEnd
Satırın sonuna kadar silin.
- Vi komut modu:
<D>,<d,$>
DeleteWord
Sonraki sözcüğü silin.
- Vi komut modu:
<d,w>
ForwardDeleteInput
KillLine gibi, girişin sonundaki noktadan sonuna kadar olan metni siler, ancak silinen metni kill halkası içine koymaz.
- Cmd:
<Ctrl+End> - Vi ekleme modu:
<Ctrl+End> - Vi komut modu:
<Ctrl+End>
ForwardDeleteLine
Geçerli mantıksal satırın noktasından sonuna kadar olan metni siler, ancak silinen metni kill halkası içine koymaz.
- İşlev sınırsız
InsertLineAbove
İmleç geçerli satırda nerede olursa olsun geçerli satırın üzerinde yeni bir boş satır oluşturulur. İmleç yeni satırın başına taşınır.
- Cmd:
<Ctrl+Enter>
InsertLineBelow
İmleç geçerli satırda nerede olursa olsun geçerli satırın altında yeni bir boş satır oluşturulur. İmleç yeni satırın başına taşınır.
- Cmd:
<Shift+Ctrl+Enter>
InvertCase
Geçerli karakterin büyük/büyük/büyük harflerini ters çevirin ve bir sonrakine inin.
- Vi komut modu:
<~>
KillLine
İmleçten girişin sonuna kadar olan girişi temizleme. Temizli metin, kill-ring içine yerleştirilir.
- Emacs:
<Ctrl+k>
KillRegion
İmleçle işareti arasındaki metni son olarak seçin.
- İşlev sınırsızdır.
KillWord
İmleçten geçerli sözcüğün sonuna kadar olan girişi temizleme. İmleç sözcükler arasında ise, giriş imlecinden sonraki sözcüğün sonuna kadar temiz olur. Temizli metin, kill-ring içine yerleştirilir.
- Cmd:
<Alt+d>,<Ctrl+Delete> - Emacs:
<Alt+d>,<Escape,d> - Vi ekleme modu:
<Ctrl+Delete> - Vi komut modu:
<Ctrl+Delete>
Yapıştır
Sistem panosundan metin yapıştırın.
- Cmd:
<Ctrl+v>,<Shift+Insert> - Vi ekleme modu:
<Ctrl+v> - Vi komut modu:
<Ctrl+v>
Önemli
Yapıştır işlevi kullanırken pano arabelleğinin tüm içeriği PSReadLine giriş arabelleğine yapıştırıldı. Giriş arabelleği daha sonra PowerShell ayrıştırıcıya geçirildi. Konsol uygulamasının sağ tıklama yapıştırma yöntemi kullanılarak yapıştırilen giriş, giriş arabelleğine aynı anda bir karakter kopyalanır. Yeni satır karakteri kopyalanan giriş arabelleği ayrıştırıcıya geçirildi. Bu nedenle, giriş aynı anda bir satır ayrıştırıldı. Yapıştırma yöntemleri arasındaki fark farklı yürütme davranışına neden olur.
PasteAfter
İmleci yapıştıran metnin sonuna doğru hareket ettirerek panoya imleci yapıştırın.
- Vi komut modu:
<p>
PasteBefore
İmleci yapıştırarak imleci yapıştıran metnin sonuna kadar hareket ettirerek panoya yapıştırın.
- Vi komut modu:
<P>
PrependAndAccept
Bir ' # ' ekleyin ve satırı kabul edin.
- VI komut modu:
<#>
Yinele
Geri alma işlemini geri alın.
- Cmd
<Ctrl+y> - VI ekleme modu:
<Ctrl+y> - VI komut modu:
<Ctrl+y>
RepeatLastCommand
Son metin değişikliğini tekrarlayın.
- VI komut modu:
<.>
Yankı hattı
Tüm girişleri geçerli girişe geri döndürür.
- Cmd
<Escape> - Emacs:
<Alt+r>,<Escape,r>
ShellBackwardKillWord
Geçerli sözcüğün başından imlece kadar olan girişi temizleyin. İmleç sözcükler arasındaysa, giriş, önceki sözcüğün başından imlece kadar temizlenir. Temizlenmiş metin, Kill çalmaya yerleştirilir.
İşlevin bağlantısı kesildi.
ShellKillWord
İmlecin geçerli sözcüğün sonuna kadar olan giriş işaretini temizleyin. İmleç sözcükler arasındaysa, giriş imleci bir sonraki sözcüğün sonuna kadar temizlenir. Temizlenmiş metin, Kill çalmaya yerleştirilir.
İşlevin bağlantısı kesildi.
SwapCharacters
Geçerli karakteri ve öncesinde bir tane değiştirin.
- Emacs
<Ctrl+t> - VI ekleme modu:
<Ctrl+t> - VI komut modu:
<Ctrl+t>
Geri Al
Önceki düzenlemeyi geri al.
- Cmd
<Ctrl+z> - Emacs:
<Ctrl+_>,<Ctrl+x,Ctrl+u> - VI ekleme modu:
<Ctrl+z> - VI komut modu:
<Ctrl+z>,<u>
Geri UndoAll
Satır için önceki tüm düzenlemeleri geri alın.
- VI komut modu:
<U>
Unixwordruhakkında
Geçerli sözcüğün başından imlece kadar olan girişi temizleyin. İmleç sözcükler arasındaysa, giriş, önceki sözcüğün başından imlece kadar temizlenir. Temizlenmiş metin, Kill çalmaya yerleştirilir.
- Emacs
<Ctrl+w>
ValidateAndAcceptLine
Geçerli girişi yürütme girişimi. Geçerli giriş tamamlanmamışsa (örneğin, eksik bir kapatma parantezi, köşeli ayraç veya tırnak işareti varsa), devamlılık istemi bir sonraki satırda görüntülenir ve PSReadLine, anahtarların geçerli girişi düzenlemesini bekler.
- Emacs
<Ctrl+m>
ViAcceptLine
Satırı kabul edin ve ekleme moduna geçin.
- VI komut modu:
<Enter>
Viacceptlineorexıt
Ayrıca, Emacs modunda Deletecharorexde gibi bir karakter silmek yerine satırı kabul eder.
- VI ekleme modu:
<Ctrl+d> - VI komut modu:
<Ctrl+d>
ViAppendLine
Geçerli satırın altına yeni bir satır eklenir.
- VI komut modu:
<o>
ViBackwardDeleteGlob
Önceki sözcüğü, yalnızca sözcük sınırlayıcısı olarak boşluk kullanarak siler.
- VI komut modu:
<d,B>
ViBackwardGlob
Yalnızca sınırlayıcılar olarak boşluk kullanarak imleci önceki sözcüğün başlangıcına geri kaydırır.
- VI komut modu:
<B>
Videleteayracın
Parantez dahil, eşleşen ayraç, parantez veya köşeli ayracı bulun ve içindeki tüm içerikleri silin.
- VI komut modu:
<d,%>
ViDeleteEndOfGlob
Sözcüğün sonuna kadar Sil.
- VI komut modu:
<d,E>
ViDeleteGlob
Sonraki glob 'yi (boşluk ile ayrılmış sözcük) silin.
- VI komut modu:
<d,W>
ViDeleteToBeforeChar
Verilen karaktere kadar siler.
- VI komut modu:
<d,t>
Videletetobeforecharters
Verilen karaktere kadar siler.
- VI komut modu:
<d,T>
ViDeleteToChar
Verilen karaktere kadar siler.
- VI komut modu:
<d,f>
Videletetochargeri
Verilen karaktere kadar geriye doğru siler.
- VI komut modu:
<d,F>
Viınsertatbegoluşturma
Ekleme moduna geçin ve imleci satırın başına konumlandırın.
- VI komut modu:
<I>
Viınsertatend
Ekleme moduna geçin ve imleci satırın sonuna konumlandırın.
- VI komut modu:
<A>
Viınsertline
Geçerli satırın üzerine yeni bir satır eklenir.
- VI komut modu:
<O>
Viınsertwithappend
Geçerli satır konumundan Ekle.
- VI komut modu:
<a>
Viınsertwithdelete
Geçerli karakteri silin ve ekleme moduna geçin.
- VI komut modu:
<s>
ViJoinLines
Geçerli satırı ve sonraki satırı birleştirme.
- Vi komut modu:
<J>
ViReplaceLine
Komut satırın tamamını silin.
- Vi komut modu:
<S>,<c,c>
ViReplaceToBeforeChar
Verilen karaktere kadar değiştirir.
- Vi komut modu:
<c,t>
ViReplaceToBeforeCharBackward
Verilen karaktere kadar değiştirir.
- Vi komut modu:
<c,T>
ViReplaceToChar
Verilen karaktere kadar siler.
- Vi komut modu:
<c,f>
ViReplaceToCharBackward
Verilen karaktere kadar değiştirir.
- Vi komut modu:
<c,F>
ViYankBeginningOfLine
Arabelleğin başından imleçe doğru yank.
- Vi komut modu:
<y,0>
ViYankEndOfGlob
İmleçten WORD'ün sonuna kadar yank.
- Vi komut modu:
<y,E>
ViYankEndOfWord
İmleçten sözcüğün sonuna kadar yank.
- Vi komut modu:
<y,e>
ViYankLeft
İmleci sol tarafta yank karakterleri.
- Vi komut modu:
<y,h>
ViYankLine
Arabelleğin tamamını yan yana doğru çek.
- Vi komut modu:
<y,y>
ViYankNextGlob
İmleçten sonraki WORD'lerin başlangıcına doğru yank.
- Vi komut modu:
<y,W>
ViYankNextWord
İmlecin sonra gelen sözcüklerini yalıt.
- Vi komut modu:
<y,w>
ViYankPercent
Eşleşen ayraçtan/küme ayracından yank.
- Vi komut modu:
<y,%>
ViYankPreviousGlob
SÖZCÜK'ün başından imleçe doğru yank.
- Vi komut modu:
<y,B>
ViYankPreviousWord
İmlecin önünden sözcüklerini yalıt.
- Vi komut modu:
<y,b>
ViYankRight
İmlecin altındaki ve sağ tarafından yank karakterleri.
- Vi komut modu:
<y,l>,<y,Spacebar>
ViYankToEndOfLine
İmleçten arabelleğin sonuna kadar yank.
- Vi komut modu:
<y,$>
ViYankToFirstChar
İlk boşluk olmayan karakterden imleçe doğru yank.
- Vi komut modu:
<y,^>
Yank
Girişe en son son son son son metni ekleyin.
- Emacs:
<Ctrl+y>
YankLastArg
Önceki geçmiş satırına göre son bağımsız değişkeni yank. Bir bağımsız değişkenle, ilk çağrıldığında YankNthArg gibi davranır. Birden çok kez çağrılırsa, bunun yerine geçmiş boyunca devam eder ve arg yönünü ayarlar (negatif yön tersine çevrilir.)
- Cmd:
<Alt+.> - Emacs:
<Alt+.>,<Alt+_>,<Escape,.>,<Escape,_>
YankNthArg
Önceki geçmiş satırdan ilk bağımsız değişkeni (komuttan sonra) yank. Bağımsız değişken ile n. bağımsız değişkenini (0'dan başlayarak) yank, bağımsız değişken negatifse son bağımsız değişkenden başlar.
- Emacs:
<Ctrl+Alt+y>,<Escape,Ctrl+y>
YankPop
Önceki işlem Yank veya YankPop ise, daha önce yanked metni kill-ring'den sonraki sonlu metinle değiştirin.
- Emacs:
<Alt+y>,<Escape,y>
İmleç hareketi işlevleri
BackwardChar
İmleci bir karakter sola hareket ettirin. Bu, imleci önceki çok satırlı giriş satırına hareket ettirebilirsiniz.
- Cmd:
<LeftArrow> - Emacs:
<LeftArrow>,<Ctrl+b> - Vi ekleme modu:
<LeftArrow> - Vi komut modu:
<LeftArrow>,<Backspace>,<h>
BackwardWord
İmleci geçerli sözcüğün başlangıcına veya sözcükler arasında ise önceki sözcüğün başlangıcına geri hareket ettirin. Sözcük sınırları yapılandırılabilir bir karakter kümesiyle tanımlanır.
- Cmd:
<Ctrl+LeftArrow> - Emacs:
<Alt+b>,<Escape,b> - Vi ekleme modu:
<Ctrl+LeftArrow> - Vi komut modu:
<Ctrl+LeftArrow>
BeginningOfLine
Girişin birden çok satırı varsa geçerli satırın başlangıcına veya satırın başında zaten varsa girişin başlangıcına inin. Girişin tek bir satırı varsa girişin başlangıcına inin.
- Cmd:
<Home> - Emacs:
<Home>,<Ctrl+a> - Vi ekleme modu:
<Home> - Vi komut modu:
<Home>
EndOfLine
Giriş birden çok satıra sahipse geçerli satırın sonuna veya satırın sonunda zaten varsa girişin sonuna doğru inin. Girişin tek bir satırı varsa girişin sonuna doğru hareket ettirin.
- Cmd:
<End> - Emacs:
<End>,<Ctrl+e> - VI ekleme modu:
<End>
ForwardChar
İmleci bir karakter sağa taşı. Bu işlem, imleci çok satırlı girişin bir sonraki satırına taşıyabilir.
- Cmd
<RightArrow> - Emacs:
<RightArrow>,<Ctrl+f> - VI ekleme modu:
<RightArrow> - VI komut modu:
<RightArrow>,<Space>,<l>
ForwardWord
İmleci geçerli sözcüğün sonuna veya sözcükler arasında, sonraki sözcüğün sonuna kadar ileri taşıyın. Sözcük sınırları yapılandırılabilir bir karakter kümesi tarafından tanımlanır.
- Emacs:
<Alt+f>,<Escape,f>
Sayfayayracı
Eşleşen ayraç, parantezler veya köşeli ayracına gidin.
- Cmd
<Ctrl+]> - VI ekleme modu:
<Ctrl+]> - VI komut modu:
<Ctrl+]>
Sayfaysütunu
Bağımsız değişken tarafından belirtilen sütuna gitme.
- VI komut modu:
<|>
Sayfayfirstnonblankofline
İmleci satırdaki ilk boş olmayan karaktere taşı.
- VI komut modu:
<^>,<_>
MoveToEndOfLine
İmleci girişin sonuna taşı.
- VI komut modu:
<End>,<$>
NextLine
İmleci bir sonraki satıra taşıyın.
- İşlevin bağlantısı kesildi.
NextWord
İmleci sonraki sözcüğün başlangıcına doğru taşı. Sözcük sınırları yapılandırılabilir bir karakter kümesi tarafından tanımlanır.
- Cmd
<Ctrl+RightArrow> - VI ekleme modu:
<Ctrl+RightArrow> - VI komut modu:
<Ctrl+RightArrow>
NextWordEnd
İmleci geçerli sözcüğün sonuna veya sözcükler arasında, sonraki sözcüğün sonuna kadar ileri taşıyın. Sözcük sınırları yapılandırılabilir bir karakter kümesi tarafından tanımlanır.
- VI komut modu:
<e>
PreviousLine
İmleci bir önceki satıra taşı.
- İşlevin bağlantısı kesildi.
ShellBackwardWord
İmleci geçerli sözcüğün başlangıcına geri taşı veya sözcükler arasında, önceki sözcüğün başlangıcı. Sözcük sınırları, PowerShell belirteçleri tarafından tanımlanır.
- İşlevin bağlantısı kesildi.
ShellForwardWord
İmleci sonraki sözcüğün başlangıcına doğru taşı. Sözcük sınırları, PowerShell belirteçleri tarafından tanımlanır.
- İşlevin bağlantısı kesildi.
ShellNextWord
İmleci geçerli sözcüğün sonuna veya sözcükler arasında, sonraki sözcüğün sonuna kadar ileri taşıyın. Sözcük sınırları, PowerShell belirteçleri tarafından tanımlanır.
- İşlevin bağlantısı kesildi.
ViBackwardChar
İmleci bir karakter, VI düzenleme modunda sola taşıyın. Bu işlem imleci, çok satırlı girişin önceki satırına taşıyabilir.
- VI ekleme modu:
<LeftArrow> - VI komut modu:
<LeftArrow>,<Backspace>,<h>
ViBackwardWord
İmleci geçerli sözcüğün başlangıcına geri taşı veya sözcükler arasında, önceki sözcüğün başlangıcı. Sözcük sınırları yapılandırılabilir bir karakter kümesi tarafından tanımlanır.
- VI komut modu:
<b>
ViForwardChar
İmleci bir karakter, VI düzenleme modunda sağa taşıyın. Bu işlem, imleci çok satırlı girişin bir sonraki satırına taşıyabilir.
- VI ekleme modu:
<RightArrow> - VI komut modu:
<RightArrow>,<Spacebar>,<l>
Vidofglob
İmleci yalnızca sınırlayıcı olarak boşluk kullanarak sözcüğün sonuna gider.
- VI komut modu:
<E>
Vidofpreviousglob
Yalnızca sözcük sınırlayıcısı olarak boşluk kullanarak önceki sözcüğün sonuna gider.
- İşlevin bağlantısı kesildi.
Visayfayayracı
Sayfayayracına benzer, ancak belirteç tabanlı değil karakter tabanlıdır.
- VI komut modu:
<%>
ViNextGlob
Bir sözcük sınırlayıcısı olarak yalnızca boşluk kullanarak sonraki sözcüğe gider.
- VI komut modu:
<W>
Vinextsözcüğü
İmleci sonraki sözcüğün başlangıcına doğru taşı. Sözcük sınırları yapılandırılabilir bir karakter kümesi tarafından tanımlanır.
- VI komut modu:
<w>
Geçmiş işlevleri
BeginningOfHistory
Geçmişteki ilk öğeye git.
- Emacs
<Alt+<>
ClearHistory
PSReadLine 'da geçmişi temizler. Bu, PowerShell geçmişini etkilemez.
- Cmd
<Alt+F7>
EndOfHistory
Geçmişteki son öğeye (geçerli giriş) geçin.
- Emacs
<Alt+>>
ForwardSearchHistory
Geçmiş aracılığıyla artımlı bir ileriye doğru arama gerçekleştirin.
- Cmd
<Ctrl+s> - Emacs
<Ctrl+s>
Geri arama
Geçerli girişi, PSReadLine geçmişinden başlayan ' Previous ' öğesiyle değiştirin ve bu, giriş ve imleç arasındaki karakterlerle eşleşir.
- Cmd
<F8>
Geçmişini SearchForward
Geçerli girişi, PSReadLine geçmişinden başlangıç ve giriş ve imleç arasındaki karakterlerle eşleşen ' Next ' öğesiyle değiştirin.
- Cmd
<Shift+F8>
NextHistory
Geçerli girişi PSReadLine geçmişinden ' Next ' öğesiyle değiştirin.
- Cmd
<DownArrow> - Emacs:
<DownArrow>,<Ctrl+n> - VI ekleme modu:
<DownArrow> - VI komut modu:
<DownArrow>,<j>,<+>
PreviousHistory
Geçerli girişi PSReadLine geçmişinden ' Previous ' öğesiyle değiştirin.
- Cmd
<UpArrow> - Emacs:
<UpArrow>,<Ctrl+p> - VI ekleme modu:
<UpArrow> - VI komut modu:
<UpArrow>,<k>,<->
Smarsearchhistory
Geçmiş ile artımlı bir geriye doğru arama gerçekleştirin.
- Cmd
<Ctrl+r> - Emacs
<Ctrl+r>
Visearchgeçmişini geri
Arama dizesi ister ve AcceptLine üzerinde arama başlatır.
- VI ekleme modu:
<Ctrl+r> - VI komut modu:
</>,<Ctrl+r>
Tamamlama işlevleri
Tamamla
İmleci etrafındaki metin üzerinde tamamlamayı gerçekleştirmeyi deneyin. Birden çok olası tamamlama varsa, tamamlanması için en uzun belirsiz önek kullanılır. En uzun belirsiz tamamlamayı tamamlamaya çalışıyorsanız, olası tamamlamaların bir listesi görüntülenir.
- Emacs
<Tab>
Menutamamlanmıştır
İmleci etrafındaki metin üzerinde tamamlamayı gerçekleştirmeyi deneyin. Birden çok olası tamamlama varsa, tamamlanması için en uzun belirsiz önek kullanılır. En uzun belirsiz tamamlamayı tamamlamaya çalışıyorsanız, olası tamamlamaların bir listesi görüntülenir.
- Cmd:
<Ctrl+@>,<Ctrl+Spacebar> - Emacs
<Ctrl+Spacebar>
PossibleCompletions
Olası tamamlamaların listesini görüntüleyin.
- Emacs
<Alt+=> - VI ekleme modu:
<Ctrl+Spacebar> - VI komut modu:
<Ctrl+Spacebar>
Tabtamamlantenext
İmleci bir sonraki kullanılabilir tamamlanmasıyla çevreleyen metni tamamlamayı deneyin.
- Cmd
<Tab> - VI komut modu:
<Tab>
TabCompletePrevious
İmleci önceki kullanılabilir tamamlamada çevreleyen metni tamamlamayı deneyin.
- Cmd
<Shift+Tab> - VI komut modu:
<Shift+Tab>
Vitabmi Tenext
Gerekirse geçerli düzenleme grubunu sonlandırır ve Tabizetenext 'ı çağırır.
- VI ekleme modu:
<Tab>
ViTabCompletePrevious
Gerekirse geçerli düzenleme grubunu sonlandırır ve TabCompletePrevious 'i çağırır.
- VI ekleme modu:
<Shift+Tab>
Tahmin işlevleri
Acceptnextmülationword
InlineViewTahmin için Görünüm stili olarak kullanırken, satır içi önerin sonraki sözcüğünü kabul edin.
- İşlevin bağlantısı kesildi.
Acceptöneriyi
InlineViewTahmin için Görünüm stili olarak kullanırken, geçerli satır içi öneriyi kabul edin.
- İşlevin bağlantısı kesildi.
Nextöneriyi
ListViewTahmin için Görünüm stili olarak kullanırken, listede bir sonraki önerisine gidin.
- İşlevin bağlantısı kesildi.
Previousöneriyi
ListViewTahmin için Görünüm stili olarak kullanırken, listede bir önceki önerisine gidin.
- İşlevin bağlantısı kesildi.
SwitchPredictionView
Ve arasında tahmin için Görünüm stilini değiştirin InlineView ListView .
- Cmd
<F2>
Çeşitli işlevler
CaptureScreen
Etkileşimli ekran yakalama-yukarı/aşağı okları Başlat çizgiler ' i seçin, seçili metni panoya kopyalar metin ve HTML olarak girin.
- İşlevin bağlantısı kesildi.
ClearScreen
Ekranı temizleyin ve ekranın üst kısmındaki geçerli satırı çizin.
- Cmd
<Ctrl+l> - Emacs
<Ctrl+l> - VI ekleme modu:
<Ctrl+l> - VI komut modu:
<Ctrl+l>
DigitArgument
Diğer işlevlere geçmek için yeni bir basamak bağımsız değişkeni başlatın.
- Cmd:
<Alt+0>,<Alt+1>,,,<Alt+2><Alt+3><Alt+4>,<Alt+5>,<Alt+6>,<Alt+7>,<Alt+8>,<Alt+9>,<Alt+-> - Emacs:
<Alt+0>,<Alt+1>,<Alt+2>,<Alt+3>,<Alt+4>,<Alt+5>,<Alt+6>,<Alt+7>,<Alt+8>,<Alt+9>,<Alt+-> - VI komut modu:
<0>,<1>,,,,<2><3><4><5>,<6>,<7>,<8>,<9>
Invokeprompt
Geçerli istemi siler ve istemi yeniden görüntülemek için Prompt işlevini çağırır. Durumu değiştiren özel anahtar işleyicileri için kullanışlıdır. Örneğin, geçerli dizini değiştirin.
- İşlevin bağlantısı kesildi.
Scrolldisplayaşağı
Ekranı bir ekran aşağı kaydırın.
- Cmd
<PageDown> - Emacs
<PageDown>
ScrollDisplayDownLine
Görüntüyü bir satır aşağı kaydır.
- Cmd
<Ctrl+PageDown> - Emacs
<Ctrl+PageDown>
ScrollDisplayToCursor
Ekranı imlece kaydırın.
- Emacs
<Ctrl+End>
ScrollDisplayTop
Ekranı üste kaydır.
- Emacs
<Ctrl+Home>
ScrollDisplayUp
Ekranı bir ekran yukarı kaydırın.
- Cmd
<PageUp> - Emacs
<PageUp>
ScrollDisplayUpLine
Görüntüyü bir satır yukarı kaydır.
- Cmd
<Ctrl+PageUp> - Emacs
<Ctrl+PageUp>
SelfInsert
Anahtarı ekleyin.
- İşlevin bağlantısı kesildi.
ShowCommandHelp
Tam cmdlet yardımı görünümünü sağlar. İmleç, tam genişletilmiş bir parametrenin sonunda olduğunda, <F1> anahtar, bu parametrenin konumundaki yardım görüntüsünü yerleştirir.
Yardım, Microsoft. PowerShell. sayfalayıcı dosyasından bir sayfalayıcı kullanılarak alternatif bir ekran arabelleğinde görüntülenir. Sayfalayıcı 'ten çıktığınızda özgün ekranda özgün imleç konumuna dönersiniz. Bu çağrı cihazı yalnızca Windows Terminalgibi modern terminal uygulamalarında kullanılabilir.
- Cmd
<F1> - Emacs
<F1> - VI ekleme modu:
<F1> - VI komut modu:
<F1>
ShowKeyBindings
Tüm bağlantılı anahtarları göster.
- Cmd
<Ctrl+Alt+?> - Emacs
<Ctrl+Alt+?> - VI ekleme modu:
<Ctrl+Alt+?>
ShowParameterHelp
Aşağıdaki geçerli komut satırının altında gösterildiği gibi parametreler için dinamik yardım sağlar MenuComplete . Tuşa bastığınızda imleç tam genişletilmiş parametre adının sonunda olmalıdır <Alt+h> .
- Cmd
<Alt+h> - Emacs
<Alt+h> - VI ekleme modu:
<Alt+h> - VI komut modu:
<Alt+h>
Yakın mod
Geçerli işletim modunu Vi-Insert ' den vi-Command ' e geçirin.
- VI ekleme modu:
<Escape>
ViDigitArgumentInChord
Yeni bir basamak bağımsız değişkeni başlatmak için vi 'nin chorden birinde başka işlevlere geçiş yapın.
- İşlevin bağlantısı kesildi.
Vieditgörsel
$Env: EDITOR veya $env: görsel tarafından belirtilen bir metin düzenleyicisinde komut satırını düzenleyin.
- Emacs
<Ctrl+x,Ctrl+e> - VI komut modu:
<v>
ViExit
Kabuktan çıkar.
- İşlevin bağlantısı kesildi.
Viınsertmode
Ekleme moduna geçin.
- VI komut modu:
<i>
WhatIsKey
Bir anahtar okuyun ve anahtarın ne bağlandığını söyleyin.
- Cmd
<Alt+?> - Emacs
<Alt+?>
Seçim işlevleri
ExchangePointAndMark
İmleç, işaret konumuna yerleştirilir ve işaret İmlecin konumuna taşınır.
- Emacs
<Ctrl+x,Ctrl+x>
SelectAll
Tüm satırı seçin.
- Cmd
<Ctrl+a>
SelectBackwardChar
Geçerli seçimi önceki karakteri içerecek şekilde ayarlayın.
- Cmd
<Shift+LeftArrow> - Emacs
<Shift+LeftArrow>
SelectBackwardsLine
Geçerli seçimi imlece satır başına kadar olacak şekilde ayarlayın.
- Cmd
<Shift+Home> - Emacs
<Shift+Home>
SelectBackwardWord
Geçerli seçimi önceki sözcüğü içerecek şekilde ayarlayın.
- Cmd
<Shift+Ctrl+LeftArrow> - Emacs
<Alt+B>
SelectCommandArgument
Komut bağımsız değişkenlerinin görsel seçimini yapın. Bağımsız değişkenlerin seçimi bir betik bloğu içinde kapsamlandırılır. İmleç konumuna bağlı olarak, en içteki betik bloğundan en fazla betik bloğuna arar ve bir betik bloğu kapsamında herhangi bir bağımsız değişken bulduğunda duraklar.
Bu işlev, DigitArgument. Pozitif veya negatif bağımsız değişken değerlerini Şu anda seçili olan bağımsız değişkenden ileri veya geri uzaklıkları olarak veya hiçbir bağımsız değişken seçilmeyen geçerli imleç konumundan değerlendirir.
- Cmd
<Alt+a> - Emacs
<Alt+a>
SelectForwardChar
Geçerli seçimi sonraki karakteri içerecek şekilde ayarlayın.
- Cmd
<Shift+RightArrow> - Emacs
<Shift+RightArrow>
SelectForwardWord
Geçerli seçimi, ForwardWord kullanan sonraki sözcüğü içerecek şekilde ayarlayın.
- Emacs
<Alt+F>
SelectLine
Geçerli seçimi imlece satırın sonuna kadar olacak şekilde ayarlayın.
- Cmd
<Shift+End> - Emacs
<Shift+End>
SelectNextWord
Geçerli seçimi sonraki sözcüğü içerecek şekilde ayarlayın.
- Cmd
<Shift+Ctrl+RightArrow>
ShellBackwardWord öğesini seçin
ShellBackwardWord kullanarak önceki sözcüğü eklemek için geçerli seçimi ayarlayın.
- İşlev sınırsızdır.
ShellForwardWord öğesini seçin
ShellForwardWord kullanarak geçerli seçimi bir sonraki sözcüğü içerecek şekilde ayarlayın.
- İşlev sınırsızdır.
ShellNextWord öğesini seçin
ShellNextWord kullanarak geçerli seçimi bir sonraki sözcüğü içerecek şekilde ayarlayın.
- İşlev sınırsızdır.
SetMark
sonraki düzenleme komutunda kullanmak üzere imlecin geçerli konumunu işaretleyerek.
- Emacs:
<Ctrl+@>
Tahmine dayalı IntelliSense işlevleri
Not
Bu işlevleri kullanmak için tahmine dayalı IntelliSense'in etkinleştirilmesi gerekir.
AcceptNextWordSuggestion
Tahmine Dayalı IntelliSense'den gelen satır içi önerinin sonraki sözcüğüne onaylar. Bu işlev, aşağıdaki komut çalıştırarak Ctrl + F ile bağlanabilirsiniz.
Set-PSReadLineKeyHandler -Chord "Ctrl+f" -Function ForwardWord
AcceptSuggestion
İmleç geçerli satırın sonunda olduğunda RightArrow'a basarak Tahmine Dayalı IntelliSense'den geçerli satır içi öneriyi kabul eder.
Arama işlevleri
CharacterSearch
Bir karakteri okuyun ve bu karakterin sonraki oluşum için ileri doğru arama. Bir bağımsız değişken belirtilirse n. oluşum için ileri (veya negatifse geriye) arama.
- Cmd:
<F3> - Emacs:
<Ctrl+]> - Vi ekleme modu:
<F3> - Vi komut modu:
<F3>
CharacterSearchBackward
Bir karakteri okuyun ve bu karakterin sonraki oluşum için geriye doğru arama. Bir bağımsız değişken belirtilirse n. oluşum için geriye (veya negatifse ileri) arama.
- Cmd:
<Shift+F3> - Emacs:
<Ctrl+Alt+]> - Vi ekleme modu:
<Shift+F3> - Vi komut modu:
<Shift+F3>
RepeatLastCharSearch
Son kaydedilen karakter aramanızı tekrarlayın.
- Vi komut modu:
<;>
RepeatLastCharSearchBackwards
Son kaydedilen karakter aramalarını yineler, ancak ters yönde.
- Vi komut modu:
<,>
RepeatSearch
Son aramanızı öncekiyle aynı yönde tekrarlayın.
- Vi komut modu:
<n>
RepeatSearchBackward
Son aramanızı öncekiyle aynı yönde tekrarlayın.
- Vi komut modu:
<N>
SearchChar
Sonraki karakteri okuyun, sonra bu karakteri bulun, ileri gidip bir karakteri geri kapatın. Bu , 't' işlevselliğine göredir.
- Vi komut modu:
<f>
SearchCharBackward
Sonraki karakteri okuyun, sonra bu karakteri bulun, geriye doğru inin ve ardından bir karakteri geri çekin. Bu , 'T' işlevselliğine göredir.
- Vi komut modu:
<F>
SearchCharBackwardWithBackoff
Sonraki karakteri okuyun, sonra bu karakteri bulun, geriye doğru inin ve ardından bir karakteri geri çekin. Bu , 'T' işlevselliğine göredir.
- Vi komut modu:
<T>
SearchCharWithBackoff
Sonraki karakteri okuyun, sonra bu karakteri bulun, ileri gidip bir karakteri geri kapatın. Bu , 't' işlevselliğine göredir.
- Vi komut modu:
<t>
SearchForward
Bir arama dizesi istemleri ve AcceptLine üzerinde arama başlatıyor.
- Vi ekleme modu:
<Ctrl+s> - Vi komut modu:
<?>,<Ctrl+s>
Özel Anahtar Bağlamaları
PSReadLine, cmdlet'ini kullanarak özel anahtar bağlamalarını Set-PSReadLineKeyHandler destekler. Çoğu özel anahtar bağlaması yukarıdaki işlevlerden birini çağrır, örneğin
Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward
ScriptBlock'ları bir anahtara b bağlamanız gerekir. ScriptBlock istediğiniz her şeyi yapar. Bazı yararlı örnekler şunlardır:
- komut satırı düzenleme
- yeni bir pencere açma (örneğin, yardım)
- komut satırı değiştirmeden dizinleri değiştirme
ScriptBlock iki bağımsız değişken alır:
$key- Özel bağlamayı tetikleyen anahtar olan [ConsoleKeyInfo] nesnesi. Aynı ScriptBlock'i birden çok anahtara bağlarsanız ve anahtara bağlı olarak farklı eylemler gerçekleştirmeniz gerekirse, $key. Birçok özel bağlama bu bağımsız değişkeni yoksayar.$arg- Rastgele bir bağımsız değişken. Bu genellikle kullanıcının DigitArgument anahtar bağlamalarından geçtiği bir tamsayı bağımsız değişkenidir. Bağlamanız bağımsız değişkenleri kabul etmiyorsa bu bağımsız değişkeni yoksaymak mantıklıdır.
Şimdi, yürütmeden önce bir komut satırı ekleyen bir örneği göz atabilirsiniz. Bu, bir şey yapmama ama önceden girdiğiniz komut satırına yeniden girmek istemeyebilirsiniz.
$parameters = @{
Key = 'Alt+w'
BriefDescription = 'SaveInHistory'
LongDescription = 'Save current line in history but do not execute'
ScriptBlock = {
param($key, $arg) # The arguments are ignored in this example
# GetBufferState gives us the command line (with the cursor position)
$line = $null
$cursor = $null
[Microsoft.PowerShell.PSConsoleReadLine]::GetBufferState([ref]$line,
[ref]$cursor)
# AddToHistory saves the line in history, but does not execute it.
[Microsoft.PowerShell.PSConsoleReadLine]::AddToHistory($line)
# RevertLine is like pressing Escape.
[Microsoft.PowerShell.PSConsoleReadLine]::RevertLine()
}
}
Set-PSReadLineKeyHandler @parameters
PSReadLine modül klasöründe yüklü SamplePSReadLineProfile.ps1 olan dosyada çok daha fazla örnek görüyorsunuz.
Çoğu tuş bağlaması, komut satırı düzenlemek için bazı yardımcı işlevleri kullanır. Bu API'ler sonraki bölümde belgelenmiş olur.
Özel Anahtar Bağlama Desteği API'leri
Aşağıdaki işlevler Microsoft.PowerShell.PSConsoleReadLine'da ortaktır, ancak bir anahtara doğrudan bağlanamaz. Çoğu özel anahtar bağlamalarında kullanışlıdır.
void AddToHistory(string command)
Yürütmeden önce bir komut satırı ekleyin.
void ClearKillRing()
Kill-ring'i temizleme. Bu çoğunlukla test için kullanılır.
void Delete(int start, int length)
Uzunluk karakterlerini baştan silin. Bu işlem geri almayı/yeniden almayı destekler.
void Ding()
Ding eylemini kullanıcıların tercihini temel alarak gerçekleştirin.
void GetBufferState([ref] string input, [ref] int cursor)
void GetBufferState([ref] Ast ast, [ref] Token[] tokens,
[ref] ParseError[] parseErrors, [ref] int cursor)
Bu iki işlev, giriş arabelleğinin geçerli durumu hakkında yararlı bilgiler almaktadır. Birincisi, basit durumlar için daha yaygın olarak kullanılır. İkinci, bağlamanız Ast ile daha gelişmiş bir şey yapıyorsa kullanılır.
IEnumerable[Microsoft.PowerShell.KeyHandler]
GetKeyHandlers(bool includeBound, bool includeUnbound)
IEnumerable[Microsoft.PowerShell.KeyHandler]
GetKeyHandlers(string[] Chord)
Bu iki işlev tarafından Get-PSReadLineKeyHandler kullanılır. İlki tüm anahtar bağlamalarını almak için kullanılır. İkinci, belirli anahtar bağlamalarını almak için kullanılır.
Microsoft.PowerShell.PSConsoleReadLineOptions GetOptions()
Bu işlev Get-PSReadLineOption kullanılır ve büyük olasılıkla özel anahtar bağlamada çok kullanışlı değildir.
void GetSelectionState([ref] int start, [ref] int length)
Komut satırı seçimi yoksa işlev hem başlangıç hem de uzunluk olarak -1 döndürür. Komut satırda bir seçim varsa, seçimin başlangıcı ve uzunluğu döndürülür.
void Insert(char c)
void Insert(string s)
İmleçe bir karakter veya dize ekler. Bu işlem geri almayı/yeniden almayı destekler.
string ReadLine(runspace remoteRunspace,
System.Management.Automation.EngineIntrinsics engineIntrinsics)
Bu, PSReadLine'ın ana giriş noktasıdır. Bu, bir özel anahtar bağlaması için kullanışlı değildir, bu nedenle, yeniden ifadeyi desteklemez.
void RemoveKeyHandler(string[] key)
Bu işlev Remove-PSReadLineKeyHandler kullanılır ve büyük olasılıkla özel anahtar bağlamada çok kullanışlı değildir.
void Replace(int start, int length, string replacement)
Girişlerden bazılarının yerini değiştirin. Bu işlem geri almayı/yeniden almayı destekler. Silme ve ardından Ekleme yerine bu tercih edilir çünkü geri alma için tek bir eylem olarak kabul edilir.
void SetCursorPosition(int cursor)
İmleci verilen ofsete hareket ettirin. İmleç hareketi geri alma için izlanmaz.
void SetOptions(Microsoft.PowerShell.SetPSReadLineOption options)
Bu işlev, Set-PSReadLineOption cmdlet'i tarafından kullanılan bir yardımcı yöntemdir, ancak bir ayarı geçici olarak değiştirmek isteyen özel bir anahtar bağlaması için yararlı olabilir.
bool TryGetArgAsInt(System.Object arg, [ref] int numericArg,
int defaultNumericArg)
Bu yardımcı yöntemi, DigitArgument'a uygun özel bağlamalar için kullanılır. Tipik bir çağrı şu şekildedir:
[int]$numericArg = 0
[Microsoft.PowerShell.PSConsoleReadLine]::TryGetArgAsInt($arg,
[ref]$numericArg, 1)
Notlar
Komut Geçmişi
PSReadLine, komut satırına girdiğiniz tüm komutları ve verileri içeren bir geçmiş dosyası içerir. Geçmiş dosyaları adlı bir $($host.Name)_history.txt dosyadır. Bu Windows geçmiş dosyası üzerinde $env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine depolanır. Sistem dışı Windows geçmiş dosyaları veya üzerinde $env:XDG_DATA_HOME/powershell/PSReadLine $env:HOME/.local/share/powershell/PSReadLine depolanır.
Geçmiş, parolalar da dahil olmak üzere hassas veriler içerebilir. PSReadLine, hassas bilgileri filtrelemeye çalışır. Aşağıdaki dizeleri içeren herhangi bir komut satırı geçmiş dosyasına yazılmamıştır.
- password
- asplaintext
- token
- apikey
- gizli dizi
PSReadLine 2.2.0, hassas verilerin filtresini aşağıdaki yollarla iyiler:
- Hassas verileri bakmak için ayrıştıran komut satırı powershell soyut söz dizimi ağacını (AST) kullanır.
- SecretManagement modülünden güvenli cmdlet'ler için izin verme listesi kullanarak bu komutların tarihe eklenmelerini sağlar. allowlist şunları içerir:
Get-SecretGet-SecretInfoGet-SecretVaultRegister-SecretVaultRemove-SecretSet-SecretInfoSet-SecretVaultDefaultTest-SecretVaultUnlock-SecretVaultUnregister-SecretVault
Örneğin, aşağıdaki komutların geçmiş dosyasına yazıldığına izin verilir:
Get-Secret PSGalleryApiKey -AsPlainText # Get-Secret is in the allowlist
$token = Get-Secret -Name github-token -Vault MySecret
[MyType]::CallRestAPI($token, $url, $args)
$template -f $token
Aşağıdaki komut geçmiş dosyasına yazmayacak:
$token = 'abcd' # Assign expr-value to sensitive variable name.
Set-Secret abc $mySecret # Set-Secret is not in the allowlist.
ConvertTo-SecureString stringValue -AsPlainText # '-AsPlainText' is an alert.
Invoke-WebRequest -Token xxx # Expr-value as argument to '-Token'.
Get-ResultFromTwo -Secret1 (Get-Secret -Name blah -AsPlainText) -Secret2 sdv87ysdfayf798hfasd8f7ha # '-Secret2' has expr-value argument.
PSReadLine& a Katkıda Bulunan Geri Bildirim
Çekme isteği göndermekten veya geri bildirim göndermekten GitHub edin.
Ayrıca Bkz.
PSReadLine, GNU okuma çizgisi kitaplığını büyük ölçüde etkiler.