टाइमस्टैम्प के साथ बैश इतिहास


15

मैं अपने Bash $ HISTFILE में लॉग इन कमांड पर टाइमस्टैम्प रखना चाहूंगा, क्या यह संभव है?

मैंने man bashसूचना स्रोत के रूप में इसका उपयोग करने का प्रबंधन नहीं किया ।

मेरे अन्य विकल्प इस प्रकार हैं:

function thebanana() {
  local -r -a bash_commands=(
    "ls"
    # ... more coconut commands
  )
  for bash_command in "${bash_commands[@]}"; do
    printf "${bash_command}"
    printf ":"
  done
}
export HISTFILE=banana
export HISTIGNORE="$(thebanana)"
export HISTSIZE=999999
export HISTFILESIZE=999999999
export HISTCONTROL=ignoredups:erasedups

मुझे उल्लेख करना चाहिए था कि मैं ओएस एक्स माउंटेन लायन (आह) पर हूं। uname -aमुझे देता है:

Darwin CoconutMac.local 12.2.0 Darwin Kernel Version 12.2.0: Sat Aug 25 00:48:52 PDT 2012; root:xnu-2050.18.24~1/RELEASE_X86_64 x86_64

और echo $BASH_VERSIONमुझे देता है:

3.2.48(1)-release

इसे जोड़ने की कोशिश की:

export HISTTIMEFORMAT='%b %d %I:%M:%S %p '

और यह केवल इस प्रकार के टाइमस्टैम्प्स को उपसर्गों को कमांड करता है:

#1349057791

मैं चर ( echo $HISTTIMEFORMAT) को वापस गूँजने की कोशिश करता हूं , इसका सही मूल्य है।

दिलचस्प!

मैंने इसे हटाने के लिए पूरी तरह से हटा दिया है। अभी भी केवल मजेदार टाइमस्टैम्प:

#1349058320

मैं नहीं जानता कि यह कैसे आगे का निवारण करना है ... :(

समाधान : मैं एक ऐसी स्क्रिप्ट का उपयोग कर रहा था, जो $ HISTFILE को सीधे पढ़ती है, न कि इतिहास में निर्मित इसलिए युग-आधारित टाइमस्टैम्प (1 जनवरी, 1970 के समन्वित यूनिवर्सल टाइम (UTC) के बाद से सेकंड) का उपयोग दिनांक स्वरूपित स्ट्रिंग का उपयोग करके नहीं किया जा रहा था। । सादा-पुराना historyठीक काम करता है, मैं इसके बजाय इसका उपयोग करूँगा।


2
क्या आपने सेटिंग करने की कोशिश की है HISTTIMEFORMAT?
jw013

संभवत: मुझे स्ट्रगलटाइम फॉर्मेट गलत मिल रहा है। यह मदद करेगा यदि मैन पेज में कम से कम दो उदाहरण शामिल हों .. +% Y-% m-% d% H-% M-% S?
Robottinosino

जवाबों:


15

हां, इसे इसमें डालें ~/.bashrc:

export HISTTIMEFORMAT='%F %T '

फिर, निम्न आदेश चलाएँ:

. ~/.bashrc
history

यह इस तरह दिखेगा:

 (...)
 5200  2012-09-30 23:55:37 find -printf '%Ts %f\n'
 5201  2012-10-01 00:00:58 ls
 5202  2012-10-01 00:03:45 cd
 (...)

आउटपुट की व्याख्या:

  • पहला कोला अद्वितीय है id
  • दूसरा एक तारीख है, तीसरा घंटा है
  • नवीनतम आपकी कमांड लाइन है

3
नहीं, OSX पर काम नहीं करता है .. :(
शायद

क्या आपने source ~/.bashrc?
गाइल्स क्वेनोट

मैंने सबसे निश्चित रूप से किया। यह "कुछ" कर रहा है: एक संख्यात्मक टाइमस्टैम्प के साथ कमांड से पहले एक टिप्पणी की गई पंक्ति को जोड़ना : # 1349057149
Robottinosino

1
@Robottinosino हाँ टिप्पणी लाइन अपेक्षित प्रारूप है। स्वरूपित समय के साथ कमांड प्रदर्शित करने के लिए, historyअंतर्निहित कमांड का उपयोग करें , सीधे इतिहास फ़ाइल को न देखें।
jw013

1
क्या HISTTIMEFORMAT का उपयोग करके दर्ज की गई इतिहास फ़ाइल में समय की मुहर लगना संभव है? मैं कभी भी historyकमांड का उपयोग नहीं करता हूं , इसके बजाय मैं एक टेक्स्ट एडिटर का उपयोग करता हूं ताकि मैं जो कमांड ढूंढ रहा हूं उसे ढूंढ सकूं और मानव पठनीय तारीख संदर्भ के लिए अच्छा होगा।
चला गया
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.