কেন কেউ বাশে 'হিস্টপেন্ড' সেট করবেন না?


36

এর shopt -s histappend অর্থ কী তা খুঁজে পাওয়ার পরে এটি একটি খুব বুদ্ধিমান সেটিং বলে মনে হচ্ছে এবং আমি অবাক হয়েছি যে এটি ডিফল্ট নয়। কেন প্রতিটি শেল প্রস্থানে কেউ তাদের ইতিহাস মুছতে চাইবে?


এই বিকল্পটি কী করে তার ভুল বোঝাবুঝি বাদ দিয়ে - @ ম্যাক্সস্ক্লেপিজিগ দ্বারা সংশোধন - "ডিফল্ট" এর কমপক্ষে দুটি উত্স রয়েছে: bash'খাঁটি' বা একটি ডিস্ট্রো সরবরাহিত .bashrc। প্রাক্তনদের জন্য, @ গিলস সম্ভবত সঠিক। আধুনিক অর্থে, -s histappend হয় : ডিফল্ট, যেমন, ডেবিয়ান, 2008 সাল থেকে bugs.debian.org/cgi-bin/bugreport.cgi?bug=452459
underscore_d

3
ঠিক আছে, ইউনিক্স বুদ্ধিমান ডিফল্টগুলির জন্য ঠিক বিখ্যাত নয়? আমি ডিফল্টরূপে সবচেয়ে বন্ধুত্বপূর্ণ খেলাপি প্রত্যাশা করতে এসেছি: পি (ক্ষুদ্র অতিরঞ্জিত)
ওলেজোরেনব

উত্তর:


34

ঠিক আছে, যখন histappendসেট করা থাকে না, এর অর্থ এই নয় যে প্রতিটি শেল প্রস্থান করে ইতিহাস মুছে ফেলা হয়। histappendবাশ ব্যতীত স্টার্টআপে হিস্টফিলটি মেমোরিতে পড়ে - অপারেশনের সময় নতুন এন্ট্রি যুক্ত হয় - এবং শেল প্রস্থান করার সময় শেষ হিস্টিজ লাইনগুলি হোল্ড ফাইল ছাড়াই ইতিহাস ফাইলে লেখা হয়, অর্থাৎ পূর্ববর্তী সামগ্রীটি প্রতিস্থাপন করে।

উদাহরণস্বরূপ, যদি হিস্টফাইলে 400 এন্ট্রি থাকে তবে ব্যাশ রানটাইম চলাকালীন 10 টি নতুন এন্ট্রি যুক্ত করা হয় - হিস্টাইজ 500 এ সেট করা থাকে, তবে নতুন হিস্টফাইলে 410 এন্ট্রি রয়েছে।

আপনি যদি সমান্তরালে আরও বাশ উদাহরণ ব্যবহার করেন তবে এই আচরণটি কেবল সমস্যাযুক্ত। সেক্ষেত্রে ইতিহাসের ফাইলটিতে কেবল সর্বশেষ প্রস্থান শেলের সামগ্রী থাকে।

এর থেকে স্বতন্ত্র: এমন কিছু লোক আছেন যারা গোপনীয়তার কারণে শেল প্রস্থান করার সময় তাদের ইতিহাস মুছতে চান।


এছাড়াও, সুরক্ষার কারণে, মূল ব্যবহারকারীর জন্য ইতিহাস সংরক্ষণ না করা ভাল ধারণা হতে পারে। এই বৈশিষ্ট্যটি রুটটিকে ডিস্কে কখনও সংরক্ষণ না করে শেলের ইতিহাস রাখতে দেয়।
মেই

1
"1 এর জন্য" এর অর্থ এই নয় যে প্রতিটি শেল প্রস্থান করে ইতিহাস মুছে যায় "। এটি অন্য কোথাও পুরোপুরিভাবে ভালভাবে ব্যাখ্যা করা হয়েছে - তবে সম্ভবত কিছু পাঠকের কাছে পৌঁছানোর মতো সংক্ষিপ্তভাবে যথেষ্ট নয়, বিশেষত বিকল্পটির নামের প্রসঙ্গে (ঠিক আছে, আমি কিছু সময়ের জন্য সেই পাঠকদের মধ্যে একজন হতে পারি)। @ মাই, এর ইতিহাস কোনও ডিস্কে পৌঁছায় histappendকিনা তার সাথে কোনওরকম প্রাসঙ্গিকতা কীভাবে হয় root? আবার, এটি কেবল যা লিখিত হয়েছে তা প্রভাবিত করে , যদি না ।
আন্ডারস্কোর_ডে

5
কেউ কি কমপক্ষে 2 টি বাশ উদাহরণ চালায়? histappendপাশাপাশি HISTCONTROL=ignoredups:erasedups:ignorespaceবেশিরভাগ লোকের পক্ষে ভাল ডিফল্ট বলে মনে হয়।
ড্যাশসি

কি histappendকার্যকর অর্থহীন যদি আমি আছে HISTFILESIZE=এবং HISTSIZE=অসীম ইতিহাসের জন্য?
২৩7777

1
@ ড্যাশসি আমি ব্যক্তিগতভাবে সদৃশ প্রবেশগুলিকে উপেক্ষা / মুছতে পছন্দ করি না। আমি হিস্টটাইমফর্মটি সক্ষম করে রেখেছি এবং কমান্ড জারি করার পরে আমি ফিরে যেতে এবং দেখতে সক্ষম হতে চাই ... এবং যদি আমি এটি একাধিকবার জারি করি, আমি জানতে চাই যে প্রত্যেকটি কখন জারি করা হয়েছিল। এটি একটি ব্যক্তিগত পছন্দ, যা তাদের নিজস্ব। ;)
এমএসবি

9

Historicalতিহাসিক সামঞ্জস্যের জন্য, আমি অনুমান করি। histappendবিকল্প ব্যাশ 2.0 পর্যন্ত অস্তিত্ব ছিল না।


1
ইতিহাস কি প্রতিবার ওভাররাইট করা হয়েছিল?
tshepang

3
@ শেপাপাং: হ্যাঁ, আপনি যদি ব্যবহার না করেন তবে এখনকার মতো histappend
গিলস 'দুষ্ট হওয়া বন্ধ করুন'

এটি এখনই ডিফল্ট হওয়া উচিত তবে তা নয়
ড্যাশেই
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.