পূর্ববর্তী বাশ কমান্ডের যুক্তিটি আমি কীভাবে মনে করতে পারি?


312

পূর্ববর্তী কমান্ডের যুক্তিটি পুনরায় স্মরণ করার জন্য বাশে কোনও উপায় আছে কি?

আমি সাধারণত vi file.cঅনুসরণ করি gcc file.c

পূর্ববর্তী কমান্ডের যুক্তিটি পুনরায় স্মরণ করার জন্য বাশে কোনও উপায় আছে কি?


2
সম্ভাব্য অনুরূপ: stackoverflow.com/questions/4009412/...
eugenevd

উত্তর:


562

আপনি আগের কমান্ডের শেষ যুক্তিটি ব্যবহার করতে $_বা !$স্মরণ করতে পারেন ।

এছাড়াও Alt + .পূর্ববর্তী কমান্ড কোনো শেষ যুক্তি প্রত্যাহার ব্যবহার করা যেতে পারে।


121
এছাড়াও, যদি আপনি একটি অবাধ যুক্তি চান, আপনি ব্যবহার করতে পারেন !!:1, !!:2ইত্যাদি ( !!:0হয় পূর্ববর্তী কমান্ড নিজেই।) দেখুন gnu.org/software/bash/manual/bashref.html#History-Interaction
janmoesen

41
এর মতো !$, আপনি !^প্রথম যুক্তির জন্য ব্যবহার করেন।
উইল

13
আহ ... * নিক্স ... তুমি সৌন্দর্যের জিনিস ... প্রতিদিন আমি তোমাকে আরও ভালবাসি
jx12345

আমরা পূর্ববর্তী কমান্ডের দ্বিতীয় থেকে শেষ যুক্তিটি কীভাবে উল্লেখ করতে পারি? উদাহরণস্বরূপ, আমি যদি দিয়েছি তবে আমি echo tiger rabbitকীভাবে tigerনীচের আদেশটি উল্লেখ করতে পারি ?
চ্যান কিম

3
Alt + .vi মোডে কাজ করে না। এখানে বিভ্রান্ত হওয়া অন্যদের জন্য কেবল এফওয়াইআই।
ব্রায়ান ম্যাকচ্যাটন

160

পূর্ববর্তী কমান্ডটিতে দুটি যুক্তি থাকলে এই জাতীয় ছিল

ls a.txt b.txt

এবং আপনি প্রথমটি চেয়েছিলেন, আপনি টাইপ করতে পারেন

!:1

দান

a.txt

অথবা আপনি উভয় চাইলে, আপনি টাইপ করতে পারেন

!:1-2

দান

a.txt b.txt

আপনি এটি যেকোন সংখ্যক আর্গুমেন্টে প্রসারিত করতে পারেন, যেমন:

!:10-12

@ আরএনএ, আমি আবার চেষ্টা করেছিলাম যে আমি কোনও টাইপো অন্তর্ভুক্ত না করেছি তা নিশ্চিত করার জন্য, আপনি কি আরও কিছু বিশদ সরবরাহ করতে পারেন (উদাঃ উবুন্টু কমান্ড লাইন, উইন্ডোজের জন্য সাইগউইন? ত্রুটির বার্তা? পূর্ববর্তী লাইন?)
রবার্ট গওল্যান্ড

আমি জিএনইউ ব্যাশ, সংস্করণ 3.2.51 (1) -রিলেজ (x86_64-আপেল-ডারউইন 13) কপিরাইট (সি) 2007 ফ্রি সফটওয়্যার ফাউন্ডেশন, ইনক এর ত্রুটি বার্তাটি হ'ল-bash: :1-2: bad word specifier
আরএনএ

2
আগের লাইনে দুটি যুক্তি না থাকলে আমি একই জিনিসটি পাই। যেমন। লাইন 1 ls a.txtলাইন 2ll !:1-2
রবার্ট গাউল্যান্ড

তুমি ঠিক বলছো. এটি আমি একটি বোকা ভুল। ধন্যবাদ!
আরএনএ

এছাড়াও সমস্ত আর্গুমেন্ট পেতে, !:^-$ব্যবহার করা যেতে পারে বা অবশ্যই সংখ্যার সাথে সমান কোড।
816-8055

88

!!:nযেখানে nযুক্তি যদি আপনি চান 0 ভিত্তিক অবস্থান।

উদাহরণ স্বরূপ:

echo 'one' 'two'
# "one two"

echo !!:2
# "two"

!উপসর্গ এক্সেস পূর্ববর্তী কমান্ড ব্যবহার করা হয়।

অন্যান্য দরকারী আদেশ:

  • !$ - পূর্ববর্তী কমান্ড থেকে শেষ যুক্তি
  • !^ - পূর্ববর্তী কমান্ড থেকে প্রথম যুক্তি (প্রোগ্রাম / অন্তর্নির্মিত / স্ক্রিপ্টের পরে)
  • !! - পূর্ববর্তী কমান্ড (প্রায়শই "bang bang" এর উচ্চারণ হয়)
  • !n- nথেকে কমান্ড নম্বরhistory
  • !pattern - অতি সাম্প্রতিক কমান্ড মেলাচ্ছে pattern
  • !!:s/find/replace- শেষ আদেশ, বিকল্প findসহreplace

কমান্ডের ইতিহাস সম্পর্কিত আরও তথ্য


7
পরিবর্তে !!:s/find/replace, আপনি এটি করতে পারেন ^find^replace
বড় ম্যাকলার্জহিউজ

এছাড়াও: !* - পূর্ববর্তী কমান্ড থেকে সমস্ত আর্গুমেন্ট (প্রোগ্রাম / অন্তর্নির্মিত / স্ক্রিপ্টের পরে)। যেমন: ls *.tmp *.cache rm !*
এফয়েড

68

কমান্ড লাইনে আপনি esc- .বা alt+ টিপতে পারেন.

এটি আপনার পূর্ববর্তী কমান্ডগুলির শেষ যুক্তির মধ্য দিয়ে যায়


আমি সর্বদা পাশাপাশি কাজ করার জন্য এবং কীগুলি খুঁজে পেয়েছি ।
বালতি

@Bucket কি, যদিও পূর্ববর্তী কমান্ড যেতে যখন আন্তোনিও দ্বারা উপলব্ধ সমাধান পূর্ববর্তী আর্গুমেন্ট মধ্য দিয়ে যেতে (শুধুমাত্র প্রতিটি পূর্ববর্তী কমান্ডের গত যুক্তি) অনুমতি দেয়
everyonesdesign

30

যদি আপনি কোনও নির্দিষ্ট কমান্ডের জন্য ইতিহাসে প্রদত্ত নম্বরটি জানেন তবে আপনি এই শর্তটি ব্যবহার করে নিম্নলিখিত পদগুলি ব্যবহার করতে পারেন।

ইতিহাসের তৃতীয় কমান্ড থেকে দ্বিতীয় যুক্তিটি নিতে নিম্নলিখিত ব্যবহার করুন,

!3:2

ইতিহাসের পঞ্চম শেষ কমান্ড থেকে তৃতীয় যুক্তি নিতে নিম্নলিখিত ব্যবহার করুন,

!-5:3

একটি বিয়োগ চিহ্ন ব্যবহার করে, আপনি ইতিহাসের শেষ কমান্ডটি থেকে অনুগ্রহ করতে বলেছেন।


19

! * পূর্ববর্তী সমস্ত যুক্তি সহ একটি নতুন কমান্ড চালায়।

ls /tmp
cd !*
#you are now in /tmp

এটি ওএসএক্সে আমার পক্ষে কাজ করে নি - $_পরিবর্তে ব্যবহার করতে হয়েছিল।
মাইক ডব্লিউ

16

হ্যাঁ, আপনি !$পূর্ববর্তী কমান্ডের শেষ যুক্তিটি স্মরণ করতে ব্যবহার করতে পারেন ।


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