উত্তর:
HISTSIZE
আপনার বাশ সেশন চলমান থাকাকালীন ইতিহাসের তালিকায় মেমরিতে সংরক্ষিত লাইন বা কমান্ডের সংখ্যা।
HISTFILESIZE
একটি সেশন শুরুর সময় ইতিহাসের ফাইলটিতে (ক) অনুমোদিত লাইন বা কমান্ডের সংখ্যা এবং (খ) ভবিষ্যতের সেশনে ব্যবহারের জন্য আপনার বাশ সেশন শেষে ইতিহাসের ফাইলে সংরক্ষণ করা হয়।
file
ডিস্কে - এবং list
: মেমরিতে: এর মধ্যে পার্থক্যটি লক্ষ্য করুন ।
উপরের সমস্ত তথ্য + কিছু উদাহরণ:
উদাহরণ 1 :
HISTFILESIZE=10
এবংHISTSIZE=10
histappend
নেওয়া সক্ষম নয়, 41 থেকে 50 কমান্ডগুলি আপনার হিস্টফায়লে সংরক্ষিত আছে যার এখন 10 টি কমান্ড এটি শুরুতে অনুষ্ঠিত হয়েছে এবং 10 টি নতুন লিখিত কমান্ড রয়েছে।উদাহরণ 2 :
HISTFILESIZE=10
এবংHISTSIZE=5
histappend
নেওয়া সক্ষম নয়, 46 থেকে 50 কমান্ডগুলি আপনার HISFILE এ সংরক্ষিত আছে যার এখন 10 টি কমান্ড এটি শুরুতে অনুষ্ঠিত হয়েছে এবং 5 টি নতুন লিখিত কমান্ড রয়েছে।উদাহরণ 3 :
HISTFILESIZE=5
এবংHISTSIZE=10
histappend
নেওয়া সক্ষম নয়, 41 থেকে 50 কমান্ডগুলি আপনার হিস্টফায়লে সংরক্ষিত আছে যা এখন 5 টি কমান্ড এটি শুরুতে অনুষ্ঠিত হয়েছে এবং 10 টি নতুন লিখিত কমান্ড রয়েছে।এলিকাসির_সিনারি থেকে তথ্য :
আপনি আদেশগুলি টাইপ করার সাথে সাথে "ফাইল" ইতিহাস আপডেট করা হয়নি। কমান্ডগুলি পৃথকভাবে একটি "তালিকায়" সংরক্ষণ করা হয় (ইতিহাসের আদেশ দ্বারা অ্যাক্সেস করা হয়)। এই সঞ্চিত কমান্ডগুলির সংখ্যা HISSIZE মান দ্বারা নিয়ন্ত্রিত হয়। শেলটি (ইন্টারেক্টিভ) প্রস্থান করলে, সর্বশেষ $ HISSIZE লাইনগুলি সেই "তালিকা" থেকে $ HISTFILE এ অনুলিপি / সংযুক্ত করা হয়। যদি HISTFILESIZE সেট করা থাকে, তবে এই অপারেশনের পরে, এটি নিশ্চিত করা হয় যে কেবলমাত্র $ HISFILESIZE লাইন (সর্বশেষ) exist HISTFILE- এ বিদ্যমান। এবং যখন শেলটি শুরু হয়, তখন "তালিকা" সর্বাধিক $ HISSIZE কমান্ড অবধি $ HISTFILE থেকে শুরু করা হয়।
এবং man bash
পৃষ্ঠাটি থেকে :
ইতিহাসের তালিকায় সংরক্ষণের জন্য হিস্টসিজিই ভেরিয়েবলের মান হ'ল আদেশের সংখ্যা হিসাবে ব্যবহৃত হয়। সর্বশেষ HISTSIZ কমান্ডের পাঠ্য (ডিফল্ট 500) সংরক্ষণ করা হয়েছে। (...)
প্রারম্ভকালে, ইতিহাসটি ভেরিয়েবল এইচআইএসটিফাইলে (ডিফল্ট ~ / .bash_history) নামের ফাইল থেকে শুরু করা হয়। HISTFILE এর মান অনুসারে ফাইলটি সঙ্কুচিত হয়েছে, যদি প্রয়োজন হয় তবে HISTFILESIZE এর মান দ্বারা নির্দিষ্ট লাইনগুলির সংখ্যার চেয়ে বেশি থাকে না। (...) যখন কোনও ইন্টারেক্টিভ শেলটি প্রস্থান করে, ইতিহাসের তালিকা থেকে শেষ $ HISSIZE রেখাগুলি অনুলিপি করা হয় $ হিস্টফায়লে। যদি হিস্টপেন্ড শেল বিকল্পটি সক্ষম করা থাকে (নীচে শেল বিল্টিন কম্যান্ডের অধীনে শপটের বর্ণনা দেখুন), লাইনগুলি ইতিহাসের ফাইলে সংযুক্ত করা হয়, অন্যথায় ইতিহাস ফাইলটি ওভাররাইট করা হয়। এইচআইএসএফআইএল যদি সেট না করা থাকে বা ইতিহাসের ফাইলটি লিখনযোগ্য হয় তবে ইতিহাস সংরক্ষণ করা হয় না। (...) ইতিহাস সংরক্ষণ করার পরে, ইতিহাসের ফাইলটি হিস্টফায়ালাইস লাইন ছাড়া আর না থাকায় কেটে ফেলা হয়। যদি HISTFILESIZE সেট না করা থাকে,
আর্টআরম্প কী বলেছে তার উপরে ভিত্তি করে তৈরি করা এবং এটিকে কিছুটা পরিষ্কার করার প্রয়াসে।
ধরে নিচ্ছি আপনার কাছে 2000-দীর্ঘ কিছু ইতিহাস রয়েছে ..
~$ history
1 sdf
2 fghdfgjf
3 fghfghdf
.. ..
2027 78
2028 57
2029 yu45u
আপনার সাথে যা প্রদর্শিত হবে আপনি তা কেটে ফেলতে পারেন HISTSIZE
~$ HISTSIZE=5
~$ history
2026 546
2027 78
2028 56
2029 yu45u
2030 HISTSIZE=5
এখন যতই কমান্ড টাইপ করুন না কেন, কেবল সর্বশেষ 5 টি রেকর্ড করা হবে।
~$ ABC
~$ GGH
~$ GSDHFG
~$ JFDR
~$ ABSDDS
~$ AHFGHFD
<close terminal>
<open new terminal>
~$ history
1 sdf
2 fghdfgjf
3 fghfghdf
.. ..
2028 56
2029 yu45u
2030 HISTSIZE=5
2031 GGH
2032 GSDHFG
2033 JFDR
2034 ABSDDS
2035 AHFGHFD
আমরা পরিষ্কারভাবে দেখতে পারি যে আমাদের প্রথম কমান্ড ("এবিসি") ইতিহাসে নেই কারণ কেবল সর্বশেষ 5 টি কমান্ড রেকর্ড করা হয়েছিল।
এখন, মোট ইতিহাস কোনও ফাইলে ( .bash_history
) সঞ্চিত রয়েছে এবং আপনি এই ফাইলটির সাথে কতক্ষণ সময় পাবে তা পরিবর্তন করতে পারবেন HISTFILESIZE
। উদাহরণস্বরূপ একটি সহ 2033
HISTFILESIZE
, আমার ক্ষেত্রে আমার এটি হবে:
~$ history
1 fghfghdf
2 gegege
3 gege
.. ..
2028 HISTSIZE=5
2029 GGH
2030 GSDHFG
2031 JFDR
2032 ABSDDS
2033 AHFGHFD
HISTSIZE=-1
এবং HISTFILESIZE=-1
।
bash
পৃষ্ঠাটি বলেছে: Non-numeric values and numeric values less than zero inhibit truncation
তবে তখন আমার এই ইতিহাসটি সত্য করে
HISTSIZE='INFINITY'
এবং এ HISTFILESIZE='ANDBEYOND'
। যেহেতু তারা অ-সংখ্যাযুক্ত তারা সমস্ত কিছু সংরক্ষণ করে। বখশিশের জন্য ধন্যবাদ!