วิธีดูไฟล์ `.bash_history` ผ่านทางบรรทัดคำสั่ง


72

ฉันต้องการดูเนื้อหาของ.bash_historyไฟล์ของฉันแต่ไม่ทราบว่าจะไปที่นั่นผ่านทางบรรทัดคำสั่งได้อย่างไร


7
วิธีการเกี่ยวกับhistory | less
MadMike

2
คุณตรวจสอบแล้ว/home/username/.bash_history หรือยัง
มิทช์

2
หมายเหตุ: .bash_historyจะถูกต่อท้ายเฉพาะเมื่อปิดเทอร์มินัล
Nicolas VERHELST

คำตอบ:


56

หากคุณต้องการที่จะเข้าถึงไฟล์ตัวจริงเพียงแค่ใช้โปรแกรมแก้ไขข้อความที่คุณชื่นชอบ (ผมใช้emacsแต่คุณสามารถใช้plumaของgeditหรือvimหรืออะไรก็ตาม):

emacs ~/.bash_history

นั่นคือตำแหน่งเริ่มต้นหากไฟล์ประวัติของคุณ หากคุณไม่พบสิ่งใดที่นั่นคุณอาจเปลี่ยนชื่อไฟล์ประวัติ สิ่งนี้ถูกเก็บไว้ใน$HISTFILEตัวแปรดังนั้นพิมพ์ออกมาเพื่อตรวจสอบค่าปัจจุบัน:

echo $HISTFILE

หากคุณต้องการดูประวัติของคุณแทนที่จะเรียกใช้ไฟล์คุณสามารถเรียกใช้historyตามที่แนะนำ @ minerz029 คำสั่งที่มีตัวเลือกไม่เพียงแค่พิมพ์เนื้อหาของคุณตามด้วยคำสั่งดำเนินการในเปลือกปัจจุบันที่ยังไม่ได้รับการเขียนไปยังแฟ้มที่มีหมายเลขบรรทัดhistory$HISTFILE


49

หากคุณต้องการเอาต์พุตของ.bash_historyไฟล์จริงๆให้แทนที่historyด้วย
cat ~/.bash_historyคำสั่งทั้งหมดด้านล่าง

หากคุณต้องการคำสั่งที่ไม่มีตัวเลขอยู่ข้างหน้าให้ใช้คำสั่งนี้แทนhistory:

history | cut -d' ' -f 4-

ไม่เช่นนั้นจะไม่มีความแตกต่าง (ยกเว้นถ้าคุณใช้เชลล์อื่น)


15 คำสั่งล่าสุด

คุณสามารถใช้ได้

history | tail -n 15

เพื่อรับเฉพาะ 15 บรรทัดสุดท้ายในประวัติของคุณโดยพิมพ์ครั้งสุดท้ายที่ดำเนินการครั้งสุดท้าย (ที่ด้านล่าง)


กำลังค้นหาคำสั่ง

หรือใช้

history | grep "apt-get" | tail -n 15

เพื่อรับ 15 คำสั่งล่าสุดซึ่งบรรจุapt-getด้วยคำสั่งที่พิมพ์ครั้งสุดท้ายครั้งสุดท้าย (ที่ด้านล่าง) คุณสามารถแทนที่apt-getด้วยคำสั่งใด ๆ (หรืออาร์กิวเมนต์คำสั่ง) ที่คุณต้องการค้นหา (มันอาจเป็นนิพจน์ปกติ)


เลื่อนดูประวัติ

คุณสามารถใช้ได้

history | tac | less

เพื่อเลื่อนดูคำสั่งทั้งหมดที่ดำเนินการโดยเริ่มจากคำสั่งล่าสุดที่ด้านบน กดqเพื่อออก

ในทำนองเดียวกันการใช้งาน

history | grep "apt-get" | tac | less

เพื่อเลื่อนดูคำสั่งทั้งหมดที่ดำเนินการด้วย " apt-get" ในพวกเขา (รวมถึงอาร์กิวเมนต์) เริ่มต้นด้วยคำล่าสุดที่ด้านบน กดqเพื่อออก


15

นอกจากคำตอบที่ยอดเยี่ยมของ minerz029 แล้ว

หากต้องการย้ำอีกครั้ง - คำสั่ง 'ประวัติ' จะพิมพ์ประวัติพร้อมกับตัวเลขที่อยู่ติดกับมัน

คุณสามารถไพพ์เอาต์พุตของประวัติลงใน grep, น้อยลงเป็นต้น

ouput แห่งประวัติศาสตร์ยังแสดงตัวเลขทางด้านซ้ายถัดจากเอาท์พุท เช่น

  469  free
  470  ps -fA
  471  ps -fA | grep xend
  472  free
  473  sudo vi /etc/xen/xend-config.sxp 
  474  cat /etc/default/grub 

ด้วยหมายเลขนี้คุณสามารถเรียกใช้คำสั่งอีกครั้ง

เช่นเมื่อต้องการเรียกใช้ 473 อีกครั้งฉันจะพิมพ์ในเทอร์มินัล

 admin@xen1~$ !473

ตามด้วยปุ่ม Enter เพื่อทำซ้ำคำสั่งที่อยู่ถัดจาก 473 ในเอาต์พุตประวัติ

นอกจากนี้คุณยังสามารถค้นหาย้อนหลังในประวัติคำสั่งโดยการพิมพ์ctrl + rปุ่มจากนั้นเริ่มพิมพ์เนื้อหาบางส่วนของคำสั่งและมันจะค้นหาและกรอกข้อมูล เมื่อคุณพบแล้วคุณสามารถพิมพ์ Enter เพื่อทำซ้ำหรือกด[tab]ปุ่มเพื่อคัดลอกไปยังบรรทัดคำสั่งเพื่อแก้ไขคำสั่งก่อน

แน่นอนว่าสองตัวเลือกสุดท้ายนั้นทำงานในเชลล์ bash ฉันไม่แน่ใจว่าคุณสมบัติเหล่านี้ทำงานในเปลือกอื่น ๆ แต่เนื่องจาก bash เป็นเชลล์เริ่มต้นของ Ubuntu คุณจึงควรหามันไว้ที่นั่น


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