सवाल बैश इतिहास को पूरी तरह से कैसे साफ़ करें?


मैं अपने पिछले सर्वर के इतिहास से पिछले सभी आदेशों को साफ़ करना चाहता हूं। मैंनें इस्तेमाल किया history -c और ऐसा लगता है कि सभी चीजें साफ़ हो जाती हैं लेकिन जब मैं सर्वर पर ssh करता हूं, तो सभी आदेश अभी भी वहां हैं।

मैं उन्हें स्थायी रूप से कैसे साफ़ कर सकता हूं?


221
2017-09-23 05:44


मूल




जवाब:


फ़ाइल ~/.bash_history इतिहास रखता है

सर्वर पर पूरी तरह से बैश इतिहास को साफ़ करने के लिए, टर्मिनल खोलें और टाइप करें

cat /dev/null > ~/.bash_history

लिंक करने के लिए अन्य वैकल्पिक तरीका है ~/.bash_history सेवा मेरे /dev/null

तथापि,

एक कष्टप्रद दुष्प्रभाव यह है कि इतिहास प्रविष्टियों में एक है स्मृति में कॉपी करें और यह होगा लॉग आउट करते समय फ़ाइल पर वापस फ्लश करें

इसे हल करने के लिए, निम्न आदेश का उपयोग करें (मेरे लिए काम किया):

cat /dev/null > ~/.bash_history && history -c && exit

289
2017-09-23 05:51



आप ऊपर दिए गए कमांड को .bashrc और .bash_logout में भी डाल सकते हैं। जब आप लॉगिन करते हैं तो इसका अर्थ स्पष्ट इतिहास होगा और जब आप अपना इतिहास लॉग आउट करेंगे तो उसे साफ़ कर दिया जाएगा - Qasim
आपको वहां / dev / null की आवश्यकता क्यों है? नहीं होगा > ~/.bash_hstory काफी होना? - configurator
हाँ यह पर्याप्त होगा! - fromnaboo
मैंने इसे एसएसएच के माध्यम से जुड़े हुए रास्पबेरी बॉक्स पर करने की कोशिश की। मैंने @Qasim द्वारा सुझाए गए अनुसार .bashrc & .bash_logout दोनों में उपरोक्त आदेश (बिल्ली / dev / null> ~ / .bash_history && history -c && निकास) जोड़ा है। अब जैसे ही मैं एसएसएच के माध्यम से कनेक्ट करता हूं रिमोट होस्ट कनेक्शन बंद कर देता है (motd प्रिंट करने के बाद)। मदद :/ - Advanced
यह दिखाने के लिए जाता है कि क्या होता है जब आप सही तरीके से पढ़े बिना और प्रसंस्करण और डेटा प्रवाह को समझने के बिना चीजें करते हैं। यह बुरे संचार के नुकसान भी दिखाता है। क्या devav2 किया गया था इसे एक बार चलाया गया था, और Qasim क्या लिखा जाना चाहिए लॉग इन स्क्रिप्ट में जोड़ने से पहले बाहर निकलने के आदेश को हटाने के लिए है। - Sri


क्या करें:

में प्रत्येक खुला बैश खोल (आपके पास एकाधिक टर्मिनल खुले हो सकते हैं):

history -c
history -w

क्यूं कर: जैसा कि ऊपर उल्लेखित है, history -c फ़ाइल खाली करता है ~/.bash_history। यह ध्यान रखना महत्वपूर्ण है कि बैश खोल तुरंत bash_history फ़ाइल में इतिहास को फ्लश नहीं करता है। इसलिए, यह महत्वपूर्ण है कि (1) इतिहास को इतिहास में फ्लश करें, और (2) इतिहास को साफ़ करें, सभी टर्मिनलों में। उपर्युक्त आदेश यही है।

संदर्भ: http://www.giannistsakiris.com/index.php/2007/09/13/how-to-clear-bash-history-and-what-to-watch-out-for/


115
2018-04-11 20:55



असल में, मेरे लिए काम करने का दूसरा तरीका। - kristianp
कई मामलों में, आप इन दोनों आदेशों को एक साथ जोड़ सकते हैं: history -cw - Elliot
किसी कारण से यह उबंटू 14.04, शायद दूसरों पर काम नहीं करता है। यह चाहिए लेकिन यह नहीं करता है। यदि आप "इतिहास-सीडब्ल्यू" आदेश जारी करते हैं तो आप ऊपर तीर के साथ पुष्टि कर सकते हैं कि इतिहास अब और नहीं है, लेकिन यदि आप Shift टर्म के साथ एक और टर्मिनल विंडो (एकता डेस्कटॉप में) प्रारंभ करते हैं (टर्मिनल आइकन पर क्लिक करें (मेरे पास यह है लॉन्चर में पिन किया गया) आदेश इतिहास वापस आ गए हैं, कोई फर्क नहीं पड़ता कि आप "इतिहास-सीडब्ल्यू" कितनी बार करते हैं। "बिल्ली / देव / शून्य> ~ / .bash_history" एकमात्र तरीका है जो मेरे लिए काम करता है। - Hatoru Hansou
जबकि मैं उबंटू नहीं हूं, ओएसएक्स में मेरे बैश खोल के लिए ठीक काम करता है। - Scott Biggs
यह इतिहास-सी और फिर इतिहास है- आप इतिहास को साफ़ करते हैं और फिर परिवर्तन लिखते हैं। यह आसानी से टर्मिनल को बंद करके और इसे फिर से खोलकर पुष्टि की जाती है, साथ ही पहले कमांड फिर से होते हैं, साथ-साथ अंतिम इतिहास प्रभावी ढंग से साफ़ हो जाता है। - Hatoru Hansou


हमेशा के लिए इतिहास को साफ करने के लिए निम्न आदेश निष्पादित करें

history -c && history -w

सौभाग्य!


44
2017-08-12 12:39





एक और आसान है: चल रहा है history -c टर्मिनल प्रॉम्प्ट पर और चला गया सभी प्रविष्टियां हैं bash_history फ़ाइल।


19
2018-03-10 18:10



नहीं ऐसा नहीं है। लॉग आउट करें, लॉग इन करें, तीर-अप मुझे सबकुछ देता है। आपको "इतिहास-डब्ल्यू" भी चाहिए। - stolsvik
यदि आप ओपी के प्रश्न को पढ़ते हैं तो आप इसका उपयोग करेंगे history -c यह सही तरीका है जिसने इस सवाल का नेतृत्व किया। - J.Money


ऐसा करने का एक और तरीका है हटा रहा है ~/.bash_history उपयोग करके फ़ाइल rm ~/.bash_history आदेश। जब आप एक और समय लॉगिन करते हैं, तो .bash_history फ़ाइल स्वचालित रूप से बनाई जाएगी।


10
2017-09-23 06:18



कम से कम कुछ ओएस पर ~ / .bash_history डिस्क पर लिखा जाता है जब आप लॉग आउट करते हैं - * बंटस के बारे में निश्चित नहीं है। - d-_-b


वर्तमान खोल के इतिहास को साफ़ करें:

history -c

जब आप लॉग आउट करते हैं, तो आपका वर्तमान खोल का इतिहास ~ / .bash_history में जोड़ा जाता है, जो कि पिछले शैल के इतिहास का कैश है, अधिकतम संख्या तक ("मैन बैश" में HISTFILESIZE देखें)।

यदि आप इतिहास को पूरी तरह से हटाना चाहते हैं, तो आपको अनिवार्य रूप से ~ / .bash_history को खाली करना होगा, जिसमें उपर्युक्त प्रविष्टियों में से कई ने सुझाव दिया है। जैसे कि:

history -c && history -w

यह वर्तमान खोल के इतिहास को साफ़ करता है और फिर वर्तमान खोल के इतिहास (खाली) को ~ / .bash_history को ओवरराइट करने के लिए मजबूर करता है .... या अधिक सटीक होने के लिए, यह इसे HISTFILE को ओवरराइट करने के लिए मजबूर करता है (जो ~ / .bash_history पर डिफ़ॉल्ट है)।

उम्मीद है की यह मदद करेगा।


5
2017-07-10 17:05



आप जवाब सही है, लेकिन सवाल दो साल का था, जवाब स्वीकार कर लिया था, और आपके द्वारा दिया गया वही जवाब शामिल था। - Charles Green


rm ~/.bash_history; history -c; logout

अब वापस लॉग इन करें और गवाह करें कि आपका तीर-अप आपको कुछ भी नहीं देता है।


5
2017-10-01 19:16



@ KasiyA यह एक सर्वर और एक एसएसएच सत्र के बारे में है, इसलिए संपादित करने की कोई जरूरत नहीं है ... - Radu Rădeanu


इसको आजमाओ

अपना संपादित करें .profile और फ़ाइल के अंत में नीचे दी गई रेखा जोड़ें

rm -f .bash_history

इस तरह, हर बार जब आप लॉगिन करते हैं, तो यह आपके लिए स्वचालित रूप से आपकी .bash_history फ़ाइल को हटा देगा। -आर रिकर्सिव हटाने विकल्प जोड़ना खतरनाक लगता है और इसकी आवश्यकता नहीं है।


0
2017-08-30 18:06