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 ListView eklendi.
  • 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 CommandPrediction aktarması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>

İ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-Secret
    • Get-SecretInfo
    • Get-SecretVault
    • Register-SecretVault
    • Remove-Secret
    • Set-SecretInfo
    • Set-SecretVaultDefault
    • Test-SecretVault
    • Unlock-SecretVault
    • Unregister-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

GitHub üzerinde PSReadLine

Ç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.