পাওয়ারশেল: ইতিহাস বর্ধন (পঠনপাঠন)?


12

আমি বাশগুলিতে পছন্দ করি এমন কয়েকটি জিনিস এবং পাওয়ারশেলের মধ্যে কীভাবে করা যায় তা জানতে আগ্রহী:

  1. বাশ-এ, আমার কাছে ইতিহাস স্ক্রোলিং সেট আপ হয়েছে যাতে এটি কেবলমাত্র কমান্ডগুলি স্ক্রোল করে যা বর্তমান লাইনের একই উপসর্গ দিয়ে শুরু হয়। আমি যদি আমার সর্বশেষ প্রতিশ্রুতি দেখতে চাই (যেমন মন্তব্যের অংশটি পুনরায় ব্যবহার করতে চাই) তবে আমি 'গিট' লিখি

  2. সম্পর্কিত অবশ্যই Ctrl+ সহ ইতিহাস অনুসন্ধান করুন searchR

  3. অন্যান্য জিনিসগুলি খুঁজতে, আমি লিখি:

    h | grep foo
    

    পাওয়ারশেলে আমি ব্যবহার করি:

    h -c 1000 | where {$_.commandline.contains("foo")}
    

    (স্পষ্টতই আমি একজন নবাগত, এখানে আরও একটি ছোট পথ থাকতে হবে)

  4. ভালো জিনিস:

    mv file.txt{,.bak}
    

    অথবা

    mv file.txt !#$.bak
    
  5. যাদু স্থান (এটি !$ইনলাইন প্রসারিত )

পাওয়ারশেলের বিকল্পগুলি কী কী?

উত্তর:


2

(3) এর জন্য, আপনি এটি আপনার প্রোফাইলে কোনও ফাংশন হিসাবে লিখতে পারেন (যেমন %USERPROFILE%\My Documents\WindowsPowerShell\profile.ps1):

function hh ([string] $word) {
    Get-History -c 1000 | where {$_.commandline.contains($word)}
}

তারপর:

hh foo

তবে পাওয়ারশেল একটি স্ক্রিপ্টিং ভাষা হিসাবে ইন্টারেক্টিভ শেল হিসাবে ভাল হিসাবে বিবেচনা করা হয়, কারণ অন্তর্নিহিত কনসোলটি তার সমস্ত সীমাবদ্ধতার সাথে এখনও সেন্টিমিডি.এক্সে রয়েছে।

সুতরাং এটি ইন্টারেক্টিভ ইতিহাসের জন্য F7, পূর্ববর্তী কমান্ডটি অনুলিপি করতে F3, একটি অক্ষর অনুলিপি করতে F1, একটি নির্দিষ্ট অক্ষর পর্যন্ত পূর্ববর্তী কমান্ড অনুলিপি করা ইত্যাদি ইত্যাদি etc.


1
অন্তর্নিহিত কনসোলটি কি এখনও সেন্টিমিটার? আমি তা ভাবিনি।
sinni800

1
কনসোল হ'ল উইন্ডোজ কনসোল সাবসিস্টেম, যা সিএমডি এবং অন্য কোনও কনসোল অ্যাপ্লিকেশন দ্বারা ব্যবহৃত হয়। এটিতে প্রচুর অদ্ভুত জিনিস রয়েছে যেমন স্ট্রিমস এবং কমান্ড সম্পাদনা এবং অদ্ভুত নির্বাচন এবং ট্যাব সমাপ্তি। পাওয়ারশেল আইএসই ভি 3 খুব ভাল তবে "লিগ্যাসি" কনসোল অ্যাপ্লিকেশনগুলির সাথে ভাল কাজ করে না। সিএমডলেটগুলি আইএসইতে দুর্দান্ত।
জে বাজুজি 21

15

1 - আপনি F8উইন্ডোজ কনসোল থেকে কমান্ডের মাধ্যমে চক্রের জন্য বর্তমান লাইনের শুরুর সাথে মেলে ব্যবহার করতে পারেন । এটি কেস সেনসিটিভ ম্যাচ।

2 - আপনি #পূর্ববর্তী আদেশগুলি মেলে ব্যবহার করতে পারেন । ব্যবহার #<partial match><tab>হ'ল কেস সংবেদনশীল এবং পূর্ববর্তী কমান্ডের যে কোনও অবস্থানে পাঠ্যের সাথে মিলবে।

আপনার যদি নিম্নলিখিত কমান্ডের ইতিহাস থাকে:

# 1
$np = Start-Process notepad -PassThru
# 2
$np| get-process
# 3
$np| Stop-Process

টাইপিং #prএরপরে tabবারবার 1, 2 এবং 3 এর মধ্যে চক্রটি ঘটাবে ।

টাইপিং #stএরপরে tabবারবার 1 এবং 3 এর মধ্যে চক্র চলবে।

কেবল # ব্যবহার করা সমস্ত ইতিহাসের সাথে মিলবে।

#কমান্ডের কিছু অংশ প্রবেশ করার পরেও ব্যবহার করা যেতে পারে। যদি আপনার ইতিহাস হয়:

'notepad'
select *

আপনি টাইপ Get-Process #n<tab>| #s<tab>করতে পারেনGet-Process 'notepad'| select *

3 - আপনি ব্যবহার করতে পারেন Select-String। এটি ব্যবহার করা সহজ করার জন্য এটির জন্য একটি নাম তৈরি করুন (পাওয়ারশেল ভি 3 উপনামটি যুক্ত করেছেন sls)। আপনি তখন করতে পারেন।

h| sls foo

4 - আপনি যেমন কিছু করতে পারেন:

gci *a.txt| ren -n {$_.Name + '.bak'}

5 - $$শেষ কমান্ডের শেষ টোকেনটির সাথে মেলে, তবে আমি এটিকে ইনলাইন প্রসারিত করার কোনও উপায় জানি না।


2

আপনার shouldশিন গ্রাহানের PSReadline মডিউলটি পরীক্ষা করা উচিত: http://nivot.org/blog/post/2012/09/12/Emulating-Bash-GNU-Readline-with- PowerShell-30

কোডটি এখানে উপলভ্য: https://bitbucket.org/oising/psreadline/overview

এটি পাওয়ারশেলকে আসলে একটি সি এল এল হিসাবে ব্যবহারযোগ্য করে তোলে, অভিজ্ঞ * নিক্স অ্যাডমিনদের দৃষ্টিকোণ থেকে যারা মাঝে মাঝে উইন্ডোজের সাথে কাজ করেন, লাইন সম্পাদনা, ইতিহাস অনুসন্ধান ইত্যাদির জন্য প্রাথমিক EMACS বাইন্ডিং যুক্ত করে with

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