বেসে বিপরীত আই-অনুসন্ধানের মাধ্যমে কীভাবে চক্র করবেন?


443

টার্মিনালে, আমি CTRL-Rবেসে টাইপ করা মেলানো কমান্ড অনুসন্ধান করতে টাইপ করতে পারি । উদাহরণস্বরূপ, যদি আমি টাইপ করি CTRL-Rতবে grepতা আমার শেষ grepআদেশটি তালিকাভুক্ত করে এবং এটি ব্যবহার করতে আমি এন্টারটি চাপতে পারি। এটি শুধুমাত্র একটি পরামর্শ দেয় যদিও। পূর্বে টাইপ করা অন্যান্য মিলিত কমান্ডগুলির মাধ্যমে চক্র চালনের কোনও উপায় আছে কি?

উত্তর:


596

আমি যদি প্রশ্নটি সঠিকভাবে বুঝতে পারি তবে আপনি বারবার আঘাত করে বিকল্পগুলির মধ্যে চক্রটি চালিয়ে যেতে সক্ষম হবেন Ctrl+R

উদাহরণ:

Ctrl+R grep Ctrl+R Ctrl+R ...

এটি আপনার ইতিহাসের পিছনে সন্ধান করে। পরিবর্তে সামনের দিকে অনুসন্ধান করার জন্য, ব্যবহার করুন Ctrl+S, তবে আপনাকে XON / XOFF বৈশিষ্ট্যটি গ্রহণ করতে সক্ষম হতে পারে তার আগে: stty -ixon( .bash_profileপূর্বে বা ম্যানুয়ালি) সেট করতে হবে Ctrl+s। (আরও বিশদ এখানে ।)


23
+1 - এফওয়াইআই - আপনি এই স্ট্যাকওভারফ্লো উত্তর অনুসারেও অনুসন্ধান করতে পারেন ।
জর্দান আর্সেনো

7
এবং আপনার যদি পার হয়ে যায় তবে বিপরীত স্ক্রোলিংয়ের জন্য Ctrl + Shift + r ব্যবহার করুন।
উইসউইট

19
@ উইশুইট CTRL+SHIFT+rআমার পক্ষে কাজ করে না।
ম্যাক্সিম সুস্লোভ

9
@MaximSuslov এই প্রশ্নের দেখুন: stackoverflow.com/questions/791765/... আপনি যোগ করতে পারেন [[ $- == *i* ]] && stty -ixonআপনার .bashrc এবং তারপর CTRL+sবিপরীত হিসেবে কাজ করবেCTRL+r
gla3dr

9
@ জোর্দান আরসেনো আমি "অনুসন্ধানের দিকে এগিয়ে গিয়েছিলাম" এর অর্থ "আমি যে কমান্ডগুলি এখনও টাইপ করি নি তার জন্য অনুসন্ধান করুন"
জোশ জনসন

234

আপনি যদি মনে করেন যে কমান্ডটি ঘন ঘন ব্যবহার করা হবে তবে আপনি একটি ট্যাগ যুক্ত করতে পারেন

কমান্ড # ব্যবহারযোগ্য

তারপর

ctrl+r #useful

এটি কাজ করে কারণ #একটি মন্তব্য ডিলিমিটার, অর্থাত্ প্রতীকের পরে উপস্থিত সমস্ত কিছু একটি আদেশ হিসাবে ব্যাখ্যা করা হয় না। তবে এটি ইতিহাসে রেকর্ড করা হবে এবং এটি অনুসন্ধানযোগ্য।


5
সাধারণত আমি এই জাতীয় ট্যাগিং পছন্দ করি। #trg_bld # ওপেন_লগ
মকেশ

1
এই ট্যাগটি কোথায় যুক্ত করবেন?
সুদীপ ভান্ডারী

5
আপনার নির্দেশের ঠিক পরে সুদীপভাণ্ডারী # একটি মন্তব্য শুরু। যেমন ls -lah #useful
Andrei

47

আপনি এই লাইনগুলি ~ / .inputrc এ যোগ করে কিছুটা আলাদা অনুসন্ধান করতে উপরে এবং নীচের তীরগুলিও সেট আপ করতে পারেন:

"\e[A": history-search-backward
"\e[B": history-search-forward

কমান্ডের যে কোনও জায়গায় সাবস্ট্রিং অনুসন্ধান করার পরিবর্তে (যেমন Ctrl-r ) এটি কার্সারের বামে পাঠ্য দিয়ে শুরু হওয়া একটি কমান্ড অনুসন্ধান করবে । উদাহরণস্বরূপ, যদি আমি এই আদেশগুলি চালিত করি:

$ ls bart
$ ls fools

তারপরে দু'বার টাইপ করুন lsএবং টিপুন Up, এটি ls bartএকই জায়গায় কার্সারটি প্রদর্শন করবে । এর সাথে তুলনা করুন Ctrl- rযেখানে এটি lsসর্বশেষ লাইনে দ্বিগুণ খুঁজে পাবে , সুতরাং আগের লাইনটি সন্ধান করতে আপনাকে আবার এটি টিপতে হবে।

এই পদ্ধতির উভয়েরই শক্তি রয়েছে এবং উভয়ই প্রচুর সময় সাশ্রয় করতে পারে।


2
এটি ওএস এক্সেও মানসম্পন্ন, সুতরাং আপনাকে ~/.inputrcএই দুটি লাইন তৈরি এবং যুক্ত করার দরকার নেই ।
দাসকাজা

1
ফ্যালকোনপি যেমন এই উত্তরের মন্তব্যে লিখেছেন , উবুন্টুতে আপনাকে কেবল ~/.inputrcইতিহাস-অনুসন্ধান সহ দুটি লাইনে সংঘাতের দরকার
অর্পদ

আপনি এই উত্তরটি সম্পর্কে আরও তথ্যের জন্য এই পোস্টেও দেখতে পারেন
আন্দ্রেই

এটি আমার ম্যাকোসের (10.13) মানক ছিল না। আমি সবসময় এই কার্যকারিতা মিস করেছি!
forthrin

এ সম্পর্কে একটি ভাল বিষয় হ'ল আপনি এখনও ইতিহাসের মাধ্যমে নিয়মিত স্কিমিংয়ের জন্য
সিটিআরএল

0

সেখানে বিল্ট-ইন-এর জন্য একটি প্রতিস্থাপন এর Ctrl + Rনামক hstr । এটি একই সাথে (অন্যান্য জিনিসের মধ্যে) সমস্ত অনুসন্ধান টোকেনের সাথে মিলিয়ে কমান্ডের ইতিহাস অনুসন্ধান করতে এবং তীর কীগুলি ব্যবহার করে ফলাফলের মাধ্যমে চক্রের সন্ধান করতে দেয়:

উদাহরণ

এখানে একটি ডেমো স্ক্রিনকাস্ট

এটি ডেবিয়ান-পরিবার ওএসে ইনস্টল করা যেতে পারে:

add-apt-repository ppa:ultradvorka/ppa
apt-get update
apt-get install hstr

hstr --show-configuration >> ~/.bashrc

এবং তারপরে Ctrl + R(টার্মিনালটি পুনরায় খোলার পরে) ব্যবহার করুন।

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