ไม่รวมคำสั่งบางส่วนจากการถูกเก็บไว้ในประวัติทุบตี


31

มีวิธีที่จะไม่รวมคำสั่งเช่นใด ๆrm -rf, svn revertจากการได้รับการจัดเก็บไว้ในประวัติศาสตร์ทุบตี? ที่จริงแล้วฉันผิดพลาดออกหลายครั้งถึงแม้ว่าฉันจะไม่ได้ตั้งใจก็ตามเพราะฉันทำสิ่งต่าง ๆ ได้อย่างรวดเร็วและเกิดขึ้น ดังนั้นผลลัพธ์ในการสูญเสียงานมากมายที่ฉันได้ทำจนถึง


3
คุณอาจสนใจserverfault.com/questions/48769/…
Luc M

คำตอบ:


53

คุณอาจต้องการ$HISTIGNORE: "รายการรูปแบบที่คั่นด้วยโคลอนใช้เพื่อตัดสินใจว่าควรบันทึกบรรทัดคำสั่งใดในรายการประวัติ" บรรทัดนี้ใน ~ / .bashrc ของคุณควรทำงาน:

HISTIGNORE='rm *:svn revert*'

นอกจากนี้คุณสามารถเพิ่มช่องว่างที่จุดเริ่มต้นของคำสั่งเพื่อแยกออกจากประวัติ ใช้ได้ตราบใดที่$HISTCONTROLมีignorespaceหรือignorebothซึ่งเป็นค่าเริ่มต้นสำหรับ distro ใด ๆ ที่ฉันใช้


4
space คือวิธีที่ฉันทำมันมาตลอด
Rob

ฉันเคยใส่เพิ่มเติมโดยไม่ได้ตั้งใจyหลังจากทั้งหมดcp(นามแฝงถึงcp -i) ได้รับมากกว่า ดังนั้นฉันจึงใช้นามแฝงyว่าalias y='$(history | awk '"'"'END{if(NF==2 && $2=="y"){print "history -d " $1}}'"'"')'... แต่HISTIGNOREเป็นวิธีที่ดีกว่าอย่างที่เห็น :) ขอบคุณ
anishsane

2
เพียงเพื่อจะชัดเจนมากขึ้น: คุณสามารถเพิ่มexport HISTCONTROL="ignorespace"ที่คุณ~/.bashrcคำสั่งที่จะไม่สนใจที่เริ่มต้นด้วยช่องว่าง
Aidan Feldman

@AidanFeldman ไม่ใช่ค่าเริ่มต้นสำหรับ macOS
akauppi

หมายเหตุ: พื้นที่ควรจะรวมเมื่อเราพิมพ์ใน commandline และไม่ได้อยู่ใน HISTIGNORE
Gayan Weerakutti

6

แม้ว่าจะแตกต่างจากคำถามของ OP เล็กน้อย แต่เมื่อฉันตั้งใจไม่ต้องการให้คำสั่งเก็บไว้ในประวัติทุบตีฉันก็ใส่คำนำหน้าด้วยช่องว่าง ใช้งานได้ใน Ubuntu และรุ่นต่างๆไม่แน่ใจว่าทำงานได้กับทุกระบบหรือไม่


6
ขึ้นอยู่กับ$HISTCONTROL(ดูคำตอบของฉัน)
l0b0

@ l0b0 ถูกต้องขอบคุณที่ชี้ให้เห็น
k4rtik

1

ฉันมักจะฆ่าทุบตีอินสแตนซ์ของฉันเมื่อฉันได้ทำสิ่งที่ฉันไม่ต้องการในประวัติศาสตร์

kill -9 $$

$$ แสดงถึงกระบวนการปัจจุบัน - ทุบตีเมื่อคุณเรียกใช้จากเปลือก คุณสามารถใช้ $ BASHPID แต่นั่นคือการพิมพ์ :-)


2
การตั้งค่า Bash บางอย่าง (เช่นนี้ ) จะบันทึกประวัติหลังจากแต่ละคำสั่งและในกรณีนี้จะไม่สามารถใช้งานได้
l0b0

1
ฉันเคยทำเช่นนี้ แต่การตั้งค่าHISTFILE=/dev/nullเป็นตัวเลือกที่ดีกว่า
anishsane

เพียงแค่HISTFILE=ทำงานในทั้งทุบตีและ ksh
kubanczyk

หรือunset HISTFILE
Todd Walton
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.