ব্যাশে টার্মিনাল সেশন কমান্ডের ইতিহাসকে কীভাবে সিঙ্ক করবেন?


13

~/.bash_historyটার্মিনাল সেশনে থাকাকালীন আমি আমার সাম্প্রতিক কমান্ডগুলি অনুসন্ধান করার চেষ্টা করেছি কিন্তু সেগুলি সেখানে উপস্থিত ছিল না। আমার ধারণা এটি কারণ এটি আমার একাধিক টার্মিনাল সেশন খোলা আছে।

বাশ_হিসটরি ফাইলটিতে বর্তমান টার্মিনাল সেশনের কমান্ডের ইতিহাসটি (সেশনটি বন্ধ না করে এবং সেই পরিবেশটি হারিয়ে না ফেলে) আমি কী সিঙ্ক করতে পারি (যেমন সিঙ্ক-পুশ বা সিঙ্ক-লিখন-আউট)?

( syncকমান্ডটি কিছু সিস্টেমে ফাইল-সিস্টেম পরিবর্তনগুলি কীভাবে সংরক্ষণ করে তা ধারণার তুলনায় এটি একইরকম হবে ))

আমি কল্পনা করেছি যে আমি একাধিক অধিবেশন ইতিহাস সংরক্ষণের জন্য বাশ সেট আপ করতে পারব তবে আপনি যখন নতুন মেশিনে কাজ করছেন তখন পরিস্থিতিগুলিতে বর্তমান ইতিহাসের বাফারটিকে চাপ দেওয়ার ক্ষমতা এখনও কার্যকর হবে এবং আপনি দুর্ঘটনাক্রমে বাশ সেট আপ করতে ভুলে গিয়েছিলেন যেভাবে আপনি চান ।


আমি history -a শেল বিল্টিন কমান্ড চেষ্টা করেছি কিন্তু তার পরে আমি এখন .bash_historyফাইলটিতে 'অনুমতি অস্বীকার' পেয়েছি ।
n611x007

উত্তর:


19

এই লাইনটি এতে যুক্ত করুন .bashrc:

export PROMPT_COMMAND="history -a; history -n"

নতুন টার্মিনালটি খুলুন এবং পরীক্ষা করুন।

ব্যাখ্যা

  • history -a ইতিহাসের ফাইলে নতুন ইতিহাসের লাইন যুক্ত করে।
  • history -nbashইতিহাস ফাইল থেকে সেশনের বর্তমান ইতিহাসের তালিকায় পঠিত নয় এমন লাইনগুলি পড়তে বলে ।
  • PROMPT_COMMAND: এই ভেরিয়েবলের বিষয়বস্তু bashপ্রদর্শন প্রম্পটের আগে নিয়মিত কমান্ড হিসাবে চালানো হয় । সুতরাং প্রতিবার আপনি কোনও আদেশ কার্যকর করার পরে history -a; history -nকার্যকর করা হবে এবং আপনার bashইতিহাস সিঙ্ক হবে।

ধন্যবাদ! আমি জানি না কেন আমি আগে অনুমতি অস্বীকার করলাম তবে নতুন টার্মিনাল সহ এখন এটি প্রত্যাশার মতো কাজ করবে বলে মনে হচ্ছে! আমি অনুমান করি যে আমি সাধারণত history -aঅশোধিত বাশার্ক সহ টার্মিনালেও ব্যবহার করতে সক্ষম হব।
n611x007

কখন এর পারফরম্যান্সের প্রভাবগুলি সম্পর্কে চিন্তা করতে হবে? (আমি লো-এন্ড ডিভাইসগুলির বিষয়ে চিন্তা করছি, এটি কতটা বড় ওভারহেড তৈরি করে তা নিশ্চিত নয়))
n611x007

1
এছাড়াও আপনার ইতিমধ্যে একটি প্রম্পট কমান্ড থাকতে পারে, export PROMPT_COMMAND="${PROMPT_COMMAND};history -a; history -n"
ফ্যাবিয়ান

যদি ${PROMPT_COMMAND}খালি থাকে তবে নেতৃত্বের কারণে এটি একটি ত্রুটি দেয়;
বোরিস ডাপ্পেন

@ বরিসডাপেন ঠিক বলেছেন তবে এটি সহজেই প্রতিকার করা যায়export PROMPT_COMMAND="${PROMPT_COMMAND}${PROMPT_COMMAND:+;}history -a; history -n"
টিএমএল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.