หากคุณคุ้นเคยกับ Command Line Interface ของ Linux หรือ UNIX ค่อนข้างน่าจะเคยใช้คำสั่ง history สำหรับผู้ไม่คุ้นเคย คำสั่ง history ช่วยให้คุณค้นหาคำสั่งที่เคยรันบนบรรทัดคำสั่งของคอมพิวเตอร์ได้
ตัวอย่างการใช้งาน:
# history | grep "kill"
จะค้นหาคำสั่งที่มีคำว่า kill ในประวัติคำสั่งที่คุณเคยรัน นี่เป็นตัวอย่างพื้นฐานของคำสั่ง history มีข้อจำกัดบางอย่าง มาดูวิธีปรับแต่งให้ทำงานได้มีประสิทธิภาพมากขึ้น ข้อจำกัดที่ทำผมรำคาญบ่อยคือ หากคุณรัน Terminal 2 เซสชันพร้อมกัน คำสั่งจากเซสชันแรกจะถูกลบออกจากประวัติ ไม่ใช่วิธีที่ฉลาดของคำสั่งนี้ ผมจะแก้ให้
ล็อกอินเข้าบัญชีและเปิด Shell Terminal ใน Home Directory ของ User คุณควรจะพบไฟล์ชื่อ .bashrc หากไม่มี ให้สร้างขึ้นมา เปิดไฟล์ด้วยคำสั่ง เช่น ต่อไปนี้ แทนที่ user ด้วย Username ของคุณ:
# vim /home/user/.bashrc
เพิ่มบรรทัดต่อไปนี้ลงในไฟล์ .bashrc โดยไม่ต้องเปลี่ยนแปลงอะไรเลย:
shopt -s histappend
PROMPT_COMMAND='history -a'
เสร็จแล้ว ปัญหาแก้ไขได้ ตั้งแต่นี้ไป คำสั่งจากเซสชันเดี่ยวและเซสชันพร้อมกัน จะถูกเขียนลงไฟล์ประวัติคำสั่ง และไม่มีการเขียนทับกัน
การเปลี่ยนแปลงอีกอย่างที่มีประโยชน์ที่ผมชอบทำกับการตั้งค่า history คือ การลบรายการซ้ำ (Duplicates) ออกจากประวัติคำสั่ง วิธีนี้ทำให้เข้าถึงข้อมูลมากขึ้นและเร็วขึ้น เปิดไฟล์ .bashrc อีกครั้ง และเพิ่มบรรทัดต่อไปนี้ในบรรทัดใหม่:
export HISTCONTROL="ignoredups"
export HISTIGNORE="&:ls:[bf]g:exit”
บันทึกไฟล์และออกจาก Text Editor ตอนนี้คำสั่ง history จะตรวจสอบว่าคำสั่งนั้นมีอยู่ใน Log File แล้วหรือยังก่อนจะเพิ่มข้อมูลใหม่ การปรับแต่งครั้งสุดท้ายที่ผมทำกับการตั้งค่า history คือ การเพิ่ม Spell Check เพิ่มบรรทัดด้านล่างลงในไฟล์ .bashrc เพื่อช่วยให้คำสั่ง history ตรวจสอบข้อผิดพลาดการสะกดในคำสั่งและเสนอคำสั่งที่ถูกต้อง:
shopt -s cdspell
บันทึกและออก ตอนนี้เครื่อง Linux ของคุณจะรู้ได้เวลาคุณพิมพ์ gerp แทน grep
หวังว่าคู่มือเรื่องคำสั่ง history ใน Linux นี้จะมีประโยชน์! อย่าลืมเช็ค Linux Tips, Tricks และ Guides อื่นๆ ของเราด้วย