ฉันจะล้างประวัติเทอร์มินัลได้อย่างไร


93

ฉันใช้ Linux Mint 17.1 Rebecca เป็นเวลาประมาณ 2 วันและพิมพ์รหัสผ่านของฉันลงในเทอร์มินัลโดยไม่ได้ตั้งใจซึ่งจะปรากฏในรายการประวัติคำสั่งที่ฉันได้พิมพ์ไว้ก่อนหน้านี้

ฉันต้องการล้างประวัติเทอร์มินัลอย่างสมบูรณ์ ฉันได้ลองใช้คำสั่งต่อไปนี้ใน terminal ซึ่งฉันคิดว่าจะล้างประวัติตลอดไป แต่พวกเขาไม่ได้:

history -c
reset
tput reset

คำสั่งข้างต้น "จะ" ล้างประวัติจากเทอร์มินัล แต่เมื่อฉันออกและนำขึ้นใหม่ทั้งหมดประวัติก่อนหน้าของฉันยังคงอยู่ที่นั่นและสามารถแสดงรายการอีกครั้งโดยใช้ - คำสั่งประวัติศาสตร์และด้วยการกดลูกศรขึ้นบนแป้นพิมพ์ . ฉันไม่ต้องการให้สิ่งนี้เกิดขึ้นจนกว่าฉันจะล้างประวัติทั้งหมดของฉันแล้วฉันต้องการใช้มันต่อไป

ฉันจะล้างประวัติเทอร์มินัลทั้งหมด - ตลอดไปและเริ่มต้นใหม่ได้อย่างไร

โปรดทราบ: ฉันไม่ต้องการที่จะออกจากสถานีโดยไม่ต้องบันทึกประวัติศาสตร์เพียงแค่ล้างมันตลอดไปในกรณีนี้


1
sed -i "s/$your_pass//g" ~/.bash_history...
jasonwryan

3
@ jasonwryan เพียงอย่างเดียวไม่สามารถแก้ปัญหาได้เนื่องจากคำสั่ง sed จะจบลงในประวัติเชลล์
Gilles

1
ฉันพยายามใช้รหัสจาก @jasonwryan แต่ฉันได้รับ: sed: -e expression # 1, ถ่าน 0: ไม่มีนิพจน์ทั่วไปก่อนหน้านี้ซึ่งฉันคิดว่าฉันรู้ว่าทำไมและนั่นทำให้ฉันเกิดสิ่งนี้ขึ้นมาจากการค้นหา cat / dev / null> ~ / .bash_history && history -c && exit
Shambhala

1
@Gilles: คุณมีสิทธิที่นั่นควรจะเป็นพื้นที่ในด้านหน้าของคำสั่ง ...
jasonwryan

คำตอบ:


145

resetหรือtput resetทำสิ่งต่าง ๆ กับเทอร์มินัลเท่านั้น ประวัติถูกจัดการโดยเชลล์ทั้งหมดซึ่งยังคงไม่ได้รับผลกระทบ

history -cล้างประวัติของคุณในเชลล์ปัจจุบัน เพียงพอแล้ว (แต่เกินความจำเป็น) หากคุณเพิ่งพิมพ์รหัสผ่านและไม่ได้ออกจากเชลล์นั้นหรือบันทึกประวัติไว้อย่างชัดเจน

เมื่อคุณออกจาก bash ประวัติจะถูกบันทึกลงในไฟล์ประวัติซึ่งโดยค่าเริ่มต้นจะอยู่.bash_historyในไดเรกทอรีหลักของคุณ แม่นยำยิ่งขึ้นประวัติที่สร้างขึ้นในช่วงเซสชั่นปัจจุบันจะถูกผนวกเข้ากับไฟล์ รายการที่มีอยู่แล้วจะไม่ได้รับผลกระทบ history -wเขียนทับแฟ้มประวัติที่มีประวัติเปลือกปัจจุบันของรัน

แทนที่จะลบรายการประวัติทั้งหมดของคุณคุณสามารถเปิด.bash_historyในโปรแกรมแก้ไขและลบบรรทัดที่คุณไม่ต้องการเก็บไว้ นอกจากนี้คุณยังสามารถทำสิ่งนั้นใน bash ได้สะดวกกว่าโดยใช้historyเพื่อแสดงรายการทั้งหมดจากนั้นhistory -dลบรายการที่คุณไม่ต้องการและสุดท้ายhistory -wจะบันทึก

โปรดทราบว่าแม้หลังจากที่คุณแก้ไขไฟล์ประวัติแล้วก็ยังมีความเป็นไปได้ที่รหัสผ่านของคุณจะยังคงปรากฏที่ใดที่หนึ่งบนดิสก์จากไฟล์เวอร์ชันก่อนหน้า ไม่สามารถเรียกดูผ่านระบบไฟล์ได้อีกต่อไป แต่อาจเป็นไปได้ (แต่อาจไม่ใช่เรื่องง่าย) ในการค้นหาโดยเข้าถึงดิสก์โดยตรง หากคุณใช้รหัสผ่านนี้ที่อื่นและดิสก์ของคุณถูกขโมย (หรือบางคนสามารถเข้าถึงดิสก์ได้) นี่อาจเป็นปัญหา


1
ฉันชอบคำตอบของคุณและจะยอมรับตามที่คุณบอกฉันบางสิ่งที่ฉันไม่ทราบว่ามีประโยชน์มาก ฉันจะเปลี่ยนรหัสผ่านด้วย!
Shambhala

พิมพ์ครั้งแรกhistoryเพื่อตรวจสอบเนื้อหาของบันทึกประวัติและหมายเลขบรรทัดที่คุณต้องการลบหากคุณต้องการลบหมายเลขบรรทัด 1,000 ในบันทึกประวัติแล้วhistory -d 1000
Claude COULOMBE

หากฉันแก้ไขไฟล์. bash_history โดยตรงคำสั่ง history ยังคงแสดงคำสั่งเหมือนเดิมก่อนทำการแก้ไขจนกว่าฉันจะออกจากระบบ / เข้าสู่ระบบ
Benitok

35

ฉันได้ลองใช้ประวัติ -c แล้ว แต่ประวัติศาสตร์กลับมาอีกครั้งเมื่อเราออกและเปิดใหม่อีกครั้งสิ่งนี้ช่วยฉันได้

cat /dev/null > ~/.bash_history && history -c && exit

ซึ่งจะเป็นการล้างประวัติที่บันทึกไว้ในไฟล์ประวัติรวมถึงประวัติในเซสชันปัจจุบัน (เพื่อไม่ให้บันทึกเป็นไฟล์เมื่อbashออก) จากนั้นออกจากเปลือก เชลล์เซสชันถัดไปจะไม่มีประวัติ


18

แทนที่จะลบรายการประวัติทั้งหมดของคุณให้พิมพ์คำสั่งเหล่านี้ในเทอร์มินัลของคุณ:

  1. history -c (สำหรับการลบประวัติ)
  2. history -w (บันทึกประวัติ)

นี่จะไม่เพียงพอกับ zsh หากมีการตั้งค่าinc_append_historyหรือshare_historyตัวเลือก
saga

5

เนื่องจากมีปัญหาด้านความปลอดภัยที่นี่คุณควรพิจารณาลบไฟล์ประวัติอย่างปลอดภัย

$ shred -u ~/.bash_history && touch ~/.bash_history

3

ในฐานะที่เป็น neophyte ต้องเผชิญกับปัญหาเดียวกันฉันหันไปทางที่ค่อนข้างโหดร้ายของการลบและสร้างไฟล์ประวัติใหม่: -

rm .bash_history
touch .bash_history

มันใช้งานได้สำหรับฉันโดยไม่ก่อให้เกิดผลข้างเคียงอันไม่พึงประสงค์ใด ๆ ที่ฉันรู้


3

ประเภท: history -c; rm ~/.bash_history

history -cล้างประวัติเซสชันปัจจุบันของrm ~/.bash_historyคุณล้างประวัติระยะยาวของคุณดังนั้นจึงhistory -c; rm ~/.bash_historyล้างทั้งสองอย่าง


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