বাশ ইতিহাস মুছে ফেলা যথেষ্ট নয় কেন?


15

আমি ভাবতাম আমার বাশের ইতিহাস মুছে ফেলার জন্য আমার ব্যাশ ইতিহাস মুছে ফেলার পক্ষে যথেষ্ট ছিল, কিন্তু গতকাল আমার বিড়ালটি আমার কীবোর্ডের ডানদিকে ঘুরছিল এবং আমি যখন আমার কম্পিউটারে ফিরে এসেছিলাম তখন আমি একমাস আগে টাইপ করা কিছু দেখতে পেলাম, তখন আমি শুরু করেছি পাগলের মতো সমস্ত কী টিপুন যা এটির কারণ হতে পারে তা সন্ধান করছে। UPARROW কী থেকে বেরিয়ে আসে। Bash_history মুছে ফেলার পরেও আমার বাশ ইতিহাস দেখায়।

আমি কীভাবে আমার বাশ ইতিহাসকে বাস্তবের জন্য মুছতে পারি?


8
প্রতিবার শ্যাশ শেলটি বন্ধ করার সময় .bash_history ওভাররাইট করা হয়। সুতরাং আপনি যদি ব্যাশ শুরু করেন, .Bash_history মুছুন এবং লগ অফ করুন, আপনি ঠিক কিছুই অর্জন করতে পারবেন না।
শাদুর

14
আপনার বিড়াল একটি বিশাল পুরষ্কার প্রাপ্য। আপনি কমান্ড-লাইন পুনর্কলন এবং সম্পাদনা আছে তা আবিষ্কার না করে কতক্ষণ ব্যাশ ব্যবহার করে আসছেন? আপনি কি প্রতিটি কমান্ড লাইন প্রতিবার স্ক্র্যাচ থেকে কিছু টাইপ করেন বা কিছু? এটি শেলটি ব্যবহারে খুব অপ্রীতিকর করে তুলবে।
ক্যাস

@ কাস দশ বছর। এখন আপনি যখন বলেছিলেন যে আমি আদেশগুলি পুনরাবৃত্তি করতে আপ্যারো টিপছি, তবে আমি এটিকে 'স্বল্পমেয়াদী' মেমরির মতো কয়েক লাইনের চেয়ে বেশি বুঝতে পারি। আমাকে সতর্ক করা হয়নি যে .bash_history মুছে ফেলা বাশ ইতিহাস মুছে ফেলবে না।
15 ই

মুছে ফেলা ~/.bash_historyসত্যিই মুছে ফেলা হয় ~/.bash_history.... তবে (আপনি যদি এটির প্রতিরোধের পদক্ষেপ না নেন, যেমন history -cআপনি লগআউট করার আগে বা সেটি সেট করার আগে মেমোরির ইতিহাস মুছে ফেলা HISTFILE=/dev/nullবা ঠিক এটি unsetসাজিয়ে তোলা) বাশ তার প্রস্থানটি বেরিয়ে আসার পরে কেবল তার বর্তমান ইতিহাসকে পুনরায় সংরক্ষণ করবে । বিটিডাব্লু, HISTSIZEএনভ ভার্জ স্মরণে রাখার জন্য ইতিহাসের কতটি রেখা রাখবে তা বাশকে জানায় এবং সংরক্ষণের HISTFILESIZEজন্য সর্বাধিক সংখ্যক ইতিহাসের রেখাকে বাশকে বলে। এই দুটিই সেট করা যেতে পারে, যেমন, আপনার ~/.bashrc। দ্রষ্টব্য: আপনার বিড়াল আপনি একটি মূল্যবান পাঠ :) অধ্যাপনা জন্য একটি 2nd পুরস্কার দাবী
CA গুলির

@ ক্যাস আমার মনে হয় .bash_history এর বাশ ইতিহাস মুছে ফেলা উচিত। এটা আমার কাছে স্বজ্ঞাত মনে হচ্ছে। যা স্বতঃস্ফূর্ত মনে হয় না তা হ'ল ইতিহাস -c, ইতিহাস -w, আনসেটিং ভেরিয়েবল .. এটি ব্যবহারকারীর অভিজ্ঞতার দৃষ্টিকোণ থেকে বাদাম।
bunden

উত্তর:


26

কিছু ক্ষেত্রে (কিছু বাশ সংস্করণ), এটি করছেন:

$ history -c; history -w

বা সহজভাবে

$ history -cw

মেমরি ইতিহাস সাফ করবে (আপ করুন এবং নিচে তীর লিস্টে কোন কমান্ড থাকবে) এবং তারপর লিখতে যে করতে $HISTFILEফাইল (যদি $HISTFILEচলমান ব্যাশ উদাহরণস্বরূপ দ্বারা ছেঁটে ফেলা পরার)।

কখনও কখনও বাশ অপসেটটি আনসেট না করে এবং 0 তে সেট করেও ফাইলটি ছাঁটাই না করা বেছে নেয় ।$HISTFILEhistappend$HISFILEZIZE

এই জাতীয় ক্ষেত্রে, নিউক বিকল্পটি সর্বদা কাজ করে:

history -c; >$HISTFILE

এটি মেমরিতে রেকর্ড করা কমান্ডের ইতিহাসের তালিকা এবং ফাইলের জন্য রেকর্ডকৃত সমস্ত কমান্ড সাফ করে। এটি নিশ্চিত করবে যে চলমান শেলের মেমরি বা ডিস্কে কোনও রেকর্ডকৃত ইতিহাস নেই, তবে বাশের অন্যান্য চলমান দৃষ্টান্তগুলি (যেখানে ইতিহাস সক্রিয় রয়েছে) $HISTFILEবাশ শুরু হওয়ার সময় (বা যখন history -rকার্যকর করা হয়েছিল) থেকে পড়া কমান্ডের সম্পূর্ণ কপি থাকতে পারে ।

যদি এটিরও প্রয়োজন হয় যে বর্তমান সেশনের আর কোনও কিছুই (নতুন আদেশ নয়) ইতিহাসের ফাইলে লিখিত না হয়, তবে এই unset HISTFILEজাতীয় লগিং প্রতিরোধ করবে।


1
HISTFILE সম্পাদনা করা এবং করা history -c && history -rআপনার বর্তমান ইতিহাসকে ম্যানুয়ালি পরিবর্তিত ইতিহাসের সাথে প্রতিস্থাপন করবে। কিছু ক্ষেত্রে, এটি সমস্ত ইতিহাস ফেলে দেওয়ার চেয়ে ভাল।
মিক্কো রেন্টালাইনেন

9

bashমেমোরিতে একটি সেশন ইতিহাস রয়েছে যা শেল ভেরিয়েবলটি প্রস্থান HISTFILEকরার সময় কোনও ফাইলনেটে সেট করা থাকলে ফাইলটিতে লেখা হয় bash

আপনি যদি নির্দেশিত ফাইলটি মুছে HISTFILEফেলেন, সেই পরিবর্তনশীলটি আনসেট করুন এবং প্রস্থান করুন bash, তবে সেই শেল সেশনটি কোনও স্থায়ী ইতিহাস ছেড়ে যাবে না।

HISTFILEভেরিয়েবলটি আনসেট করতে ব্যর্থ হয়েছে তবে ফাইলটি মুছে ফেলা কেবল স্থায়ী ইতিহাসকে খালি করে দেবে, তবে শেলটি প্রস্থান করলে বর্তমান সেশনের ইতিহাস সংরক্ষণ করা হবে।


3
history -c; history -wমেমরি এবং ফাইলের ইতিহাস উভয়ই সাফ করবে। হিস্টফিল আনসেট করা কেবলমাত্র তখনই প্রয়োজন হয় যদি ইতিহাসে আরও কোনও কমান্ড লগইন না করা উচিত (ঠিক যেমনটি আইএমএইচওকে জিজ্ঞাসা করা হয়েছিল তা নয়)।
আইজাক

-1

"আমি কীভাবে বাস্তবের জন্য আমার বাশার ইতিহাস মুছতে পারি?"

ব্যাশ থেকে প্রস্থান করুন, একটি আলাদা শেল শুরু করুন, ব্যাশের ইতিহাস ফাইলটি মুছুন।

অথবা

লগআউট, ইতিহাসের ফাইলটিতে লেখার অনুমতি রয়েছে এমন একটি আলাদা অ্যাকাউন্টে লগইন করুন, ইতিহাস ফাইলটি মুছুন।


-2

শেলটি ছাড়ার সময়, একবারে একবারে করুন

echo "" > ~/.bash_history && history -c && exit

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