আমি কিভাবে ব্যাশের ইতিহাস অনুসন্ধান করতে পারি এবং একটি কমান্ড পুনরায় চালু করতে পারি?


283

আমি কি ব্যাশে ইতিহাস অনুসন্ধান করতে পারি এবং ফলাফলটি চালাতে পারি?

উত্তর:


408

আদর্শ জন্য ctrl আর কমান্ড লাইনে এবং আগের কমান্ডটি টাইপ করা শুরু করুন। একবার ফলাফল প্রদর্শিত আঘাত দেখাচ্ছে জন্য ctrl আর অন্যান্য ম্যাচ দেখতে। যখন আপনি চান কমান্ড প্রদর্শিত হবে, সহজে চাপুন প্রবেশ করান

উল্লেখ্য যে যখন জন্য ctrl আর ডিফল্ট, যদি আপনি কমান্ড চেয়েছিলেন ( reverse-search-history ) আবদ্ধ করা জন্য ctrl টি আপনি নিম্নলিখিত সঙ্গে যে কনফিগার করতে পারে:

bind '"\C-t": reverse-search-history'

আপনার কাছে উপলব্ধ অন্যান্য রেডলাইন বাইন্ডেবল কমান্ডের পুরো হোস্ট রয়েছে। তাকান bash মানুষ পাতা

অনুসন্ধান এবং অ্যাক্সেসযোগ্য কমান্ড ইতিহাস অ্যাক্সেস করতে বাশ অনেক সুবিধা আছে। যা সবচেয়ে মৌলিক history builtin। শুধু টাইপ করা:

$ history

সংখ্যাসূচক সূচী সহ কমান্ডগুলির একটি তালিকা মুদ্রণ করবে, যেমন:

$ history
1 clear
2 ls -al
3 vim ~/somefile.txt
4 history
$

তারপর আপনি সূচকগুলিকে একক দিয়ে পূর্বনির্ধারিত করে তাদের সংখ্যাসূচক সূচী ব্যবহার করে এই কমান্ডগুলি কার্যকর করতে পারেন !, হিসাবে মিচ চিহ্নিত করা:

$ !1

চালানো হবে clear কমান্ড। অন্তর্নির্মিত ইতিহাসে অনেক বৈশিষ্ট্য রয়েছে, আপনি আরও দেখতে পারেন bash এবং history মানুষ পৃষ্ঠা।

ব্যবহার করার সময় আপনি আপেক্ষিক নেতিবাচক অফসেট উল্লেখ করতে পারেন ! ডিজাইনার, তাই আমরা আমাদের ইতিহাস তালিকা ব্যবহার করে, যদি আমরা চালানো চেয়েছিলেন vim আবার, আমরা করতে পারি:

$ !-2

মূলত যা কমান্ডটি চালানো হয়েছে তা চালানোর জন্য আপনাকে "দুই কমান্ড আগে" চালানো হয়েছে। ইতিহাস তালিকায় পূর্ববর্তী কমান্ড চালানোর জন্য, আমরা শুধু ব্যবহার করতে পারি !! (যা শুধু জন্য shorthand হয় !-1 )।

দ্য ! ডিজাইনার আপনাকে কত সংখ্যক কমান্ড চালানোর নির্দেশ দেয় তা সীমাবদ্ধ করে না। hayalci আপনি নির্দেশ করতে পারেন যে দেখিয়েছেন bash এটি যে পাঠ্য দিয়ে শুরু হয় তার উপর ভিত্তি করে একটি কমান্ড চালানো (ব্যবহার করে ! ) বা কমান্ড নিজেই টেক্সট (ব্যবহার করে !? )। আবার, আমাদের উদাহরণ ইতিহাস তালিকা ব্যবহার করে, যদি আমরা চালাতে চেয়েছিলাম clear আবার, আমাদের যা করতে হবে তা হল টাইপ:

$ !cl

এবং প্রেস প্রবেশ করান । এবং কি সম্পর্কে vim? যে হিসাবে হিসাবে সহজ:

$ !?some

থেকে সবচেয়ে গুরুত্বপূর্ণ পয়েন্ট hayalci এর প্রতিক্রিয়া কল হয় shopt builtin:

$ shopt -s histverify

এটি ইতিহাস যাচাইকরণ সক্ষম করবে যাতে আদেশগুলি মিলে যায় !, !!, এবং !? ডিজাইনারদের অন্ধভাবে মৃত্যুদণ্ড দেওয়া হয় না, বরং কমান্ড লাইন এ ভরাট করা যাতে আপনি নিশ্চিত করতে পারেন যে তারা কার্যকর করার আগে তারা কোনও খারাপ কাজ করবে না। যখন আপনি root ব্যবহারকারী হিসাবে কমান্ডগুলি চালাচ্ছেন তখন এটি আরও গুরুত্বপূর্ণ। এই অপশন আপনার মধ্যে সেট করা যাবে .bashrc স্টার্টআপ ফাইল যাতে আপনি যখনই লগ ইন করেন তখন এটি সেট হয়।

যেমন ইতিমধ্যে উল্লেখ করা হয়েছে, এই তথ্য সব থেকে সংগৃহীত করা যাবে bash মানুষ পাতা । জন্য!, !!, এবং! ডিজাইনার, বিভাগে একটি চেহারা নিতে 9.3 ইতিহাস সম্প্রসারণ


36
+1 আমি সব সিস্টেমের জন্য 1২ বছরের বেশি সময় ধরে লিনাক্স ব্যবহার করছি। আমি যে অস্তিত্ব জানেন না। আমি ইচ্ছা করতে পারে +10 আমি কিভাবে এটা মিস্ হয়নি ??
Aiden Bell

আমি নিয়মিত emacs ব্যবহার শুরু না হওয়া পর্যন্ত এটি আবিষ্কার না। তারপর আমি ঘটনাক্রমে এক দিনের মধ্যে এটি টাইপ করেছিলাম (ভাবছিলাম আমি এমাক্সে ছিলাম)।
Sean Bright

1
অনেক সিস্টেমে, আপ-তীর টিপে একই কাজ করে।
mas

3
আমার জন্য উপরের তীরটি পূর্ববর্তী কমান্ডে যায়। কিন্তু হ্যাঁ, এটা আপনি চান যাই হোক না কেন সব bindable।
Sean Bright

2
এছাড়াও CTRL + R চাপার পরে আপনি পূর্ববর্তী কমান্ডটিতে ফিরে যেতে CTRL + SHIFT + R টি একাধিক বার ব্যবহার করতে পারেন
Gal Bracha

35

একটি বিকল্প হিসাবে Ctrl + R , আপনি টাইপ করে ইতিহাস অনুসন্ধান করতে পারেন

!text

এটি সাম্প্রতিক কমান্ডের জন্য ইতিহাস অনুসন্ধান করবে শুরু 'টেক্সট' সঙ্গে।

কিন্তু আমি আপনাকে ভুল কমান্ডটি কার্যকর করার জন্য এটি আপনার .bashrc এ রাখি।

shopt -s histverify

এই পরে, যে যেমন bash নির্দেশ কোন ইতিহাস কর্ম (মত !!:s/prev_text/after_text ), এটি কমান্ড প্রম্পটে ফলে লাইন স্থাপন করে। তারপরে আপনি কমান্ডটি পর্যালোচনা বা সম্পাদনা করতে পারেন এবং পরে এন্টার টিপুন।


5
"টেক্সট" সহ শুরু হওয়া সাম্প্রতিক কমান্ডটি পুনরায় চালু করার জন্য!
mark4o

3
কেউ যদি একত্রিত হয়!!, '!!', '!?', 'ইতিহাস | grep ', এবং' ctrl-r 'একটি ব্যাপক উত্তর হিসাবে, আমি এটি নির্বাচন করব।
Richard Hoskins

30

আপনিও করতে পারেন:

history | grep "stuff"

এটা ভালো কিছু ফিরে হবে

num stuff

তারপর আপনি টাইপ করতে পারেন

!num

14

আমি বিপরীত-অনুসন্ধান-ইতিহাসের উপর ইতিহাস-অনুসন্ধান-পশ্চাদ্ধাবন ব্যবহার করতে পছন্দ করি। প্রাক্তন আপনি কমান্ড কয়েক অক্ষর টাইপ করতে দেয় তারপর অনুসন্ধান কী টিপুন, প্রথমত সার্চ কীটি আঘাত করার পরিবর্তে অনুসন্ধান স্ট্রিংটি টাইপ করুন।

আমার সিস্টেমে ডিফল্টরূপে, এম-পি এবং এম-এন একই ফাংশনে আবদ্ধ থাকে তবে আমি তীরচিহ্নগুলি বাঁধাই পছন্দ করি:

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

12

চমৎকার লেখা, শান! আমি এই মন্তব্য করা চাই, কিন্তু আমি কয়েক খ্যাতি লাজুক পয়েন্ট লাজুক। :-)

আরেকটি সম্পর্কিত এবং দরকারী কৌশল একটি শব্দ পরিবর্তন করার সময় পূর্ববর্তী কমান্ড চালানোর ক্ষমতা। আপনি ডিরেক্টরী নাম টাইপ করা বলুন, বা ফাইল নাম পরিবর্তন করতে চান:

$ echo my name is bob
my name is bob
$ ^bob^jordan
echo my name is jordan
my name is jordan

কমান্ড চালানোর আগে কমান্ডটি প্রসারিত, প্রতিস্থাপিত, এবং আউটপুটটি লক্ষ্য করুন, তাই যদি ভুল কমান্ড চালানো হয় তবে আপনি দেখতে পারেন যে এটি কী করছে।


12

আমি সত্যিই একটি মহান উদীয়মান আছে, জ। এটি সত্যিই "ইতিহাস | grep", তবে আমি "grep -E -v" সহ পূর্ববর্তী "h কমান্ড" এন্ট্রিগুলি ফিল্টার করি।

alias h="history | grep -E -v '^ *[0-9]+ *h ' | grep "

মত ব্যবহার

h aliases
2003  less .bash_aliases

এই কমান্ড যোগ করে সম্পন্ন করা যেতে পারে HISTIGNORE
tanenbring

5

Ctrl-R ব্যবহার করে ইতিহাসের মাধ্যমে নেভিগেশনের মতো IMO গুরুতর, আপনি বিবেচনা করতে পারেন HH :

https://github.com/dvorka/hstr

যা নেভিগেশানটিকে আরও সহজ, সহজবোধ্য এবং দক্ষ করে তোলে - কমান্ডটি চালানোর সাথে সাথে:

enter image description here


এটি কিভাবে ব্যবহার করতে? এই ছবি দেখতে কোন কী টিপুন?
Nakilon

2
একবার আপনি যদি এইচএইচ ইনস্টল করেন তবে আপনি হ'ল হ'ল কমান্ডটি ব্যবহার করতে পারেন বা ডকুমেন্টেশনে বর্ণিত যেকোনো কীবোর্ড শর্টকাট (সাধারণত Ctrl-r) এ এটি বাঁধতে পারেন।
Martin Dvorak

এটা binds ctrl + r এখন ডিফল্টরূপে
Alleo

3

Bash কমান্ড প্রম্পটে, নিয়ন্ত্রণ-র টাইপ করুন, তারপরে আপনি যে কমান্ডটি চান তা কয়েকটি অক্ষর টাইপ করুন এবং ব্যাশের রেডলাইন সুবিধা কমান্ড ইতিহাসের মাধ্যমে যে কমান্ডের জন্য অনুসন্ধান করবে।

অনুসন্ধান শুরু করার পরে, আপনি পরবর্তী মেলিং কমান্ডে যাওয়ার জন্য আবার নিয়ন্ত্রণ-র টাইপ করতে পারেন।


3

আপনার শেল ব্যবহার করার জন্য কনফিগার করা আছে vi কী বাইন্ডিং ( set -o vi বা হচ্ছে set editing-mode vi মধ্যে $HOME/.inputrc ), তারপর আপনি সঙ্গে অনুসন্ধান করুন <Esc>/some-command<Return> এবং আঘাত n (পরবর্তী) বা Shift-n (পূর্ববর্তী) কমান্ড লাইন ইতিহাসের মাধ্যমে চক্র।


এই এক ভিআইএম ব্যবহারকারীদের নিকটতম।
Gabor Marton

2

জন্য CTRL + + আর @ জন 1024 প্রস্তাবিত ঠিক মত কাজ করে, তবে আপনার সাম্প্রতিক কমান্ডগুলির অনুরূপ যদি কিছুটা ক্লান্তিকর হয় এবং আপনি তাদের সবাইকে স্ক্যান করার দ্রুত উপায় চান। একটি বিকল্প ব্যবহার করা হবে history:

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