คำสั่งที่ดำเนินการในเทอร์มินัลนำหน้าด้วยช่องว่างจะไม่ถูกบันทึกในไฟล์ประวัติคำสั่ง แต่มีวิธีที่จะได้รับการย้อนกลับคือประวัติศาสตร์ควรบันทึกผู้ที่ถูกนำหน้าด้วยพื้นที่?
คำสั่งที่ดำเนินการในเทอร์มินัลนำหน้าด้วยช่องว่างจะไม่ถูกบันทึกในไฟล์ประวัติคำสั่ง แต่มีวิธีที่จะได้รับการย้อนกลับคือประวัติศาสตร์ควรบันทึกผู้ที่ถูกนำหน้าด้วยพื้นที่?
คำตอบ:
คุณสามารถย้อนกลับการตั้งค่าเริ่มต้นของ Ubuntu ได้โดยตั้งค่าตัวแปรสองตัว (HISTIGNORE an HISTCONTROL) โดยใช้คำสั่งดังต่อไปนี้:
HISTIGNORE='!( *)'
HISTCONTROL=ignoredups
HISTCONTROL=ignoredups
เปลี่ยนพฤติกรรมประวัติเพื่อละเว้นบรรทัดที่ซ้ำกันเท่านั้นและไม่ละเว้นบรรทัดที่ขึ้นต้นด้วยช่องว่าง (คุณสามารถตั้งค่า HISTCONTROL เป็นสตริงว่าง (ด้วยHISTCONTROL=
) หากคุณต้องการเก็บข้อมูลที่ซ้ำกัน แต่โดยปกติจะไม่ต้องการ)
HISTIGNORE='!( *)'
ทำให้ประวัติศาสตร์เพิกเฉยต่อทุกบรรทัดที่ไม่ได้ขึ้นต้นด้วยช่องว่าง: ( *)
จะจับคู่ทุกบรรทัดที่ขึ้นต้นด้วยช่องว่าง แต่ตัวเลือกนำหน้า!
คัดค้านการแข่งขันดังนั้นจึงตรงกับทุกสิ่งที่ไม่ได้เริ่มต้นด้วยช่องว่าง และทุกสิ่งที่ตรงกับรูปแบบ HISTIGNORE จะถูกละเว้นโดยประวัติ (ตัวเลือกหลังนี้ต้องการให้ bash นั้นextglob
เปิดใช้งานด้วยshopt -s extglob
แต่มีการตั้งค่าเริ่มต้นบน Ubuntu)
~/.bashrc
หากคุณต้องการที่จะทำให้ถาวรนี้ไม่ลืมที่จะใส่ข้างต้นทั้งสองคำสั่งของคุณลงใน
HISTIGNORE='ls*:cd*'
ที่จะทำให้ประวัติไม่สนใจทุกบรรทัดที่ขึ้นต้นด้วยls
หรือcd
คุณสามารถขยายรายการนั้นด้วยคำสั่งอื่นเพียงใส่:
คำสั่งระหว่าง . แต่อย่าลืมว่าคุณลักษณะการเรียกคืนคำสั่งที่คุณสามารถเข้าถึงได้โดย "ปุ่มลูกศรขึ้น" ก็ใช้ประวัตินี้ด้วยดังนั้นหากคุณตั้งค่าบางอย่างที่จะถูกเพิกเฉยคุณจะไม่สามารถเรียกคืนคำสั่งที่เพิกเฉยได้ด้วย " ลูกศรขึ้น "
ssh-copy-id
ssh-keygen
ในHISTIGNORE
ฉันได้รวมssh\ *
คำสั่งที่ไม่สนใจ" " ของฉันด้วย การหลีกเลี่ยง space char ดูเหมือนจะเป็นข้อบังคับ
" คำสั่งที่ดำเนินการในเทอร์มินัลนำหน้าด้วยช่องว่างจะไม่ถูกบันทึกในไฟล์ประวัติคำสั่ง "
ใช่พวกเขาเป็น
.bashrc
.. ฉันต้องการที่จะป้องกันไม่ให้ทุบตีจากการบันทึกทุกcd
s,ls
s และคำสั่งในชีวิตประจำวันอื่น ๆ ที่ฉันใช้นั้น และสำหรับคำสั่งบางอย่างที่ฉันต้องการในประวัติศาสตร์ตอนนี้ฉันสามารถใช้คำนำหน้า ..