ดูประวัติคำสั่งที่รันในเทอร์มินัล


75

มีวิธีบันทึกคำสั่งเทอร์มินัลที่พิมพ์ไว้ทั้งหมดของฉันและดูเช่นเดียวกับประวัติในสมุดบันทึกหรือไม่?

คำตอบ:


92

สิ่งนี้จะทำโดยอัตโนมัติ ~/.bash_historyทุบตีเก็บคำสั่งของคุณใน หากคุณต้องการดูประวัติให้พิมพ์เอาต์พุตของไฟล์นี้โดยใช้หนึ่งใน

cat ~/.bash_history
less ~/.bash_history
...any other pager or output command...

หรือคุณสามารถใช้คำสั่ง builtin ของ bash:

history

หากต้องการล้างประวัติให้ลบไฟล์และล้างประวัติ temp:

rm ~/.bash_history && history -c

ขนาดประวัติเริ่มต้นที่คำสั่ง 500 อย่างไรก็ตามคุณสามารถเพิ่มสิ่งนี้ได้โดยเพิ่มบรรทัดต่อไปนี้ใน~./bashrc:

HISTSIZE=<number of entries, -1 for unlimited>

สิ่งนี้จะไม่มีผลทันที แต่เฉพาะกับเซสชันที่เพิ่งเริ่มใหม่ หากต้องการใช้สิ่งนี้ให้ทรัพยากรไฟล์. bashrc:

. ~/.bashrc

หรือทำงานHISTSIZE=...ในเซสชั่นปัจจุบันของคุณ


1
โดยค่าเริ่มต้นจะเก็บคำสั่ง 500 ล่าสุดเท่านั้น คุณสามารถเปลี่ยนหมายเลขที่จะเก็บไว้ แต่คุณต้องเริ่มโดยไม่ตั้งใจด้วยการตั้งค่าเริ่มต้นเพียงครั้งเดียวและประวัติเก่าทั้งหมดของคุณจะหายไป
kasperd

สิ่งนี้ใช้ไม่ได้กับฉันใน Ubuntu 16
Nam G VU

31

คุณสามารถพิมพ์historyบนเทอร์มินัลเพื่อดูคำสั่งที่เรียกใช้ก่อนหน้านี้ทั้งหมด


คุณสามารถตัดทอนผลลัพธ์ไปที่บางบรรทัด (โดยที่ 5 คือจำนวนบรรทัด):

history 5

หากคุณต้องการดูเฉพาะคำสั่งที่มีสตริง (เช่นmv) คุณสามารถทำได้:

history | grep mv

คุณสามารถเรียกคืนคำสั่งโดยพิมพ์!ตามด้วยหมายเลขรายการ

สมมติว่าฉันมีประวัติเช่นนี้:

1 ls -la
2 mkdir foo
3 mv bar.txt foo
  • เมื่อต้องการเรียกใช้คุณสามารถพิมพ์mkdir foo!2
  • หากต้องการเรียกใช้คำสั่งสุดท้ายคุณสามารถใช้!-1หรือ!!
  • ในการรัน penultimate คุณสามารถใช้ !-2

หากคุณรันคำสั่งที่ล้มเหลวเนื่องจากต้องการสิทธิ์รูท (เช่นtouch /etc/foo) คุณสามารถใช้sudo !!เพื่อรันคำสั่งสุดท้ายเป็นรูท


  • หากคุณพิมพ์!manคุณจะรันคำสั่งสุดท้ายที่ขึ้นต้นด้วยman
  • ถ้าคุณพิมพ์!?man?มันจะดำเนินการคำสั่งสุดท้ายที่มีman(ไม่จำเป็นที่บรรทัดเริ่มต้น)

หากคุณมีการพิมพ์ผิดในคำสั่งคุณสามารถแก้ไขได้ด้วยวิธีนี้ สมมติว่าฉันพิมพ์cat .bash_hiเพื่อแทนที่.bash_hiโดยผมจะต้องพิมพ์.bash_history^hi^history^


ที่มา: https://www.digitalocean.com/community/tutorials/how-to-use-bash-history-commands-and-expansions-on-a-linux-vps


2
นอกจากนี้คุณสามารถกด Ctrl-R เพื่อทำการค้นหาในโฮสต์ขณะที่คุณพิมพ์
Mhmd

historyทำงานกับฉันใน Ubuntu 16. ขอบคุณและควรเป็นที่ยอมรับ!
Nam G VU

9

เพียงพิมพ์:

history > print.txt

ไฟล์ใหม่ที่ชื่อว่า print.txt จะถูกสร้างขึ้นในไดเรกทอรีที่ทำงานอยู่ในปัจจุบัน


3
ตัดคำสั่งออกหลังจาก 1000
Antoine

3

ฉันมักจะต้องการคำสั่งล่าสุดเหล่านั้นด้วย หากต้องการโพสต์ลงในบันทึกการพัฒนาของฉันหรือไซต์สแต็กการแลกเปลี่ยนเช่นนี้ ... ได้พิสูจน์แล้วว่ามีประโยชน์มากโดยลบหมายเลขบรรทัดที่ไม่เกี่ยวข้องออก:

history | cut -c 8- | tail

หรือถ้าคุณชอบมันเป็นนามแฝงหมายเลขบรรทัดจะถูกลบออกและเยื้องทันที (เท่าที่จำเป็นสำหรับ markdown code quote)

alias lastones="history | tail | sed -e 's/^ [0-9]\{1,5\}  /    /gi'"

1
ใช้งานง่ายกว่าfc: askubuntu.com/a/839642/158442
muru

0

คุณอาจต้องการลองhttps://github.com/dvorka/hstrซึ่งอนุญาตให้เรียกดูการนำทางและการกรอง "แนะนำสไตล์กล่อง" อย่างง่าย ๆของประวัติ Bash ของคุณ:

ป้อนคำอธิบายรูปภาพที่นี่

สามารถผูกกับCtrl-rและ / หรือCtrl-s

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