जवाबों:
HIST_IGNORE_SPACE विकल्प का उपयोग करें।
setopt HIST_IGNORE_SPACE
आदमी zshoptions
HIST_IGNORE_SPACE
इतिहास सूची से कमांड लाइनों को हटा दें जब लाइन पर पहला चरित्र एक स्थान होता है, या जब एक विस्तारित उपनाम में से एक अग्रणी स्थान होता है। ध्यान दें कि आंतरिक इतिहास में कमांड लाइनिंग तब तक है जब तक कि गायब होने से पहले अगली कमांड दर्ज नहीं की जाती है, आपको लाइन को फिर से उपयोग या संपादित करने की अनुमति देता है। यदि आप इसे अन्य कमांड में प्रवेश किए बिना तुरंत गायब करना चाहते हैं, तो एक स्थान टाइप करें और रिटर्न दबाएं।
kill -9 $$वर्तमान टर्मिनल सत्र में जारी किए गए सभी आदेशों को इतिहास में संग्रहीत करने से बचने के लिए वास्तव में शानदार है।
unset HISTFILEकमांड के अपने ब्लॉक से पहले कर सकते हैं। आपको HISTFILEअपने इतिहास में अपने इच्छित कमांड रखने के लिए बाद में रीसेट करने या एक नया शेल खोलने की आवश्यकता होगी ।
यदि आप ZSH इतिहास में क्या जोड़ा गया है, इस पर अधिक बारीक नियंत्रण चाहते हैं, तो आप zshaddhistoryफ़ंक्शन को परिभाषित कर सकते हैं .zshrc। निम्नलिखित परिभाषा उपेक्षा करने के लिए एक पैटर्न को परिभाषित करने के लिए एक regex का उपयोग करती है:
function zshaddhistory() {
emulate -L zsh
if ! [[ "$1" =~ "(^ |^ykchalresp|--password)" ]] ; then
print -sr -- "${1%%$'\n'}"
fc -p
else
return 1
fi
}
ध्यान दें कि man zshoptsनीचे से व्यवहार HIST_IGNORE_SPACEअभी भी मौजूद है:
ध्यान दें कि आंतरिक इतिहास में कमांड लाइनिंग तब तक है जब तक कि गायब होने से पहले अगली कमांड दर्ज नहीं की जाती है, आपको लाइन को फिर से उपयोग या संपादित करने की अनुमति देता है।
तो इसका परीक्षण करने के लिए, आपको एक अतिरिक्त हिट करना होगा [Enter]। यह दोनों के आउटपुट से कमांड हटाता है history, और the एरो हिस्ट्री भी।