বাশ ইতিহাসের আচরণ বুঝতে প্রথমে আপনাকে নিম্নলিখিতগুলি জানতে হবে:
- ইতিহাসের ফাইলটিতে ইতিহাস রয়েছে।
- বাশ প্রক্রিয়াটির স্মৃতিতে ইতিহাস রয়েছে।
- একটি বাশ প্রক্রিয়াটির স্মৃতিতে ইতিহাস অন্য কোনও বাশ প্রক্রিয়াটির স্মৃতিতে ইতিহাসের সাথে সিঙ্ক হয় না।
- কোনও বাশ প্রক্রিয়াটির স্মৃতিতে ইতিহাস ফাইলের ইতিহাসের সাথে সিঙ্ক করা হয় না, যদি না নির্দিষ্ট কিছু ইভেন্টে বা তার সময় স্পষ্টভাবে জিজ্ঞাসা করা হয় (নীচে দেখুন)।
ডিফল্ট সেটিংস ব্যবহার করে, ইতিহাস সম্পর্কিত বাশ সেশনের জীবনচক্রটি নিম্নরূপ:
- স্টার্টআপের সময় বাশ হিস্ট্রি ফাইলটি পড়বে। ইতিহাস ফাইলের সামগ্রী এখন বাশ প্রক্রিয়াটির স্মৃতিতে রয়েছে।
- স্বাভাবিক ব্যবহারের সময় কেবল মেমরির ইতিহাস ম্যানিপুলেটেড হয়।
- শাটডাউনের সময় ইতিহাসের ফাইলের আগের কোনও সামগ্রীকে ওভাররাইট করে মেমোরিতে ইতিহাস লেখা থাকে file
আপাতদৃষ্টিতে অযৌক্তিক আচরণবিরোধী আচরণ যা আপনি পর্যবেক্ষণ করেছেন বেশিরভাগ কারণ হিস্ট্রি ফাইলের বিষয়বস্তু সর্বদা শেষ বন্ধ হওয়া বাশ সেশনের ইতিহাস, এবং ব্যাশ কেবল স্টার্টআপের সময় ইতিহাস ফাইলটি পড়ে।
স্টার্টআপ এবং শাটডাউন প্রক্রিয়াটির আরও বিশদ ব্যাখ্যার জন্য বাশ ম্যানুয়ালটি পড়ুন ।
নোট করুন যে ডিফল্ট সেটিংসের সাথে আমার অর্থ ব্যাশ থেকে ডিফল্ট সেটিংস। আপনার বিতরণ হতে পারে এমন একটি .bashrc(বা /etc/bash.bashrc) সরবরাহ করেছে যা এই আচরণটি পরিবর্তন করে।
শেল বিকল্পটি সক্ষম করে histappendআপনি বাশকে ইতিহাস ফাইলটি ওভার রাইটিংয়ের পরিবর্তে সংযুক্ত করতে বলতে পারেন। আপনি histappendকমান্ডটি ব্যবহার করে সক্ষম করতে পারেন shopt -s histappend। এই বিকল্পটি সর্বদা সক্ষম করার জন্য আপনাকে কমান্ডটি আপনার .bashrc(বা অন্যান্য আরম্ভের ফাইলটিতে) রাখতে হবে। বাশ ম্যানুয়ালটিতেshopt কমান্ডটি সম্পর্কে আরও পড়ুন
নোট করুন যে সক্ষম করা histappendআপাতদৃষ্টিতে অ-সংজ্ঞাবিরোধী আচরণকে অনেকটা কমবে না। এটি কারণ প্রতিটি বাশ সেশনের মেমরিতে তার নিজস্ব ইতিহাস থাকে। বেশিরভাগ সিঙ্ক্রোনাইজড বাশ ইতিহাস থাকা সম্ভব। স্ট্যাক ওভারফ্লোতে একটি থ্রেডে প্রতিটি বাশ প্রক্রিয়াটিকে বেশিরভাগ সিঙ্ক করা ইতিহাস পেতে কীভাবে গাইড পাবেন ।
বিল্টিন কমান্ডটি ব্যবহার করে historyআপনি স্পষ্টভাবে বাশাকে ফাইল থেকে মেমরিতে ইতিহাস পড়তে বা মেমরি থেকে ফাইল লিখতে বলতে পারেন। উদাহরণস্বরূপ: history -rফাইলটির বিষয়বস্তু পড়বে এবং এটিকে স্মৃতিতে ইতিহাসে যুক্ত করবে। history -wপূর্ববর্তী বিষয়বস্তু ওভাররাইট করে মেমরি থেকে ফাইল পর্যন্ত বর্তমান ইতিহাস লিখবে। মূলত এটি শাটডাউনের সময় ঘটে। বাশ ম্যানুয়ালটিতেhistory কমান্ডটি সম্পর্কে আরও পড়ুন
সম্পূর্ণতার জন্য এখানে অভ্যন্তরীণ ভেরিয়েবলগুলির একটি তালিকা যা ইতিহাসের আচরণটি পরিবর্তন করে:
HISTFILE: ফাইলটি পড়ুন এবং ইতিহাস লিখবেন।
HISTFILESIZE: ইতিহাসের ফাইলের জন্য সর্বাধিক লাইন গণনা।
HISTSIZE: স্মৃতিতে ইতিহাসের জন্য সর্বাধিক লাইন গণনা।
HISTCONTROL, HISTIGNORE, HISTTIMEFORMAT: এই আলোচনার জন্য প্রাসঙ্গিক নয়। বিশদ জন্য ব্যাশ ম্যানুয়াল পড়ুন ।