কোনও কারণে, আমি আমার সিস্টেমটিকে পুনরায় বুট করার পরে আমার বেস ইতিহাস রাখতে পারি না। এখানে আমার সম্পর্কিত বিভাগগুলি রয়েছে ~/.bashrc
:
shopt -s histappend
PROMPT_COMMAND='history -a; updateWindowTitle'
export HISTCONTROL=ignoredups
export HISTSIZE=9999
export HISTFILESIZE=999999
export HISTFILE="$HOME/.bash_history"
যতদূর আমি এগুলি বলতে পারি সমস্ত প্রয়োজনীয় বিকল্পগুলি (আমি জানি আমি অতীতে এই সমস্তগুলি ছাড়াই একাধিক রিবুটগুলিতে ইতিহাস রাখতে সক্ষম হয়েছি)। তবে, বেশ কয়েকটি পুনরায় বুট করার আগে এই বিকল্পগুলি যুক্ত করা সত্ত্বেও, আমি পুনরায় বুট করার পরেও আমার ইতিহাসের বেশিরভাগ অংশটি looseিলা করেছি। এটি খালি নয়, তবে এটি রিবুট করার আগে আমার 9999 টি লাইন নেই।
কেউ অভিযোগ করার আগে হ্যাঁ আমি এই প্রশ্নগুলি পড়েছি। আমি তাদের কিছু পরামর্শ উপরোক্ত তালিকা হিসাবে প্রয়োগ করেছি, বাকী হয় অসহায় বা প্রাসঙ্গিক নয়:
- হিস্টপেন্ড ব্যবহার করার সময় ইতিহাসের ক্ষতি
- ইতিহাসের পরিবর্তন থেকে বাশকে কীভাবে প্রতিরোধ করা যায়?
- বাশ ইতিহাস কমান্ডে কী প্রদর্শিত হবে তা নির্ধারণ করে?
- আমি আমার বাশ ইতিহাসকে কীভাবে অধিবেশন জুড়ে রাখতে পারি?
- নিয়মিতভাবে বাশার ইতিহাস সংরক্ষণ করুন
সেখানে অন্যান্য প্রাসঙ্গিক কমান্ড থাকতে পারে এমন অফ সুযোগে, আপনি আমার সম্পূর্ণ ~/.bashrc
এখানে দেখতে পারেন ।
তো, আমি কী মিস করছি? আমার ইতিহাস সংরক্ষণ করা হয় না কেন? যদি কেউ মনে করেন যে অন্য ফাইলটি প্রাসঙ্গিক হতে পারে তবে আমাকে জানান এবং আমি এটি পোস্ট করব। আমি grep -i hist \.*
আমার চালিয়ে যাচাই করেছিলাম $HOME
যা দেখায় যে কেবল .
স্ট্রিংটি ছিল hist
বা কেবল প্রাসঙ্গিক ফাইল ।HIST
.bashrc
আমি লিনাক্স মিন্ট ডেবিয়ান সংস্করণ, জিএনইউ ব্যাশ, সংস্করণ 4.2.36 (1) -রেলিজ (x86_64-pc-linux-gnu) চালাচ্ছি এবং আমার প্রিয় টার্মিনাল এমুলেটরটি (এটি প্রাসঙ্গিক ক্ষেত্রে) হয় terminator
।
হালনাগাদ:
মন্তব্যে @ এমপির পরামর্শ অনুসরণ করে, আমি ডিফল্টের বিপরীতে ~/.bashrc
সেট করতে আমার পরিবর্তন করেছি এবং এটি ইন্টারেক্টিভ শেলগুলির জন্য সমস্যার সমাধান বলে মনে হচ্ছে । লগইন শেলগুলি এখনও একই আচরণ প্রদর্শন করে, ইতিহাসের লাইনে ছাঁটা হয়েছে । তবে, সম্পর্কিত ফাইলগুলিতে কোনও সম্পর্কিত ভেরিয়েবল সেট করা নেই:HISTFILE=~/bash_history
~/.bash_history
500
HIST
$ for f in /etc/profile ~/.profile ~/.bash_profile ~/.bash_login; do \
echo -ne "$f :"; echo `grep HIST $f`; \
done
/etc/profile :
/home/terdon/.profile :grep: /home/terdon/.profile: No such file or directory
/home/terdon/.bash_profile :grep: /home/terdon/.bash_profile: No such file or directory
/home/terdon/.bash_login :grep: /home/terdon/.bash_login: No such file or directory
$ grep -r HIST /etc/profile.d/ <-- returns nothing
সুতরাং, কেন সেটিং করা হয় HISTSIZE
এবং HISTFILESIZE
এর মধ্যে ~/.bashrc
যথেষ্ট নয় যদি না আমি স্পষ্টভাবে সেট $HISTFILE
ডিফল্ট ব্যতীত অন্য কিছু ~/.bash_history
?
history
কমান্ড কার্যকর করেন, আপনি যে আউটপুটটি দেখেন তা cat .bash_history
লাইন সংখ্যাগুলি ব্যতীত আপনি যা দেখেন, চালাচ্ছেন তার সমান ? মানে history
কমান্ড কি টাইম স্ট্যাম্প বা অন্যান্য তথ্য তালিকাভুক্ত করে? আমি জিজ্ঞাসা করার কারণটি হ'ল, যদি আপনি এই রহস্যজনক জিনিসগুলি দেখে থাকেন তবে এর অর্থ হ'ল আরও একটি মডিউল / ফাংশন / প্রোগ্রাম রয়েছে যা শেল ইতিহাসের সাথে গোলমাল করছে এবং যা কিছু আছে তার একটি ভুল বা বগি সংস্করণ আপনার শোকের কারণ হতে পারে might ।
;)
: ডিফল্ট নয়, অন্য ফাইলটি হিস্টফিল হিসাবে চেষ্টা করুন ~/.bash_history
। অত্যন্ত নির্মিত ব্যাখ্যা: আমি ধরে নিলাম বাশটি আপনার ডিফল্ট শেল, সুতরাং সিস্টেম শুরু করার পরে একটি অ-ইন্টারেক্টিভ শেলটি আপনার এক্স সেশনের প্যারেন্ট (আমিও ধরে নিই যে আপনি এক্স ব্যবহার করেন), যা হিস্টপেন্ড বিকল্প সম্পর্কে কিছুই জানতে পারবেন না (যেমন। ইন্টারেক্টিভ শেল দ্বারা পঠন করুন), যতক্ষণ না এই প্যারেন্ট শেলটি চালিত হয় সবকিছু ঠিক আছে, তবে সমাপ্তির পরে (যেমন সিস্টেম থামিয়ে দেওয়া) এটি ওভাররাইড হয়ে যাবে ~/.bash_history
(যা পূর্বনির্ধারিত) এবং আপনার ইতিহাসকে