PowerShell टिप: PSReadLine के साथ PowerShell cmdlet इतिहास में महारत हासिल करें

PowerShell व्यवस्थापकों और डेवलपर्स के लिए एक शक्तिशाली टूल है, लेकिन दोहराए जाने वाले कार्य आपको धीमा कर सकते हैं। अपने cmdlet इतिहास को प्रबंधित करके और PSReadLine की सुविधाओं का लाभ उठाकर, आप अपने वर्कफ़्लो को सुव्यवस्थित कर सकते हैं, समय बचा सकते हैं और उत्पादकता बढ़ा सकते हैं। यह मार्गदर्शिका PowerShell cmdlet इतिहास और PSReadLine का अधिकतम लाभ उठाने के लिए व्यावहारिक सुझावों और परिदृश्यों के बारे में बताएगी।


cmdlet इतिहास प्रबंधित करना क्यों महत्वपूर्ण है

कल्पना कीजिए कि आप बार-बार कमांड का एक जटिल क्रम चला रहे हैं या कई पंक्तियों वाली स्क्रिप्ट की समस्या निवारण कर रहे हैं। कमांड को फिर से टाइप करने या पुरानी स्क्रिप्ट में खोजने के बजाय, आप त्वरित पुन: उपयोग के लिए अपने cmdlet इतिहास तक पहुँच सकते हैं। PSReadLine के साथ, आप अपने अनुभव को अनुकूलित करके और पूर्वानुमानिक IntelliSense को सक्षम करके इसे और भी आगे ले जा सकते हैं।


अपने cmdlet इतिहास तक पहुँचना

PowerShell आपके कमांड इतिहास को स्वचालित रूप से एक फ़ाइल में संग्रहीत करता है, जिससे उसे देखना या संपादित करना आसान हो जाता है। इसे एक्सेस करने का तरीका इस प्रकार है:

cmdlet इतिहास फ़ाइल का स्थान

cmdlet इतिहास फ़ाइल यहाँ स्थित है:
C:\Users\%USERPROFILE%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine

cmdlet इतिहास प्रबंधित करने के चरण

  1. फ़ाइल खोजें
    फ़ोल्डर खोलें और नाम वाली फ़ाइल खोजें ConsoleHost_history.txt.
  2. फ़ाइल संपादित करें
    कमांड जोड़ने, हटाने या संशोधित करने के लिए किसी भी टेक्स्ट एडिटर (जैसे, Notepad, VS Code) का उपयोग करें।
  3. शॉर्टकट बनाएँ
    त्वरित पहुँच के लिए अपने डेस्कटॉप पर फ़ाइल का शॉर्टकट बनाएँ।

सामान्य उपयोग का मामला

एक विशिष्ट परिदृश्य में सर्वर रखरखाव के लिए कमांड के अनुक्रम का पुन: उपयोग करना शामिल है। उदाहरण के लिए, यदि आप सेवाओं को पुनरारंभ करने, लॉग जाँचने या सेटिंग्स कॉन्फ़िगर करने के लिए अक्सर कमांड चलाते हैं, तो आप त्वरित पहुँच के लिए इन कमांड को इतिहास फ़ाइल में सहेज सकते हैं।


PSReadLine की पूरी क्षमता का उपयोग करना

PSReadLine एक मॉड्यूल है जो PowerShell कंसोल अनुभव को बेहतर बनाता है। यह सिंटैक्स कलरिंग, पूर्वानुमानिक IntelliSense और कस्टम कुंजी बाइंडिंग जैसी सुविधाएँ प्रदान करता है, जिससे PowerShell के साथ काम करना आसान हो जाता है।

PSReadLine की प्रमुख विशेषताएँ

  1. सिंटैक्स कलरिंग
    सिंटैक्स त्रुटियों को हाइलाइट करें और कमांड को अधिक पठनीय बनाएँ।
  2. पूर्वानुमानिक IntelliSense
    आपके इतिहास या प्लग-इन के आधार पर कमांड का स्वतः सुझाव दें।
  3. कस्टम कुंजी बाइंडिंग
    तेज़ निष्पादन के लिए कुंजियों को कस्टम कार्रवाइयों से मैप करें।
  4. मल्टी-लाइन संपादन
    मल्टी-लाइन कमांड को सहजता से संपादित और निष्पादित करें।
  5. डायनामिक सहायता प्रदर्शन
    अपनी जगह खोए बिना कंसोल में सीधे सहायता जानकारी दिखाएँ।

PSReadLine का उपयोग करने के व्यावहारिक परिदृश्य

परिदृश्य 1: दोहराए जाने वाले कार्यों को स्वचालित करना

मान लीजिए कि आप अक्सर वेब सर्वर को पुनरारंभ करते हैं और उसकी स्थिति जाँचते हैं। हर बार इन कमांड को टाइप करने के बजाय, आप उन्हें इतिहास में सहेज सकते हैं या शॉर्टकट कुंजी से बाइंड कर सकते हैं।

Restart-Service -Name "WebServer"
Get-Service -Name "WebServer" | Select-Object Status

परिदृश्य 2: तेज़ कमांड खोज के लिए पूर्वानुमानिक IntelliSense

पूर्वानुमानिक IntelliSense आपको कमांड को जल्दी से खोजने और निष्पादित करने में मदद करता है। उदाहरण के लिए, यदि आप अक्सर उपयोग करते हैं Get-Process टाइप करने पर आपके इतिहास से कमांड सुझाए जाएँगे, जिनमें शामिल हैं Get-Process.

पूर्वानुमानिक IntelliSense सक्षम करने के लिए:

Set-PSReadLineOption -PredictionSource History

परिदृश्य 3: दक्षता के लिए कस्टम कुंजी बाइंडिंग

आप अपने कमांड इतिहास में तेज़ी से पीछे की ओर खोजने के लिए एक कुंजी बाइंड कर सकते हैं:

Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward

या कमांड को निष्पादित किए बिना इतिहास में सहेजने के लिए कस्टम बाइंडिंग बनाएँ:

$parameters = @{
    Key = 'Alt+w'
    ScriptBlock = {
      $line = $null
      $cursor = $null
      [Microsoft.PowerShell.PSConsoleReadLine]::GetBufferState([ref]$line, [ref]$cursor)
      [Microsoft.PowerShell.PSConsoleReadLine]::AddToHistory($line)
      [Microsoft.PowerShell.PSConsoleReadLine]::RevertLine()
    }
}
Set-PSReadLineKeyHandler @parameters

परिदृश्य 4: सुरक्षित कमांड इतिहास प्रबंधन

PSReadLine आपकी सुरक्षा की रक्षा के लिए इतिहास फ़ाइल से पासवर्ड और टोकन जैसे संवेदनशील डेटा को फ़िल्टर करता है। उदाहरण के लिए:

$password = 'MySecurePassword'
Set-Secret -Name "MySecret" -SecretValue $password

ये कमांड इतिहास फ़ाइल में सहेजे नहीं जाएँगे।


PSReadLine इंस्टॉल करना

PSReadLine PowerShell गैलरी से उपलब्ध है। इसे इंस्टॉल करने के लिए, चलाएँ:

Install-Module -Name PSReadLine -AllowClobber -Force

नोट: PSReadLine के लिए PowerShell 5.1 या नया संस्करण आवश्यक है। यह Windows Terminal, Visual Studio Code और डिफ़ॉल्ट Windows कंसोल होस्ट के साथ काम करता है, लेकिन Windows PowerShell ISE के साथ नहीं।


संस्करण की मुख्य बातें

PSReadLine Windows PowerShell 5.1 में अपनी प्रारंभिक रिलीज़ के बाद से काफी विकसित हुआ है। प्रमुख संस्करणों में शामिल हैं:

  • v2.3.6: PowerShell 7.4.7 और 7.5.0 के साथ शिप किया गया
  • v2.3.4: संवेदनशील डेटा की सफाई में सुधार पेश किए।
  • v2.2.6: मल्टी-लाइन संपादन और पूर्वानुमानिक IntelliSense को बेहतर बनाया।

अधिक जानकारी के लिए, देखें about_PSReadLine रिलीज़ नोट्स.


PSReadLine के बारे में और जानें

अतिरिक्त सुविधाओं और उदाहरणों के लिए, आधिकारिक दस्तावेज़ देखें:

टिप्पणी छोड़ें