ইতিহাসকে বাশানোর জন্য লাইনগুলি ইনজেক্ট করুন


9

ডিফল্টরূপে বাশ ~/.bash_historyইতিহাস থেকে লাইনগুলি লোড করে । লোড করার জন্য কাস্টম ফাইল যুক্ত করা সম্ভব? আমি প্রায়শই ব্যবহার করি কমান্ডযুক্ত ফাইলটি ইনজেক্ট করতে এবং অন্তর্নির্মিত অনুসন্ধানের মাধ্যমে এগুলিতে অ্যাক্সেস করতে চাই।


2
সাধারণত লোকেরা প্রায়শই ব্যবহৃত কমান্ডগুলির জন্য উপকরণ যুক্ত করে ...
HBruijn

দারুণ. তবে এটি তেমন নয় - আমি নিয়মিত ব্যবহার করি এমন কমান্ডগুলির জন্য আমি উপকরণগুলি ব্যবহার করি তবে আমার প্রচুর কমান্ড রয়েছে যার মধ্যে প্রচুর যুক্তি রয়েছে যা আমি পরিস্থিতির উপর ভিত্তি করে সংশোধন করতে চাই।
rgtk

4
আপনাকে কোনও ধরণের ফাইল সংশোধন করতে হবে, যা পাগল বলে মনে হচ্ছে এবং এটি কার্যকর নাও হতে পারে। কেবলমাত্র আপনার দীর্ঘ কমান্ডগুলিকে একটি শেল স্ক্রিপ্ট করুন যা আর্গুমেন্ট গ্রহণ করে এবং এটিতে /usr/local/binবা কোনও কিছু ফেলে দেয়
ওয়েসলে

আপনি যদি এগুলি ঘন ঘন ব্যবহার করেন তবে সেগুলি কি তবে আপনার ইতিহাসে থাকবে না?

কার্যাবলী ঘোষণা .bashrc?
মার্ক কে কোয়ান

উত্তর:


13

আমি alias h='history|grep'আমার ব্যাশ প্রোফাইলে বোঝাই করে এটিকে সহজ রাখি।

সুতরাং আমার কর্মপ্রবাহটি h commandউদাহরণস্বরূপ:h hpssa

#  h hpssa
  202  05-28-2015 11:54:33  hpssacli
  217  05-28-2015 11:54:33  hpssa -start
  225  05-28-2015 11:54:33  hpssacli -stop
  226  05-28-2015 11:54:33  hpssa -stop
  228  05-28-2015 11:54:33  hpssa -start

যদি আমি " hpssa -stop" চালাতে চাই, আমি কেবল টাইপ করব!226


এটি কেবল আমার পন্থা, তবে আপনি কীভাবে ইতিহাসের আইটেমগুলি স্মরণ করছেন তা পরিবর্তন করতে পারেন ify আমি মনে করি না যে ইতিহাসের ফাইলটিতে ডেটা আসলে ইনজেক্ট করা বুদ্ধিমান।


দুর্দান্ত কৌশল, একটি চুরি
উইম

প্রস্তাব দিন আপনার ইতিহাসে ফিরে অনুসন্ধানের জন্য Ctrl-R কী করে তা একবার দেখতে চান। আপনার মনকে

2
@ ক্যামেরনকের এর ঠিক নীচে উত্তরটি দেখুন ( সার্ভারসফল্ট / এ / 5 5৯১১১৫/১২০৪৮৮ )। বিশেষভাবে Ctrl + R ব্যবহারের নেতিবাচক দিকটি হ'ল এটি আপনাকে এক সাথে প্রাসঙ্গিক কমান্ড দেয়, যখন ইয়েওয়াইটের অ্যাপ্রোচ সমস্ত প্রাসঙ্গিক কমান্ডের একটি তালিকা প্রদান করে।
জেনি ডি

যদিও এটি দুর্দান্ত কৌশল, তবে এ প্রশ্নের কোনও উত্তর দেয় না। এটি কীভাবে সর্বোচ্চ ভোট প্রাপ্ত উত্তর তা আমি বুঝতে ব্যর্থ। আমার ইউজকেসটি হ'ল আমার কাছে একটি ডকার ইমেজ রয়েছে যা আমি যখন বাইরে চলে আসি তখন এর ইতিহাস হারাতে থাকে। আমি ভেবেছিলাম ভাল লাগবে যদি আমি কমান্ড লাইনের মাধ্যমে কোনও হিস্ট্রি ফাইল পাস করতে পারিdocker run ...
কুমারহর্শ

@ কুমার_হার্স দয়া করে হার্ড
ew white

7

আমি পূর্বে প্রবেশকৃত দীর্ঘ কমান্ডগুলি পুনরুদ্ধার করতে ইতিহাসের পিছনে অনুসন্ধান করে Ctrl-R( reverse-search-historyরিডলাইন কমান্ড) এর উপর খুব নির্ভরশীল থাকতাম তবে আমি এখন এলিয়াস এবং শেল স্ক্রিপ্ট / ফাংশন ব্যবহার করতে পছন্দ করি। যাইহোক, বাশ historyবিল্টিন কমান্ডটি আপনার বর্তমান ইতিহাসে কাস্টম কমান্ডগুলির একটি তালিকা লোড করতে ব্যবহৃত হতে পারে।

history -r [filename]

বাশ ম্যান পৃষ্ঠা থেকে:

ইতিহাস ফাইলের সামগ্রীগুলি পড়ুন এবং সেগুলি বর্তমান ইতিহাস তালিকায় যুক্ত করুন।

স্টার্ট-আপ অটোমেশন

আমি আমার কমান্ডের শেষ লাইন হিসাবে এটি যুক্ত করে স্বয়ংক্রিয়ভাবে এই আদেশটি চালু করার চেষ্টা করেছি .bashrc। তবে আমি যখন নতুন শেল শুরু করি তখন আমার কাস্টম ইতিহাসের আদেশগুলি পাওয়া যায় নি। মনে হচ্ছে যে শেল ইতিহাস শুধুমাত্র ডিফল্ট থেকে লোড হয় .bash_historyফাইল: পর স্টার্ট আপ ফাইল প্রসেস করা হয়েছে এবং মাত্র আগে প্রম্পট ইন্টারেক্টিভ শেল জন্য উপস্থাপন করা হয়। দুর্ভাগ্যক্রমে, মনে হচ্ছে এটি স্বয়ংক্রিয় করার কোনও সহজ উপায় নেই।


2

@ অ্যান্থনি জিওগেইগান যেমন পর্যবেক্ষণ করেছেন, স্টার্টআপ ফাইলগুলি প্রক্রিয়া করার পরে ইতিহাসটি লোড হয়। এটি একটি স্টার্টআপ ফাইলে কাঙ্ক্ষিত ইতিহাসকে প্রাক লোড করার জন্য আলাদা উপায়ে প্রস্তাব করে:

mv .bash_history .bash_history.tmp
cat .extra_hist .bash_history.tmp > .bash_history
# or swap them, to put the extra stuff at the end of the history, for
# quicker ^R access.

নোট করুন যে এই পদ্ধতির ফলে আপনার বিশেষ আদেশের একাধিক অনুলিপি আপনার .bash_history এ সময়ের সাথে যুক্ত হতে পারে। আপনি আপনার বিশেষ কমান্ড কমেন্ট লাইনের সাথে আবদ্ধ করতে পারেন, যাতে আপনি সহজেই .bash_history ফাইলটি পূরণ করার অংশ হিসাবে সেগুলি (যেমন, সেড মাধ্যমে) সন্ধান করতে এবং অপসারণ করতে পারেন। কিছুটা এইরকম:

cp .extra_hist .bash_history
sed '/: remove from here/,/:remove to here/d' .bash_history >> .bash_history
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.