ম্যাক ওএসএক্স ব্যাশের শেল ইতিহাসের দৈর্ঘ্য বাড়ানো যায় না


26

৫০০ লাইনের বেশি দৈর্ঘ্যের জন্য আমি কিছুক্ষণ আগে ~ / .bash_profile সেট করেছি তবে মনে হচ্ছে সিস্টেম এটি ধরতে পারে না।

তুমি কি জানো কেন?

> nano -w ~/.bash_profile
export CLICOLOR=1
export LSCOLORS=GxFxCxDxBxegedabagaced
HISTFILESIZE=10000000

> history | wc -l
     500

উত্তর:


34

আপনারও সেট করা দরকার HISTSIZE=10000000

HISTFILESIZEইতিহাসের ফাইলটিতে HISTSIZEরেখার সংখ্যা নির্ধারণ করে মেমরিতে রাখার জন্য রেখার সংখ্যা নির্ধারণ করে। উভয়ই ডিফল্ট500

echo $HISTFILESIZE $HISTSIZEপরিবর্তনটি সম্পাদন করার আগে এবং তারপরে আবার কার্যকর করুন। আপনার পরে 10000000 500প্রথম দেখা উচিত 10000000 10000000


16

আপনার ফাইলটিতে আপনাকে রফতানি করতে হবে HISTSIZE এবং HISTFILESIZEপরিবেশের ভেরিয়েবলগুলি রাখতে ~/.bash_profileহবে।

আপনার নিম্নলিখিত লাইন যুক্ত করুন ~/.bash_profile:

# history size
export HISTFILESIZE=1000000
export HISTSIZE=1000000

9

উত্তর:

আপনাকে যা করতে হবে তা HISTSIZEআপনার ব্যাশ প্রোফাইলে ( ~/.bash_profile) সেট করা আছে । আপনি HISTFILESIZE আনসেট ছাড়তে পারেন । এটি মেমরির ইতিহাস এবং ফাইল-ভিত্তিক ইতিহাস উভয়কে কনফিগার করবে ।

# Saves 10 million lines in memory and in the bash history file.
HISTSIZE=10000000

ব্যাখ্যা, অতিরিক্ত তথ্য।

সমস্যা হিস্টফিলিজ হ'ল আপনি সেশন শুরু করার সময় কেবলমাত্র ফাইলটিতে সঞ্চিত সর্বোচ্চ ইতিহাস সেট করে। একটি অধিবেশন শেষে কতগুলি রেখাগুলি সংরক্ষিত হবে তা হিস্টিজ তা নির্ধারণ করে। তাহলে HISTFILESIZE আপনার HISTSIZE চেয়ে বড় হয়, তাহলে আপনি কখনোই আরো অনেক কিছু আপনার HISTSIZE চেয়ে কারণ ফাইলটি HISTSIZE কমান্ড দিয়ে ওভাররাইট হচ্ছে দেখতে পাবেন ( যদি না সংযোজন করতে আপনি সেট ইতিহাস, কিন্তু যে একটি আলাদা বিষয় হল: সন্ধান histappendমধ্যে শেল কমান্ড builtin যে জন্য) ।

আপনি কোন প্রভাব দেখছেন না এই কারণ। ডিফল্টরূপে HISSIZE (সম্ভবত 500) আপনার ইতিহাস ফাইলটি সর্বদা অতি সাম্প্রতিক $ HISTSIZ কমান্ড দ্বারা ওভাররাইট করা হচ্ছে। পুরানো যে কোনও কিছুই (যা সম্ভাব্যভাবে তালিকার অতীত $ HISSIZE বর্ধমান হতে পারে) মুছে ফেলা হয়।

বেশিরভাগ ক্ষেত্রে হিস্টফিলেস থেকে স্বাধীনভাবে হিস্টফিলিজ সেট করার দরকার নেই no

ইতিহাস ফাইলে কতগুলি লাইন লেখা হবে তা HISSIZE নির্ধারণ করে। কমান্ডের তালিকাটি প্রস্থান করার পরে প্রস্থান করার পরে, ইতিহাসের ফাইলে লেখার আগে এন-কে সাম্প্রতিকতম রেখাগুলি রেখে দেওয়া হয়। ডিফল্টরূপে, এই তালিকাটি ইতিহাসের ফাইলটিকে ওভাররাইট করে।

ইতিহাস ফাইলটি (লাইনগুলিতে) কত বড় হতে পারে তা নির্ধারণ করে H ফাইলটি প্রারম্ভকালে কাটা হয়ে যায়, এনকে সাম্প্রতিকতম রেখাগুলি রেখে। এছাড়াও, HISTFILESIZE সেট করা থাকলেই ইতিহাসের ফাইলটি সম্ভাব্যভাবে কেটে যায়।

অবশেষে, যদিও এটি অননুমোদিত বলে মনে হচ্ছে, শুরুর সময় BHH HISSIZE এর উপর ভিত্তি করে HISTFILESIZE সেট করে if আমি এটি চেষ্টা করেছি ম্যাকওএস এবং কয়েক ধরণের উবুন্টুতে, এবং আচরণটি সামঞ্জস্যপূর্ণ। যদি আপনি একটি লঞ্চ ফাইলে HISTSIZE সেট করে থাকেন ( কোনও উপায়ে কমান্ড লাইনের মাধ্যমে নয় ), HISTFILESIZE মিলবে সেট করা হবে। (এটি নিজেই চেষ্টা করে দেখুন: .বাশ_প্রফাইলে কিছু নির্বিচারে বড় মান HISSIZE সেট করুন, প্রস্থান করুন এবং একটি নতুন টার্মিনাল শুরু করুন, তারপরেecho $HISTSIZE $HISTFILESIZE আপনি সেগুলি মিলবে

ফলস্বরূপ, আপনি পৃথক মান না চাইলে HISFILESIZE স্পর্শ করার কোনও কারণ নেই এবং বিভিন্ন মান থাকার ক্ষেত্রে ব্যবহারগুলি বিরল (এবং সাধারণত কিছু কার্যকর হওয়ার জন্য আরও ইতিহাসের কাস্টমাইজেশন সেটিংস জড়িত)।


আপনি সঠিক জিম। বাশ সোর্স কোডটি দেখায় যে HISTFILESIZE সেট না করা থাকলে এটি HISTFILESIZE সেট করে HISSIZE এ সবেমাত্র সেট করে। git.savannah.gnu.org/cgit/bash.git/tree/…
রবার্ট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.