উত্তর:
আপনি যদি ইতিহাসে এটি সংরক্ষণ না করে একটি কমান্ড চালাতে চান তবে এটি একটি অতিরিক্ত স্থান সহ প্রিপেন্ড করুন
prompt$ echo saved
prompt$ echo not saved \
> # ^ extra space
এই কাজ করার জন্য আপনি হয় প্রয়োজন ignorespaceবা ignorebothমধ্যে HISTCONTROL। উদাহরণস্বরূপ, চালান
HISTCONTROL=ignorespace
এই সেটিংটি অবিরাম করতে, এটি আপনার মধ্যে রাখুন .bashrc।
আপনি যদি ইতিমধ্যে কমান্ডটি চালিয়ে যান এবং ইতিহাস থেকে সরাতে চান তবে প্রথমে ব্যবহার করুন
history
আপনার ইতিহাসে আদেশের তালিকা প্রদর্শন করতে to আপনি মুছতে চান (যেমন 1234) এবং চালাতে চান তার পাশের নম্বরটি সন্ধান করুন
history -d 1234
অতিরিক্তভাবে, আপনি যে রেখাটি মুছতে চান তা যদি ইতিমধ্যে আপনার IST HISFILE- তে লিখিত থাকে (যা সাধারণত আপনি যখন ডিফল্টরূপে একটি অধিবেশন শেষ করেন তখন), আপনাকে আবার IST HISTFILE এ লিখতে হবে, বা নতুন খুললে লাইনটি আবার উপস্থিত হবে সেশন:
history -w
history -a, সেক্ষেত্রে এটি ইতিমধ্যে সাধারণ কনফিগারেশনের অধীনে প্রস্থান না করে ইতিহাস ফাইলে লেখা রয়েছে। বিশেষত: mywiki.wooledge.org/BashFAQ/088
history -w। অন্যথায় আপনি প্রস্থান করার পরে, মুছে ফেলা লাইন এখনও আছে!
history -wপরে ব্যবহার করা history -d {num}আমার ঠিক যেমনটি প্রয়োজন ছিল - সেই সমালোচনামূলক উত্তোলনের উত্তরে যুক্ত করা উচিত, অন্যথায় একজন ব্যবহারকারী বর্তমান শেল থেকে একটি অস্থায়ী মোছা ভাবা আসলে স্থায়ী হতে পারে।
history -wইতিমধ্যে লেখা রয়েছে এমন এন্ট্রিগুলির জন্য @BSStein প্রয়োজনীয় .bash_history। কীভাবে পুনরুত্পাদন করা যায় (যেমন স্টক কনফিগারেশনের সাথে CentOS 7 এ): 1. লগইন 2. কমান্ড প্রবেশ করুন echo foo3. লগআউট 4. আবার লগইন করুন echo foo6. 6. লগআউট 7. এর জন্য এন্ট্রি মুছুন আবার লগইন করুন: এন্ট্রি এখনও আছে। আপনি কীভাবে আপনার বাশার ইতিহাসটি কনফিগার করেছেন তার উপর নির্ভর করে আপনি এই সমস্যাটি অন্য উপায়ে পুনরুত্পাদন করতে পারেন - যেমন আপনি যদি লগআউট করার আগে ইতিহাসের লেখাকে উস্কে দেন।
আপনার সমস্ত ইতিহাস সাফ করতে, ব্যবহার করুন
history -cএকটি একক লাইন মুছতে, ব্যবহার করুন
history -d linenumberআমার মধ্যে ~/.bashrcএটি রয়েছে যা কমান্ডটিকে $ forgetপূর্ববর্তী কমান্ডটিকে ইতিহাস থেকে মুছে ফেলবে
function forget() {
history -d $(expr $(history | tail -n 1 | grep -oP '^ \d+') - 1);
}
history -d $( history | tail -n 1 | cut -f 1 -d " " )সহজ হবে না ?
history | tail -n1হ'ল historyকমান্ডটি নিজেই, সুতরাং সেই নম্বরটি মুছে ফেলা হলে ভুল এন্ট্রি হয়। তবে history -d $( history | awk 'END{print $1-1}' )লাইন নির্বাচন, ক্ষেত্র নির্বাচন এবং বিয়োগফলকে একত্রিত করে।
আপনি যদি পুরো ব্যাশ সেশনটি ভুলে যেতে চান তবে আপনি killবর্তমান বাশ প্রক্রিয়াটি করতে পারেন । যেহেতু ভেরিয়েবল বর্তমান শেলটি $$ধরে রাখে pid, আপনি এটি করতে পারেন:
kill -9 $$
ইতিহাস সাফ করার পরে আপনাকে পরিবর্তনগুলি লিখতে হবে। এবং যদি আপনি নিজের ইতিহাসে ইতিহাস মুছা কমান্ডটি পছন্দ করতে না চান তবে আপনার কমান্ডটি এটির মতো চালানো দরকার:
history -c && history -w && logout
শুভকামনা।
Adding another point suppose if you want to delete a range of history lines
You can use below script.
Below example will delete history output from line 1 to line 150.
for i in `history | awk 'NR > 1 && NR <=150{print $1}'`; do history -d $i; done