เทอร์มินัล Linux ที่รัน Bash มีประวัติในตัวที่คุณสามารถใช้เพื่อติดตามสิ่งที่คุณทำเมื่อเร็วๆ นี้ หากต้องการดูประวัติของเซสชัน Bash ให้ใช้คำสั่งในตัว history
:
$ echo "foo"
foo
$ echo "bar"
bar
$ history
1 echo "foo"
2 echo "bar"
3 history
history
คำสั่งไม่ใช่ไฟล์ปฏิบัติการบนระบบไฟล์ของคุณ เช่นเดียวกับคำสั่งส่วนใหญ่ แต่เป็นฟังก์ชันของ Bash คุณสามารถตรวจสอบได้โดยใช้ type
คำสั่ง:
$ type history
history is a shell builtin
การควบคุมประวัติ
ขีดจำกัดสูงสุดของบรรทัดในประวัติเชลล์ของคุณกำหนดโดย HISTSIZE
ตัวแปร. คุณสามารถตั้งค่าตัวแปรนี้ใน .bashrc
. ของคุณ ไฟล์. ข้อมูลต่อไปนี้ตั้งค่าประวัติของคุณเป็น 3,000 บรรทัด หลังจากนั้นบรรทัดที่เก่าที่สุดจะถูกลบออกเพื่อให้มีที่ว่างสำหรับคำสั่งใหม่ล่าสุด โดยวางไว้ที่ด้านล่างของรายการ:
export HISTSIZE=3000
มีตัวแปรอื่น ๆ ที่เกี่ยวข้องกับประวัติศาสตร์ด้วย HISTCONTROL
ตัวแปรควบคุมสิ่งที่เก็บประวัติไว้ คุณสามารถบังคับให้ Bash แยกคำสั่งที่เริ่มต้นด้วยพื้นที่ว่างโดยวางสิ่งนี้ใน .bashrc
ของคุณ ไฟล์:
export HISTCONTROL=$HISTCONTROL:ignorespace
ตอนนี้ หากคุณพิมพ์คำสั่งที่ขึ้นต้นด้วยการเว้นวรรค คำสั่งนั้นจะไม่ถูกบันทึกไว้ในประวัติ:
$ echo "hello"
$ mysql -u bogus -h badpassword123 mydatabase
$ echo "world"
$ history
1 echo "hello"
2 echo "world"
3 history
คุณสามารถหลีกเลี่ยงรายการที่ซ้ำกันได้เช่นกัน:
export HISTCONTROL=$HISTCONTROL:ignoredups
ตอนนี้ หากคุณพิมพ์คำสั่งสองคำสั่ง ทีละคำสั่ง จะปรากฏเพียงคำสั่งเดียวในประวัติ:
$ ls
$ ls
$ ls
$ history
1 ls
2 history
หากคุณชอบการละเว้นทั้งสองนี้ คุณสามารถใช้ ignoreboth
:
export HISTCONTROL=$HISTCONTROL:ignoreboth
ลบคำสั่งออกจากประวัติ
บางครั้งคุณทำผิดพลาดและพิมพ์บางสิ่งที่ละเอียดอ่อนลงในเชลล์ของคุณ หรือบางทีคุณอาจต้องการล้างประวัติเพื่อให้แสดงขั้นตอนที่คุณทำเพื่อให้บางสิ่งทำงานได้อย่างถูกต้องแม่นยำยิ่งขึ้น หากคุณต้องการลบคำสั่งออกจากประวัติของคุณใน Bash ให้ใช้ -d
ตัวเลือกที่มีหมายเลขบรรทัดของรายการที่คุณต้องการลบ:
$ echo "foo"
foo
$ echo "bar"
bar
$ history | tail
535 echo "foo"
536 echo "bar"
537 history | tail
$ history -d 536
$ history | tail
535 echo "foo"
536 history | tail
537 history -d 536
538 history | tail
หากต้องการหยุดเพิ่ม history
รายการ คุณสามารถวาง space
ก่อนคำสั่ง ตราบใดที่คุณมี ignorespace
ใน HISTCONTROL
. ของคุณ ตัวแปรสภาพแวดล้อม:
$ history | tail
535 echo "foo"
536 echo "bar"
$ history -d 536
$ history | tail
535 echo "foo"
คุณสามารถล้างประวัติเซสชันทั้งหมดด้วย -c
ตัวเลือก:
$ history -c
$ history
$
บทเรียนประวัติศาสตร์
การจัดการกับประวัติศาสตร์มักมีอันตรายน้อยกว่าเสียง โดยเฉพาะอย่างยิ่งเมื่อคุณดูแลจัดการประวัติโดยมีเป้าหมายในใจ ตัวอย่างเช่น หากคุณกำลังบันทึกปัญหาที่ซับซ้อน วิธีที่ดีที่สุดคือใช้ประวัติเซสชันของคุณเพื่อบันทึกคำสั่งของคุณ เนื่องจากคุณกำลังเรียกใช้คำสั่งเหล่านี้ในประวัติของคุณ คุณกำลังเรียกใช้คำสั่งเหล่านั้นและด้วยเหตุนี้จึงทำการทดสอบกระบวนการ บ่อยครั้ง การจัดทำเอกสารโดยไม่ทำให้มองข้ามขั้นตอนเล็กๆ หรือเขียนรายละเอียดเล็กๆ น้อยๆ ผิดพลาด
ใช้เซสชันประวัติศาสตร์ของคุณตามความจำเป็น และใช้พลังของคุณเหนือประวัติศาสตร์อย่างชาญฉลาด แฮ็คประวัติศาสตร์อย่างมีความสุข!