একই কমান্ডটি আমার ইতিহাসে বারবার তালিকাভুক্ত করা হয়েছে। আমি কীভাবে এড়াতে পারি? আমি জানি এটি এর মাধ্যমে সম্ভব HISTCONTROLকিন্তু সঠিক উপায় আমি খুঁজে পাইনি।
একই কমান্ডটি আমার ইতিহাসে বারবার তালিকাভুক্ত করা হয়েছে। আমি কীভাবে এড়াতে পারি? আমি জানি এটি এর মাধ্যমে সম্ভব HISTCONTROLকিন্তু সঠিক উপায় আমি খুঁজে পাইনি।
উত্তর:
থেকে bashমানুষ পৃষ্ঠা:
HISTCONTROL
ইতিহাস তালিকায় কমান্ডগুলি কীভাবে সংরক্ষণ করা হয় তা নিয়ন্ত্রণ করে মানগুলির একটি কোলন-বিভক্ত তালিকা। মানগুলির তালিকায় যদি অন্তর্ভুক্ত থাকে তবে
ignorespaceস্পেস অক্ষর দিয়ে শুরু হওয়া রেখাগুলি ইতিহাসের তালিকায় সংরক্ষণ করা হয় না।ignoredupsপূর্ববর্তী ইতিহাসের এন্ট্রিটির সাথে মিলিত কারণগুলির একটি মান সংরক্ষণ করা যায় না। এর মানignorebothশর্টহ্যান্ডignorespaceএবং এর জন্যignoredups। একটি মানerasedupsপূর্ববর্তী সমস্ত রেখাগুলি বর্তমান লাইনের সাথে মিলিত হওয়ার পরে সেই লাইনটি সংরক্ষণের আগে ইতিহাসের তালিকা থেকে সরানো হবে। উপরের তালিকায় নেই এমন কোনও মান উপেক্ষা করা হবে। যদি এইচআইএসটি কনট্রোলটি সেট না করা থাকে, বা কোনও বৈধ মান অন্তর্ভুক্ত না করে, শেল পার্সার দ্বারা পড়া সমস্ত লাইন হিস্টিগনোরের মান সাপেক্ষে ইতিহাসের তালিকায় সংরক্ষণ করা হয়। মাল্টি-লাইন যৌগিক কমান্ডের দ্বিতীয় এবং পরবর্তী লাইনগুলি পরীক্ষা করা হয় না এবং এইচআইএসটি কনট্রোলের মান নির্বিশেষে ইতিহাসে যুক্ত করা হয়।
আপনার নীচের লাইনটি রাখুন ~/.bashrc:
export HISTCONTROL=ignoreboth:erasedups
~/.bash_loginবেশির ভাগ সময় যদি .bashrc রুপান্তরিত করা হয়েছে এটা কাজ করবে কিন্তু যে ক্ষেত্রে নয় সব সময়।
source ~/.bashrc && source ~/.bash_profile
এটি আপনার আটকে দিন ~/.bashrc:
export HISTCONTROL=ignoredups
আপনি পরিবর্তে ব্যবহার করতে পারে ignoreboth। এটি উভয়ই শর্টহ্যান্ড ignorespaces(স্পেস দিয়ে শুরু কমান্ড) এবং ignoredups(সদৃশ)।
আমি ignoredupsনিজে থেকেই পছন্দ করি কারণ আমি যখন কোনও ওয়েবসাইটের বাইরে কমান্ডটি অনুলিপি করি তখন সামনে বিরক্তিকর জায়গাগুলির সাথে কমান্ডগুলি উপেক্ষা করার ডিফল্ট আচরণটি আমি খুব বিরক্তিকর পাই এবং এটি সংরক্ষণ হয় না কারণ আমিও ঘটনাক্রমে একটি স্পেসে অনুলিপি করেছি .... তবে প্রতিটি তাদের নিজস্ব।
ignoredupsসংরক্ষণ করা যায় না । এটি কেবল পরপর অভিন্ন লাইনগুলি সরিয়ে দেয়।
এটি স্থাপন ~/.bashrcকরাটি পুরো সেশন জুড়ে @ অ্যালভিনের সমাধানটি পুরো হিসাবে ব্যবহার করবে
HISTCONTROL=ignoredups:erasedups
shopt -s histappend
PROMPT_COMMAND="history -n; history -w; history -c; history -r; $PROMPT_COMMAND"
উত্স: লিনাক্স: বাশ ইতিহাস: "উপেক্ষা" এবং "মুছে ফেলা" সেশনের সাধারণ ইতিহাসের সাথে বিরোধ স্থাপন করে setting
export HISTCONTROLএবং আপনার ব্যবহার করে না? পার্থক্য কি? এটা আমার জন্য রপ্তানি ছাড়া কাজ করছে, আমি শুধু কৌতুহলী
exportউপ-প্রক্রিয়াগুলিতে পরিবর্তনশীল উপলব্ধ করে available stackoverflow.com/q/1158091/552621 ক্ষেত্রে HISTCONTROL, PROMPT_COMMANDইত্যাদি, এই ভেরিয়েবল তাই হয়তো তাদের রপ্তানি (শিশুদের প্রক্রিয়া) প্রয়োজন হয় না শেল নিজে ব্যবহার করা হয়।
export HISTCONTROL=erasedups
প্রতিটি নতুন কমান্ড অবিচ্ছিন্নভাবে রেকর্ড করা জটিল is প্রথমে আপনাকে যুক্ত করতে হবে
~/.profileবা অনুরূপ:
HISTCONTROL=erasedups
PROMPT_COMMAND='history -w'
তারপরে আপনাকে যুক্ত করতে হবে ~/.bash_logout:
history -a
history -w