ประวัติทุบตีด้วยการประทับเวลา


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

ฉันควรจะกล่าวถึงฉันใน OS X Mountain Lion (ถอนหายใจ) 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 ) มันมีค่าที่เหมาะสม

! ที่น่าสนใจ

ฉันยังลบ. profile อย่างสมบูรณ์เพื่อแก้ปัญหานี้ ยังคงบันทึกเวลาตลกเท่านั้น:

#1349058320

ฉันไม่รู้วิธีแก้ไขปัญหานี้เพิ่มเติม ... :(

วิธีแก้ปัญหา : ฉันใช้สคริปต์ที่อ่าน $ HISTFILE โดยตรงไม่ใช่ประวัติในตัวดังนั้นการประทับเวลาตามยุควินาที (วินาทีตั้งแต่ Coordinated Universal Time (UTC) 1 มกราคม 1970) ไม่ได้แปลโดยใช้สตริงการจัดรูปแบบวันที่ . งานธรรมดาธรรมดาhistoryดีฉันจะใช้แทน


2
คุณลองตั้งค่าแล้วHISTTIMEFORMATหรือยัง
jw013

อาจเป็นเพราะฉันได้รับการจัดรูปแบบผิดปกติ มันจะช่วยได้หรือไม่หากหน้า man รวมอย่างน้อยสองตัวอย่าง .. +% 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
 (...)

คำอธิบายของผลลัพธ์:

  • col แรกนั้นไม่เหมือนใคร id
  • ที่สองคือวันที่ที่สามคือชั่วโมง
  • ล่าสุดคือบรรทัดคำสั่งของคุณ

3
ไม่ไม่ทำงานบน OSX .. :( พิสูจน์ว่าเป็นปัญหาระบบปฏิบัติการแปลก ๆ
Robottinosino

คุณไม่source ~/.bashrc?
Gilles Quenot

ฉันทำอย่างแน่นอนที่สุด มันกำลังทำ "บางอย่าง": การเพิ่มบรรทัดที่ถูกคอมเม้นต์ก่อนคำสั่งด้วยการประทับเวลาเป็นตัวเลข: # 1349057149
Robottinosino

1
@Robottinosino ใช่บรรทัดที่มีความคิดเห็นเป็นรูปแบบที่คาดหวัง หากต้องการแสดงคำสั่งด้วยเวลาที่จัดรูปแบบให้ใช้historyคำสั่ง builtin อย่าดูที่ไฟล์ประวัติโดยตรง
jw013

1
เป็นไปได้หรือไม่ที่จะมีการประทับเวลาในไฟล์ประวัติที่บันทึกโดยใช้ HISTTIMEFORMAT ฉันไม่เคยใช้historyคำสั่งแทนฉันใช้โปรแกรมแก้ไขข้อความเพื่อค้นหาคำสั่งที่ฉันกำลังมองหาและจะเป็นการดีถ้ามีการอ้างอิงวันที่ที่มนุษย์อ่าน
ไป
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.