ইতিহাসের শেষ কমান্ড থেকে দ্বিতীয় যুক্তিটি কীভাবে অ্যাক্সেস করবেন?


11

আমি কিছু রেজেক্স শিখতে শুরু করছি, তাই আমি এই আদেশটি বারবার ব্যবহার করি:

grep pattern /usr/share/dict/american-english 

কেবল প্যাটার্নের অংশটি পরিবর্তন হয়, তাই আমাকে বারবার " / usr / share / ڈک / আমেরিকান-ইংলিশ " দীর্ঘ এক্সপ্রেশন লিখতে হবে ।

কেউ মন্তব্য করেছিলেন যে সম্পূর্ণ এক্সপ্রেশনের পরিবর্তে ক্রিপ্টিক চরিত্রের সংমিশ্রণ লিখে কমান্ডের ইতিহাস থেকে কোনও আদেশের আর্গুমেন্টকে প্রসারিত করা সম্ভব। আপনি কি আমাকে এই ক্রিপ্টিক চরিত্রের সংমিশ্রণ বলতে পারেন?


এটি কি দ্বিতীয় যুক্তি বা শেষ যুক্তি সম্পর্কে?
মাইকসার্ভ

এক্ষেত্রে সর্বশেষ যুক্তিটি দ্বিতীয় হিসাবে ঘটেছিল, আমি এই পার্থক্যটি পরিষ্কার করেছিলাম না।
আব্দুল আল হাজরেড

সেক্ষেত্রে, bash, dash, zsh, mksh, এবং kshশাঁস (অন্তত, আমি সম্পর্কে জানতে) সব চিনতে পারবে $_গত ARG বিশেষ প্যারামিটার (কিছু তাই যদিও শুধুমাত্র ইন্টারেক্টিভ মোডে না,) । এটি শুধু একটি পরিবর্তনশীল মত বিস্তৃতি: grep somepattern filename; grep otherpattern "$_"। আপনি এর আউটপুটটিতে সাধারণত এর সামগ্রীগুলি দেখতে পারেন set
মাইকজার্ভ

উত্তর:


23

পূর্ববর্তী কমান্ডের শেষ যুক্তিটি স্মরণ করতে আপনি <M-.>(বা <Esc>.যদি আপনার মেটা কীটি অন্য কোনও কিছুর জন্য ব্যবহৃত হচ্ছে), অর্থাৎ মেটা-ডট (বা <এসসি> ডট) ব্যবহার করতে পারেন। সুতরাং, প্রথমে আপনি টাইপ করুন

$ grep foo /usr/share/dict/american-english

এবং তারপরে আপনি যদি অন্য কোনও কিছুর জন্য গ্রেপ করতে চান তবে আপনি টাইপ করবেন

$ grep bar

একটি স্পেস টাইপ করার পরে এবং তারপরে Esc.(যা প্রথমে এস্কেপ কী টিপুন এবং তারপরে পিরিয়ড কীটি চাপুন):

$ grep bar /usr/share/dict/american-english

আপনি নিম্নলিখিত দুটি ব্যবহার করতে পারেন:

$ grep bar !:2
$ grep bar !$

যথাক্রমে কোথায় !:2এবং !$অর্থ "দ্বিতীয় যুক্তি" এবং "শেষ যুক্তি"।


এটি বাশ এবং শেলগুলির জন্য যা ইমাস (ডিফল্ট) বাইন্ডিংগুলি ব্যবহার করে রিডলাইন ব্যবহার করে: editing-mode viসেট সহ আপনাকে ~/.inputrcyank-last-arginsert-last-word
জেডের

@jasonwryan, যদি গত ARG যদি আপনি চান, তাহলে কোন আছে (ইন্টারেক্টিভ) zsh , bash, ksh, mksh, অথবা dashশেল আপনি শুধু ব্যবহার করতে পারেন $_। POSIXLY বাঁধাই ইতিমধ্যে সেট যে, যদিও, এর ESC _যখন set -o viপ্রভাব রয়েছে।
মাইকজারভেল

@ মাইকজার ধন্যবাদ মাইক, সামঞ্জস্যতার জন্য আমার অবশ্যই এটি পুনরায় প্রত্যাবর্তন করতে হবে ...
জেসনওয়্যারিয়ান

@ জেসনওয়ারিয়ান - কোনও সমস্যা নেই - এটি কেবলমাত্র আমার জানা শেল কীবোর্ড কৌশল হিসাবে ঘটে - আমি এই সমস্ত দ্রুত টাইপের শর্টকাটগুলি স্মরণ / কনফিগার করতে স্তন্যপান করি। যদি আপনি কিছু মনে করেন না, সামঞ্জস্যতা ডাব্লু / কি? এমন কিছু প্রোগ্রাম রয়েছে যা আপনি এটি আলাদাভাবে ব্যবহার করেন? ওহ, আমি _letterওরফে বাইন্ডিংয়ের জন্য ESC @letter এর কথাও মনে করতে পারি - তবে কেবল এটি এখনও ডাব্লু / বিএসডি কীভাবে কাজ করে তা নির্ধারণ করতে পারছি না editline
মাইকজারভেল

@ মিকসার্ভ আমি এভাবে আবদ্ধ করি যাতে আমি বাশ বা জেডএস (উভয়ই ভি মোডে) ব্যবহার করি না বা ইম্যাকস মোডে ব্যাশযুক্ত কোনও মেশিনে (এটি সত্যই আমি যে হাতের বাঁধাইয়ের সাথে যুক্ত) এটি একটি।
জেসনওয়ারিয়ান

2

সাধারণভাবে (বাশ সহ) <Esc> N <Esc> .পূর্ববর্তী কমান্ড থেকে বর্তমান কমান্ড লাইনে (যেখানে এন 0-ভিত্তিক হয়) এন'থ যুক্তিটি স্মরণ করবে।

শেষ কমান্ড থেকে দ্বিতীয় যুক্তির জন্য, এটি হবে:

<Esc> 1 <Esc> .

আপনি যদি তৃতীয় যুক্তি চেয়েছিলেন, তাহলে

<Esc> 2 <Esc> .

... ইত্যাদি।

অন্যরা যেমন উল্লেখ করেছে, আপনি যদি পূর্ববর্তী কমান্ড থেকে শেষ যুক্তি চান , তবে এর জন্য একটি নির্দিষ্ট শর্টকাট রয়েছে:

<Esc> .

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