ইতিহাস কমান্ড কিভাবে কাজ করে?


8

আমি যখন টার্মিনালে কোনও কমান্ড টাইপ করি, ~/.bash_historyআমি আমার সেশন থেকে প্রস্থান না করা পর্যন্ত এটি আমার ফাইলে উপস্থিত হয় না ।

এছাড়াও, আমি যখন আমার ~/.bash_historyফাইলটি ম্যানুয়ালি সম্পাদনা করি (উদাহরণস্বরূপ আমি শেষ তিনটি কমান্ড সরিয়ে ফেলি), যখন আমি টাইপ historyকরি তখনও আমি ~/.bash_historyফাইলটি সরিয়ে ফেলা কমান্ডগুলি দেখায় । আমি যখন আমার সেশনটি থেকে বেরিয়ে এসে আবার লগইন করি তখনই সেগুলি অদৃশ্য হয়ে যায়।

আমার ~/.bash_historyফাইল এবং historyকমান্ড কীভাবে সিঙ্ক্রোনাইজ হবে?



"যখন আমি টার্মিনালে কোনও কমান্ড টাইপ করি" আসলে সত্য নয়। যখন আপনি কমান্ডের সামনে একটি ডিফল্টরূপে একটি স্থান রাখেন তখন এটি কমান্ডটি সংরক্ষণ করে না।
রিনজউইন্ড

@ রিনজিন্ড কমান্ডটি সংরক্ষণের আচরণের সামনে থাকা থাকলেও যদি আপনার এইচআইএসটি কনট্রোল এনভায়রনমেন্ট ভেরিয়েবলের মান সম্পাদনা করে পরিবর্তন করা যায়।
sys0dm1n

@ sys0dm1n "ডিফল্টরূপে"
রিনজউইন্ড

উত্তর:


10

আপনি যখন ব্যাশ টার্মিনালটি খোলেন এটি কন্টেন্টটি লোড ~/.bash_historyকরে এবং সক্রিয় শেলের ইতিহাস তৈরি করে (র‌্যামে), সেই শেলটিতে সম্পাদিত প্রতিটি কমান্ডকে এতে যুক্ত করে - এবং কেবল এটির জন্য, ফাইলটিতে নয়।

আপনি যখন কোনও ব্যাশ টার্মিনালটি বন্ধ করেন কেবল তখনই এর ইতিহাসটি আপনার ~/.bash_historyফাইলে যুক্ত হয় ।


এর বিকল্পগুলি history:

history -a # save the active shell's history to ~/.bash_history (appending)
history -c # clear the active shell's history
history -d NNN # delete row NNN of the active shell's history
history -r # reload the active shell's history from ~/.bash_history (appending)
history -w # save the active shell's history to ~/.bash_history (overwriting)

~/.bashrcফাইলের জন্য বিকল্প

যদি আপনি এই আচরণটি পরিবর্তন করতে চান যাতে ~/.bash_historyকোনও আদেশ চালানোর পরে অস্থায়ী ইতিহাসটি সরাসরি সংরক্ষণ করা যায় তবে এই লাইনটি যুক্ত করুন:

PROMPT_COMMAND="history -a"

আপনি যদি ~/.bash_historyপ্রতিটি কমান্ড প্রয়োগের পরে প্রতিটি টার্মিনাল স্বয়ংক্রিয়ভাবে ফাইলটি লোড করতে চান তবে পরিবর্তে এই লাইনটি যুক্ত করুন:

PROMPT_COMMAND="history -a; history -c; history -r"

আপনি যদি কিছু নির্দিষ্ট আদেশ (যেমন: সবকিছু দিয়ে শুরু করে sudoএবং cat) সংরক্ষণ থেকে বাদ দিতে চান তবে এই লাইনটি যুক্ত করুন:

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