เมื่อเรียกใช้คำสั่งบางครั้งฉันต้องการเรียกใช้คำสั่งด้วยอาร์กิวเมนต์ตัวก่อนหน้า ในการทำเช่นนั้นคุณสามารถใช้ทางลัดนี้:
$ mkdir /tmp/new
$ cd !!:*
บางครั้งแทนที่จะใช้การค้นหาฉันจะแยกลูปหนึ่งบรรทัดถ้าฉันต้องการรันคำสั่งจำนวนมากในรายการไฟล์
for file in *.wav; do lame "$file" "$(basename "$file" .wav).mp3" ; done;
การกำหนดค่าตัวเลือกประวัติบรรทัดคำสั่งใน. bash_login ของฉัน (หรือ. bashrc) มีประโยชน์จริง ๆ ต่อไปนี้เป็นโครงร่างของการตั้งค่าที่ฉันใช้กับ Macbook Pro ของฉัน
การตั้งค่าต่อไปนี้ทำให้ bash ลบคำสั่งที่ซ้ำกันในประวัติของคุณ:
export HISTCONTROL="erasedups:ignoreboth"
ฉันยังเพิ่มขนาดประวัติของฉันให้สูงขึ้นอีกด้วย ทำไมจะไม่ล่ะ? ดูเหมือนจะไม่ทำให้อะไรช้าลงในไมโครโปรเซสเซอร์ในปัจจุบัน
export HISTFILESIZE=500000
export HISTSIZE=100000
อีกสิ่งที่ฉันทำคือเพิกเฉยคำสั่งบางอย่างจากประวัติของฉัน ไม่จำเป็นต้องจำคำสั่ง exit
export HISTIGNORE="&:[ ]*:exit"
คุณต้องการตั้งค่า histappend มิฉะนั้น bash จะเขียนทับประวัติของคุณเมื่อคุณออก
shopt -s histappend
ตัวเลือกอื่นที่ฉันใช้คือ cmdhist สิ่งนี้ช่วยให้คุณสามารถบันทึกคำสั่งหลายบรรทัดในประวัติเป็นคำสั่งเดียว
shopt -s cmdhist
ในที่สุดบน Mac OS X (หากคุณไม่ได้ใช้โหมด vi) คุณจะต้องรีเซ็ต <CTRL> -S จากการหยุดเลื่อน สิ่งนี้จะช่วยป้องกันการทุบตีจากความสามารถในการตีความว่าเป็นการค้นหาไปข้างหน้า
stty stop ""