ทำไมทุบตีไม่เก็บคำสั่งที่ขึ้นต้นด้วยช่องว่าง


48

ถ้าฉันทำลำดับของคำสั่งเช่น:

$ ls
$ grep abc file.txt

จากนั้นใช้ปุ่มลูกศรขึ้นเพื่อรับค่าก่อนหน้าเทอร์มินัลจะแสดง cmd ล่าสุด (ซึ่งอยู่ที่grepนี่)

แต่ถ้าฉันทำอะไรแบบนี้:

$ ls
$   grep abc file.txt

ที่grepจะนำหน้าด้วยช่องว่างกดขึ้นจะช่วยให้ไม่ได้lsgrep

ทำไมนี้


คำตอบ:


52
echo $HISTCONTROL
ignoreboth

ทุบตีคน:

HISTCONTROL

รายการค่าที่คั่นด้วยโคลอนควบคุมวิธีบันทึกคำสั่งในรายการประวัติ หากรายการของค่ามีรวมอยู่ignorespaceบรรทัดที่ขึ้นต้นด้วยอักขระเว้นวรรคจะไม่ถูกบันทึกในรายการประวัติ ค่าของignoredupsสาเหตุทำให้บรรทัดที่ตรงกับรายการประวัติก่อนหน้านี้ไม่ถูกบันทึก ค่าignorebothคือชวเลขและignorespaceignoredups


3
และHISTCONTROLถูกตั้งค่าเป็นค่าignorebothเริ่มต้นที่~/.bashrcจัดเตรียมโดยdebianอย่างน้อย
Stéphane Chazelas

1
กรณีการใช้งานของignorespaceคืออะไร?
Ciro Santilli 事件改造中心法轮功六四事件

1
ใน Ubuntu 14.04 ค่าเริ่มต้นignorebothเป็นประเภทที่น่ารำคาญ
Nick Gammon

6
Ciro ฉันคิดว่ามันเพื่อให้คุณสามารถป้อนคำสั่งเหมือนecho "drop database mydb" | mysql -u root -pPasswordและไม่ได้บันทึกไว้ในประวัติศาสตร์
Jeremy

2
สำหรับผู้ใช้ Mac HISTCONTROL ไม่ได้ถูกตั้งค่าเป็นอะไรดังนั้นคุณจะต้องเพิ่มมันลงใน bash_profile หรือที่คล้ายกัน - unix.stackexchange.com/questions/115917/…
chrismarx
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.