যখন আমি শেল প্রম্পটে আপ চাপি তখন একই উপসর্গের সাথে পূর্ববর্তী কমান্ডটি অনুসন্ধান করুন


19

একটি ফ্রিবিএসডি বিশ্ব থেকে আগত আমি লিনাক্স টার্মিনালটি ফ্রিবিএসডি-এর মতো আচরণ করাতে চাই, বিশেষত 9.1 সংস্করণটি, মূলত আপনি যখন cdটার্মিনালে টাইপ করেন এবং "আপ" তীরটি চাপুন তখন আপনি ইতিহাসের সমস্ত কমান্ডগুলি ব্রাউজ করতে পারেন cdযা আপনাকে শুরু করে যা আপনাকে তৈরি করে অনেক সময় অর্জন।

লিনাক্স ডেবিয়ান বা সেন্টোসে এই বৈশিষ্ট্যটি কীভাবে সক্ষম করতে হয় তা আমি জানি না যা আমাকে পুরো টাইপ করতে বাধ্য করে, কেউ দয়া করে সহায়তা করতে পারে।


7
এটি শেলের একটি ফাংশন, টার্মিনাল নয়। আপনি ফ্রিবিএসডি-তে কোন শেল ব্যবহার করছেন? আপনি লিনাক্সের জন্য একই (বা অনুরূপ) শেল পেতে সক্ষম হতে পারেন।
সিজেএম

আমি টিসিএস শেল ব্যবহার করছি।
আবদিলিল্লাহ বানাউ

2
আমি OS X এর অধীনে tcsh শেল ব্যবহার করছি এবং এই সহজে ব্যবহারযোগ্য সুদর্শন আচরণ ছিল না ... কিছু অনুসন্ধানের পর, আমি আমি নির্বাণ এটা সক্রিয় পাওয়া bindkey -k (up|down) history-search-(back|for)wardআমার মধ্যে .tcshrc যেমন এখানে বর্ণিত । শান্ত!
গ্যারেট অ্যালব্রাইট

উত্তর:


34

নিম্নলিখিতগুলিতে যুক্ত করুন ~/.inputrc:

# Press up-arrow for previous matching command
"\e[A":history-search-backward
# Press down-arrow for next matching command
"\e[B":history-search-forward

ব্যাখ্যা

~/.inputrcজিএনইউ পঠনের জন্য কনফিগারেশন ফাইল । কমান্ড লাইন সম্পাদনার জন্য রিডলাইন সহ অনেকগুলি শেল bashএবং tcshব্যবহার করে। উপরের দুটি লাইন আপ-তীর কী ( \e[A) এবং ডাউন-তীর কী ( \e[B) এর জন্য যখন পালানোর ক্রমগুলির মুখোমুখি হবে তখন তার ইতিহাস অনুসন্ধান কার্যকারিতাটি শুরু করতে রিডলাইনকে বলবে ।


আমি বর্তমান কমান্ডের শেষের দিকে শেষ লাইনের শেষ শব্দটি রাখতে F12 যুক্ত করতে চাই । Last wordপ্রায়শই এমন একটি পথ যা আমি বিভিন্ন আরকেন ক্লিচগুলিতে চেষ্টা করে দেখতে চাই। আর শিফট F12 চেপে আমাকে ফেরত শুরু থেকে পুরো শেষ লাইনটি editting করা। ~/.inputrcএকটি সহজ সরঞ্জাম।
জুলানব


6

যা ঘটছে তা হ'ল ফ্রিবিএসডি এবং লিনাক্স ডিফল্টরূপে বিভিন্ন শেল ব্যবহার করে। থেকে FreeBSD অক্ষমতা tcsh শেল , যা অতীতে ব্যাশ চেয়ে বৈশিষ্ট্য ভাল ইন্টারেক্টিভ ছিল (কিন্তু ব্যাশ ধরা হয়েছে) কিন্তু লক্ষণীয়ভাবে খারাপ স্ক্রিপ্টিং বৈশিষ্ট্য

আপনি যে পরিবেশটি ব্যবহার করছেন তা পাওয়ার সহজ সরল উপায় হ'ল লিনাক্স-এ আপনার শেলটি টিসিএস-তে স্যুইচ করা। প্রদত্ত যে টিসিএসটি সিস্টেম-ব্যাপী ইনস্টলড রয়েছে (যদি তা না হয় তবে আপনার সিস্টেম প্রশাসককে এটি ইনস্টল করতে বলুন), chsh -s tcshআপনার ডিফল্ট শেল পরিবর্তন করতে চালান ।

বিকল্পভাবে, আপনি যে আদেশটি ব্যবহার করেছেন তা পেতে আপনি ব্যাশ সেট আপ করতে পারেন। ডিফল্টরূপে, Upএবং Downতীরগুলি ইতিহাসের সমস্ত কমান্ডের মধ্যে নেভিগেট করে, কেবল আপনি টাইপ করা উপসর্গ দিয়ে শুরু করেন না। আপনি যে ব্যবহারটি ব্যবহার করছেন তা এটিকে পরিবর্তন করতে, নীচের লাইনগুলিকে বাশের আরম্ভের ফাইলে রাখুন, যা .bashrcআপনার হোম ডিরেক্টরিতে রয়েছে। হয় . ~/.bashrcআরম্ভের ফাইলটি পুনরায় পড়তে একটি নতুন শেল চালান বা শুরু করুন।

bind '"\eOA": history-search-backward'
bind '"\e[A": history-search-backward'
bind '"\eOB": history-search-forward'
bind '"\e[B": history-search-forward'

যখন আপনি একটি তীর কী টিপেন তখন আপনার টার্মিনালটি শেলের কাছে প্রেরণের ক্রমগুলি প্রেরণ করে। Upহতে পারে \eOA(পালাবার, O, A) অথবা \e[Aআপনার টার্মিনাল উপর নির্ভর করে, এবং একইভাবে জন্য Down

ডিফল্টরূপে, কমান্ডের ইতিহাস অনুসন্ধান করতে ব্যাশ বিভিন্ন কী বাইন্ডিং সরবরাহ করে। আপনি Ctrl+ টিপুন R, তারপরে লাইনের যে কোনও জায়গায় এই সাবস্ট্রিং সমেত একটি কমান্ড সন্ধানের জন্য কয়েকটি অক্ষর লিখুন। পিছনে পরিবর্তে এগিয়ে যেতে Ctrl+ টিপুন S। অনুসন্ধানটি ইনক্রিমেন্টাল (যেমন আপনি যেমন টাইপ করেন); Alt+ Pএবং Alt+ Nআপনাকে একটি বর্ধনযোগ্য অনুসন্ধান দেয়।

ব্যাশ এবং টিসিএসের পরিবর্তে, আপনি জেডএসে স্যুইচ করতে পারেন, যার কিছু ঝরঝরে বৈশিষ্ট্য অন্যান্য শেলগুলিতে পাওয়া যায় না । জ্যাশের কাছে বাশের মতো ডিফল্টরূপে Ctrl+ Rএবং Ctrl+ রয়েছে S। আপনি tcsh- তে পেয়েছেন Upএবং Downপছন্দ করতে নিম্নলিখিত লাইনগুলিতে এতে রাখুন ~/.zshrc:

bindkey '\eOA' history-beginning-search-backward
bindkey '\e[A' history-beginning-search-backward
bindkey '\eOB' history-beginning-search-forward
bindkey '\e[B' history-beginning-search-forward

আপনি যদি সর্বদা একই শেল ব্যবহার করতে চান তবে আপনি পোর্টটি ইনস্টল থাকা অবস্থায় (আবার, আপনার সিস্টেম প্রশাসককে জিজ্ঞাসা করুন) ফ্রিবিএসডি-তেও ব্যাশ বা zsh ব্যবহার করতে পারেন।


1

tcshবেশিরভাগ লিনাক্স বিতরণের জন্য উপলব্ধ। tcshপ্যাকেজটি ইনস্টল করার চেষ্টা করুন , তারপরে chsh -s /bin/tcshএটিকে আপনার ডিফল্ট শেল হিসাবে চালিত করুন।


1
অথবা আপনি বাশে স্যুইচিং বিবেচনা করতে পারেন (আমি করেছি)।
কিথ থম্পসন

1

অন্যান্য উত্তরগুলি এটিকে মোকাবেলা করে তবে আপনি যদি আরও চান তবে https://github.com/zsh-users/zsh-history-substring-search দেখুন

প্রেজ্টো ( https://github.com/sorin-ionescu/prezto ) এছাড়াও zsh গুডিতে পূর্ণ।


আপনার উত্তরের জন্য আপনাকে ধন্যবাদ, যেভাবে আমি এখনও দেখতে পাচ্ছি না বাশ বা টিসিএসের উপর zsh কী কী সুবিধা রয়েছে?
আবদুলিল্লাহ বেনাউ

1
হুম, আপনি এই সমস্ত শেলের মধ্যে প্রতিটি বেসিক স্টাফ বেশ কিছু করতে পারেন। আমি zsh ব্যবহার করি কারণ বেশ ভালভাবে রক্ষণাবেক্ষণ করা প্রেজ্টো বান্ডিল (সম্ভবত বড় গেমের চেঞ্জার), ডান প্রম্পট (যা একচেটিয়া বৈশিষ্ট্য) এবং কারণ এটি ব্যাশের (কনজিগারেশন এবং স্টাফ) চেয়ে বেশি পালিশ বোধ করে।
ফুয়াদ সৌদ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.