में बैश सत्र कैसे अक्षम कर सकता हूं ओएस एक्स एल कैपिटन (10.11 बीटा) is Bash sessions (Terminal sessions) में एक प्रतीत होता है कि नई सुविधा। अब मेरे पास इतिहास फ़ाइलों के साथ ~/.bash_sessions
निर्देशिका है, और मेरे HISTFILE
और HISTIGNORE
envars को ओवरराइड किया जा रहा है। मैं इस सारी कार्यक्षमता को कैसे अक्षम कर सकता हूं?मैं ओएस एक्स एल कैपिटन
उत्तर
यदि आप मैन्युअल रूप से एक नया बैश सत्र शुरू करते हैं (यानी bash -xl
), तो आप देख सकते हैं कि लॉगिन पर क्या चल रहा है।
आप उत्पादन में निम्नलिखित पंक्ति देखेंगे:
....
+++ '[' '!' -e /Users/username/.bash_sessions_disable ']'
आप इस कार्यक्षमता को निष्क्रिय करने के लिए अपने घर निर्देशिका में .bash_sessions_disable
फ़ाइल बना सकते हैं।
मुझे पहले से थोड़ा अधिक इतिहास तक पहुंच पसंद है, लेकिन क्या यह स्वयं पर कोई सीमा लगाता है? ऐसा लगता है कि 10.11 इंस्टॉल करने के बाद से प्रत्येक टर्मिनल आमंत्रण के लिए मेरे पास दो या तीन फ़ाइलें हैं। प्रति माह केवल दो मेगाबाइट्स, लेकिन अभी भी .... – WGroleau
@WGroleau: यह सुविधा इतिहास की मात्रा के बारे में नहीं है, यह प्रत्येक टर्मिनल सत्र के लिए अलग-अलग कमांड इतिहास संग्रहीत करने के बारे में है ताकि यदि आप फिर से शुरू करने के साथ टर्मिनलों को पुनर्स्थापित करेंगे तो इतिहास अलग रहेगा जैसा कि आपने शुरुआत में उन्हें बनाया था। सामान्य 'HISTSIZE' और' HISTFILESIZE 'खोल चर अभी भी लागू होते हैं। वास्तव में, यह अनुशंसा की जाती है कि आप उनमें से एक या दोनों को बड़ा बनाएं, क्योंकि प्रत्येक सत्र वैश्विक इतिहास '~/.bash_history' फ़ाइल में भी अपना इतिहास जोड़ता है, इसलिए आपका पूरा इतिहास नए टर्मिनल में उपलब्ध है। अधिक जानकारी के लिए '/ etc/bashrc_Apple_Terminal' में टिप्पणियां देखें। –
@WGroleau: यह दिन में एक बार, दो सप्ताह से अधिक पुराने सत्र फ़ाइलों को स्वचालित रूप से हटा देता है। –
यह व्यवहार /etc/bashrc_Apple_Terminal
में परिभाषित किया गया है। इसमें दस्तावेज़ों की टिप्पणियां शामिल हैं जो यह बताती हैं कि यह क्या करती है और इसे कैसे अनुकूलित करें।
आप यहां बताए अनुसार, अपने ~/.bashrc
लिपि में SHELL_SESSION_HISTORY=0
की स्थापना द्वारा प्रति टर्मिनल सत्र आदेश इतिहास सुविधा को अक्षम कर सकते हैं: 0 SHELL_SESSION_HISTORY की स्थापना करके
आप इस व्यवहार को एक भी इतिहास को अक्षम कर सकते हैं और साझा कुछ सामान्य उपयोगकर्ता अनुकूलन हैं जो द्वारा चल रहे गोले के बीच नए कमांड को प्रत्येक प्रॉम्प्ट पर इतिहास में हेरफेर करने की व्यवस्था करते हैं, और उनमें आमतौर पर 'shopt -s histappend' शामिल होता है; इसलिए, यदि हिस्टैपेंड खोल विकल्प सक्षम है, प्रति सत्र इतिहास डिफ़ॉल्ट रूप से अक्षम है। आप स्पष्ट रूप से इसे SHELL_SESSION_HISTORY की स्थापना द्वारा करने के लिए 1.
ध्यान दें कि, यद्यपि आप ~/.bash_sessions_disable
बनाकर पूरे सत्र राज्य बहाली तंत्र निष्क्रिय कर सकते हैं, इस प्रति-सत्र के आदेश इतिहास सुविधा को अक्षम करने के लिए सिर्फ अनावश्यक है सक्रिय कर सकते हैं, और अनुशंसित नहीं है।
अच्छा लगता है! '/ Etc/bashrc_Apple_Terminal' के माध्यम से देखकर मुझे विश्वास होता है कि सुविधा को पूरी तरह से रोकने का एकमात्र तरीका' HOME/.bash_sessions_disable "सेट करना है (यानी, उस फ़ाइल के बिना यह अभी भी सत्र निर्देशिका बनायेगा)। – Whymarrh
@Wymymhh क्या आप मेरे उत्तर का हिस्सा याद करते थे? मैंने कहा कि वह फ़ाइल सत्र-राज्य तंत्र को अक्षम करती है-लेकिन यदि आप जो करना चाहते हैं वह ओवर-बिल है, तो प्रति सत्र शेल कमांड इतिहास अक्षम करें। –
ऐसा लगता है कि मैंने उस अंतिम पंक्ति को गलत तरीके से पढ़ा है, हां। उसके लिए माफ़ करना। – Whymarrh
संक्षेप में, इसे ऐप्पल की Resume सुविधा के साथ करना है। जब यह सुविधा सक्षम होती है, जब आप किसी ऐप को छोड़ देते हैं या रीबूट करते हैं, अगली बार जब ऐप खुलता है तो यह उन विंडो को खोल देगा जो पहले खुले थे।
$HOME/.bash_sessions_disable
चाहिए वर्तमानSystem Preferences/General/Close Windows when quitting an app
नहीं जाँच की जानी चाहिए नहीं हो:टर्मिनल के संबंध में, तीन बातें ऐसा करने के लिए जगह में रहना होगा।
- रीबूट करते समय, का चयन करें।
जब आप टर्मिनल को फिर से खोलें, तो वह उसी स्क्रीन और टैब को उसी स्क्रीन स्थिति में पहले से खोल देगा। इसके अतिरिक्त, यदि आपने Terminal/Preferences/your-window-type/Windows/Resume/Restore-text-when-reopening-windows
चेक किया है, तो यह प्रत्येक स्क्रीन पर टेक्स्ट को पुनर्स्थापित करेगा।
अंत में, और इस ओपी के सवाल का विशेष रूप से संबंधित है, यह प्रत्येक विंडो/टैब में इतिहास को बहाल कर देगी, तो निम्न स्थितियों में पकड़:
SHELL_SESSION_HISTORY
सेट नहीं है या 1shopt histappend
करने के लिए सेट नहीं है सेटHISTTIMEFORMAT
सेट नहीं है SHELL_SESSION_HISTORY
स्पष्टमें 1 पर सेट है, पिछले दो आवश्यकताओं को ओवरराइड किया गया है, यानी shopt histappend
या HISTTIMEFORMAT
सेट किया जा सकता है।
इसके अतिरिक्त, ध्यान HISTSIZE
और HISTFILESIZE
चरों पर भुगतान करने की आवश्यकता है। उन्हें बहुत बड़ा या बहुत छोटा नहीं होना चाहिए, और कुछ उन्हें अनसेट छोड़ने की सलाह देते हैं ताकि वे ऐप्पल के डिफ़ॉल्ट मान ले सकें।
- 1. ओएस एक्स (एल कैपिटन)
- 2. ओएस एक्स एल कैपिटन
- 3. ओएस एक्स एल कैपिटन
- 4. ओएस एक्स एल कैपिटन
- 5. मैक ओएस एक्स एल कैपिटन
- 6. मैक ओएस एक्स एल कैपिटन
- 7. मैक ओएस एक्स एल कैपिटन
- 8. मैक ओएस एल कैपिटन
- 9. आईओएस 9 और ओएस एक्स 10.11 एल कैपिटन
- 10. मैक ओएस एक्स एल कैपिटन पर असमर्थित major.minor संस्करण
- 11. एल कैपिटन
- 12. ओएसएक्स एल कैपिटन
- 13. एल कैपिटन
- 14. एल कैपिटन
- 15. ओएसएक्स 10.11 एल कैपिटन
- 16. ओएसएक्स एल कैपिटन
- 17. मैक ओएसएक्स एल कैपिटन
- 18. ओएसएक्स एल कैपिटन
- 19. ओएसएक्स एल कैपिटन
- 20. विम एल कैपिटन अपडेट
- 21. एल कैपिटन लैन
- 22. ओएसएक्स 10.11 एल कैपिटन
- 23. ओएसएक्स एल कैपिटन
- 24. ओएसएक्स एल कैपिटन पर ओएसएक्स एल कैपिटन पर एक नोडजेएस ऐप (एपियम) शुरू नहीं कर सकता है, ओएस अपग्रेड
- 25. ओएस एक्स
- 26. ओएस एक्स एल कैपिटन पर libssl का उपयोग कर सी प्रोग्राम संकलित?
- 27. मैक ओएस एक्स एल कैपिटन - स्केपर/पायथन आयात त्रुटि: नाम xmlrpc_client
- 28. कम्पास ओएस एक्स एल कैप्टन (10.11)
- 29. मैक ओएस एक्स
- 30. पाइथन ओपनसीवी 3.2.0 ओएसएक्स एल कैपिटन
"... मेरा ... इतिहास विजेता envars ओवरराइड किया जा रहा है।" क्या आप निश्चित हैं? '/ etc/bashrc_Apple_Terminal' 'HISTIGNORE' को परिवर्तित नहीं करता है (यह बिल्कुल संदर्भित नहीं है)। –
* यदि 'हिस्टैपेंड' खोल विकल्प सक्षम है, तो प्रति सत्र इतिहास डिफ़ॉल्ट रूप से अक्षम किया जाता है * – yckart