क्या एक गुप्त सत्र खोलना संभव है bash?
उदाहरण के लिए, जब हमें आदेशों में पासवर्ड दर्ज करने की आवश्यकता होती है और bashउन्हें इतिहास में जोड़ना नहीं चाहते हैं।
secrectcommandबैश इतिहास में नहीं होगा।
क्या एक गुप्त सत्र खोलना संभव है bash?
उदाहरण के लिए, जब हमें आदेशों में पासवर्ड दर्ज करने की आवश्यकता होती है और bashउन्हें इतिहास में जोड़ना नहीं चाहते हैं।
secrectcommandबैश इतिहास में नहीं होगा।
जवाबों:
जब आप bashअपने आदेशों को लॉग इन करना बंद करना चाहते हैं , तो बस HISTFILEवेरिएबल को अनसेट करें :
HISTFILE=
इसके बाद सभी कमांड को अब लॉग इन नहीं किया जाना चाहिए .bash_history।
दूसरी ओर, यदि आप वास्तव में पासवर्ड को कमांड के तर्क के रूप में आपूर्ति कर रहे हैं, तो आप पहले से ही कुछ गलत कर रहे हैं। .bash_historyविश्व-पठनीय नहीं है और इसलिए इस स्थिति में सबसे बड़ा खतरा नहीं है:
psऔर /procबड़ी समस्या है। सिस्टम के सभी उपयोगकर्ता इस आदेश को देख सकते हैं जो आप वर्तमान में अपने सभी तर्कों के साथ चला रहे हैं । कमांड लाइन के तर्क के रूप में पासवर्ड पास करना स्वाभाविक रूप से असुरक्षित है । सुरक्षित रूप से पासवर्ड की आपूर्ति करने के लिए पर्यावरण चर या कॉन्फिग फाइल (जिसे आपने chmodded 600 है) का उपयोग करें।
unset HISTFILEएक समान प्रभाव पड़ता है। मेरे पास इसके लिए एक फ़ंक्शन है n() { HISTFILE=; PS1="~${PS1#\~}"; }:। इस तरह मैं स्पष्ट रूप से देख सकता हूं कि मैं "गुप्त मोड" में हूं या नहीं।
HISTCONTROL=ignorespace
यदि यह विकल्प पहले से निर्धारित नहीं है bash, तो यह वही हो सकता है जिसकी आपको आवश्यकता है। यह सभी इतिहास को अक्षम करने की तुलना में कम दुर्बल है। उस सेट के साथ, अंतरिक्ष वर्ण से शुरू होने वाली कोई भी कमांडलाइन इतिहास सूची में सहेजी नहीं जाएगी।
इन संबंधित लिंक से:
बैश में HISTCONTROL = इग्नोरस्पेस विकल्प क्यों है?
बैश उन आदेशों को संग्रहीत क्यों नहीं कर रहा है जो रिक्त स्थान से शुरू होते हैं?
आप अस्थायी रूप से इतिहास को अक्षम कर सकते हैं: set +o history
set +o history
...
set -o history
इतिहास को अक्षम करने और परेशान करने के बीच एक अंतर है HISTFILE:
HISTFILE=
date
ls
HISTFILE=~/.bash_history
history
कुछ इस तरह से आउटपुट:
84 HISTFILE=
85 date
87 ls
88 HISTFILE=~/.bash_history
89 history
यानी सभी कमांड हिस्ट्री लिस्ट में सेव हैं। exitइसे बचाने के लिए टाइप करें।
परंतु
set +o history
date
ls
set -o history
history
कुछ इस तरह से आउटपुट:
115 set +o history
116 history
सारांश :
set +o historyलंबे सत्रों के लिए।
HISTCONTROLऔर <space>commandअन्य समय पर।
cat | bashbashप्रॉम्प्ट, कमांड-लाइन एडिटिंग (बस लाइन अनुशासन के आंतरिक संपादक) या इतिहास के बिना एक गैर-इंटरैक्टिव चलाएगा ।