পূর্ববর্তী সেশনগুলি থেকে পাওয়ারশেল কমান্ডের ইতিহাস কীভাবে অনুসন্ধান করা যায়


16

আমি পাওয়ারশেল 5.1 সহ বর্তমান উইন্ডোজ 10 ব্যবহার করি। প্রায়শই, আমি অতীতে ব্যবহৃত কমান্ডগুলি সন্ধান করতে চাই এবং সেগুলি সংশোধন করতে এবং / অথবা পুনরায় চালাতে পারি। অনিবার্যভাবে, আমি যে কমান্ডগুলি সন্ধান করছি তা পূর্ববর্তী বা ভিন্ন পাওয়ারশেল উইন্ডো / সেশনে চালিত হয়েছিল।

আমি কীটি হাতুড়ি দিলে, আমি অনেকগুলি, অনেক অধিবেশন থেকে অনেক কমান্ডের মাধ্যমে ব্রাউজ করতে পারি, কিন্তু যখন আমি তাদের ব্যবহার করে অনুসন্ধান করার চেষ্টা করি তখন আমি Get-History | Where-Object {$_.CommandLine -Like "*docker cp*"}কোনও ফল পাই না। বেসিক ট্রাবলশুটিং প্রকাশ করে যা Get-Historyপূর্ববর্তী সেশনগুলি থেকে কিছুই দেখায় না, যেমন দেখানো হয়েছে:

C:\Users\Me> Get-History

  Id CommandLine
  -- -----------
   1 Get-History | Where-Object {$_.CommandLine -Like "*docker cp*"}

কীটি কী Get-Historyবা অন্য কোনও সিএমডলেট ব্যবহার করে প্রদত্ত পূর্ববর্তী আদেশগুলি সন্ধান করতে পারে ?

উত্তর:


23

আপনার উল্লেখ করা অবিচ্ছিন্ন ইতিহাস পিএসআরডলাইন সরবরাহ করেছে । এটি সেশন-সীমাবদ্ধ থেকে পৃথক Get-History

ইতিহাস সম্পত্তি দ্বারা সংজ্ঞায়িত একটি ফাইলে সংরক্ষণ করা হয় (Get-PSReadlineOption).HistorySavePath। এই ফাইলটি Get-Content (Get-PSReadlineOption).HistorySavePath, বা কোনও পাঠ্য সম্পাদক ইত্যাদির সাথে দেখুন, এর সাথে সম্পর্কিত বিকল্পগুলি পরীক্ষা করুন Get-PSReadlineOption। PSReadLine ctrl+ এর মাধ্যমে ইতিহাস অনুসন্ধানও করে r

আপনার সরবরাহিত উদাহরণ ব্যবহার করে:

Get-Content (Get-PSReadlineOption).HistorySavePath | ? { $_ -like '*docker cp*' }


3

সংক্ষিপ্ত উত্তর:

  • ইন্টারেক্টিভভাবে ইতিহাসে পিছনে অনুসন্ধান করতে Ctrl+ টিপুন Rএবং তারপরে টাইপ করা শুরু করুন । এটি কমান্ড লাইনের যে কোনও জায়গা থেকে পাঠ্যের সাথে মেলে। পরের ম্যাচটি খুঁজতে + আবার টিপুন ।CtrlR
  • Ctrl+ Sউপরের মতো কাজ করে তবে ইতিহাসে এগিয়ে অনুসন্ধান করে । আপনি অনুসন্ধান ফলাফলগুলিতে পিছনে পিছনে যেতে Ctrl+ R/ Ctrl+ ব্যবহার করতে পারেন S
  • একটি পাঠ্য টাইপ করুন এবং তারপরে টিপুন F8। এটি ইতিহাসের পূর্ববর্তী আইটেমটির সন্ধান করে যা বর্তমান ইনপুট দিয়ে শুরু হয়।
  • Shift+ এর F8মতো কাজ করে F8তবে অনুসন্ধান করে।

দীর্ঘ উত্তর:

@ জস্কট তার উত্তরটিতে যেমন উল্লেখ করেছেন, উইন্ডোজ 10-এ পাওয়ারশেল 5.1 বা ততোধিক, PSReadLineকমান্ড সম্পাদনা পরিবেশকে সমর্থন করার জন্য মডিউলটি ব্যবহার করে । এই মডিউলটির সম্পূর্ণ কী ম্যাপিংটি Get-PSReadLineKeyHandlerসেমিডলেট ব্যবহার করে পুনরুদ্ধার করা যেতে পারে । ইতিহাস সম্পর্কিত সমস্ত কী ম্যাপিংগুলি দেখতে, নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

Get-PSReadlineKeyHandler | ? {$_.function -like '*hist*'}

এবং এখানে ফলাফল:

History functions
=================
Key       Function              Description
---       --------              -----------
Alt+F7    ClearHistory          Remove all items from the command line history (not PowerShell history)
Ctrl+s    ForwardSearchHistory  Search history forward interactively
F8        HistorySearchBackward Search for the previous item in the history that starts with the current input - like
                                PreviousHistory if the input is empty
Shift+F8  HistorySearchForward  Search for the next item in the history that starts with the current input - like
                                NextHistory if the input is empty
DownArrow NextHistory           Replace the input with the next item in the history
UpArrow   PreviousHistory       Replace the input with the previous item in the history
Ctrl+r    ReverseSearchHistory  Search history backwards interactively

1
সুপার দরকারী! নোট করুন যে একাধিক Ctrl+Rপ্রেসগুলি ফলাফলের মধ্য দিয়ে চক্র করবে।
ওহাদ স্নাইডার

1

আমার পিএস প্রোফাইলে এটি আমার রয়েছে:

function hist { $find = $args; Write-Host "Finding in full history using {`$_ -like `"*$find*`"}"; Get-Content (Get-PSReadlineOption).HistorySavePath | ? {$_ -like "*$find*"} | Get-Unique | more }

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.