มากกว่าหนึ่งครั้งฉันตั้งใจใช้คำสั่งจำนวนหนึ่งและทำให้ประวัติทุบตีของฉันสกปรก ฉันจะปิดเครื่องโดยไม่บันทึกประวัติทุบตีของฉันได้อย่างไร ฉันใช้ Fedora
มากกว่าหนึ่งครั้งฉันตั้งใจใช้คำสั่งจำนวนหนึ่งและทำให้ประวัติทุบตีของฉันสกปรก ฉันจะปิดเครื่องโดยไม่บันทึกประวัติทุบตีของฉันได้อย่างไร ฉันใช้ Fedora
คำตอบ:
ประวัติเชลล์ของคุณถูกบันทึกในไฟล์ที่ระบุโดยHISTFILEตัวแปร ดังนั้น:
unset HISTFILE
สิ่งนี้ยังใช้กับ zsh แต่ไม่ใช่กับ ksh ที่จะบันทึกไฟล์ที่ระบุโดย$HISTFILEเมื่อเชลล์เริ่มทำงาน (และตรงกันข้ามคุณตัดสินใจบันทึกประวัติเป็น ksh เมื่อคุณเริ่มเชลล์)
คำตอบสั้น ๆ :
พิมพ์สิ่งนี้ที่พรอมต์:
$ kill -9 $$
สิ่งนี้จะฆ่าเชลล์ของคุณทันทีโดยที่เชลล์ไม่สามารถทำอะไรเช่นดักสัญญาณบันทึกประวัติเรียกใช้~/.bash_logoutงานเตือนเกี่ยวกับงานที่หยุดหรือสิ่งดีๆอื่น ๆ
คำตอบยาว:
หมายเหตุ: ตัวเลือกเหล่านี้ไม่ได้เกิดขึ้นพร้อมกัน พวกเขาสามารถใช้ทั้งหมดในครั้งเดียว
ตัวเลือกที่ 1:
หากคุณเป็นคนชอบความสมบูรณ์แบบเมื่อพูดถึงการทำให้แฟ้มประวัติของคุณยุ่งเหยิงสิ่งที่คุณสามารถทำได้คือปรับเปลี่ยนHISTIGNOREตัวแปรเพื่อรวมคำสั่งที่คุณไม่ต้องการบันทึกไว้ ตัวอย่างเช่นหากคุณเพิ่มลงHISTIGNORE='ls*:cd*'ใน~/.bashrcอินสแตนซ์ของคุณlsและcdจะไม่ถูกแทรกลงในไฟล์ประวัติของคุณ
ตัวเลือก 2:
หากคุณต้องการควบคุมแบบ command-by-command สิ่งที่คำสั่งออกจากประวัติของคุณคุณสามารถตั้งค่าHISTCONTROL='ignorespace'ซึ่งจะละเว้นบรรทัดคำสั่งใด ๆ ที่ขึ้นต้นด้วยช่องว่าง การใช้ignorebothจะละเว้นบรรทัดที่ซ้ำกัน จากนั้นการกดปุ่ม space bar ก่อนที่คุณจะป้อนคำสั่งจะทำให้คำสั่งนั้นไม่ปรากฏในไฟล์ประวัติของคุณ
ตัวเลือก 3:
หากคุณต้องการให้มันเป็นอย่างนั้นเมื่อคุณปิดเทอร์มินัลเชลล์ออกทันทีคุณสามารถtrapส่งสัญญาณว่าโปรแกรมเทอร์มินัลส่งเชลล์ ( xtermเช่นส่งSIGHUPแล้วรอให้เชลล์ออกจาก) และออกโดยไม่บันทึกประวัติเมื่อมัน รับสัญญาณนี้ เพิ่มลงในของคุณ~/.bashrc:
# don't record history when the window is closed
trap 'unset HISTFILE; exit' SIGHUP
kill -9เพื่อสิ่งใดยกเว้นสถานการณ์ที่เลวร้ายเมื่อทุกอย่างล้มเหลว
ผมแปลกใจที่เห็นไม่มีใครได้แนะนำทันทีก่อนที่จะhistory -c exitIINM (ฉันไม่ชำนาญ) ที่จะทำอย่างดี
history -rจะอ่านไฟล์ประวัติอีกครั้งดังนั้นการบันทึกจึงกลายเป็นแบบไม่ใช้งาน
มีตัวแปรสภาพแวดล้อมสองตัวที่ bash ใช้เพื่อกำหนดไฟล์ประวัติและจำนวนบรรทัดที่ต้องเขียนลงไปเมื่อเชลล์ออก
คุณสามารถทิ้งประวัติเซสชันของคุณด้วยสิ่งเหล่านี้ (ตั้งค่าในระหว่างเซสชันที่คุณต้องการละเว้นจากไฟล์ประวัติของคุณ):
HISTFILE=/dev/null
หรือ
HISTSIZE=0
การทำงานอย่างใดอย่างหนึ่งใน Bash บน Fedora
ไม่แน่ใจว่าทำไมคุณสนใจประวัติคำสั่งของคุณมาก หากคุณต้องการคำสั่งบางอย่างบ่อยครั้งคุณอาจสนุกสนานมากขึ้นถ้าคุณกำหนดนามแฝงสำหรับคำสั่งเหล่านั้นเพื่อให้คุณได้รับการกดสองครั้งแทนที่จะต้องค้นหาคำสั่งเหล่านั้นในประวัติศาสตร์
screen(1)?
scrollback=0เช่นกัน
Ctrl+a HและCtrl+a :clearจะลบประวัติ Ctrl+a :scrollback 0คุณจำเป็นต้อง คุณสามารถทดสอบด้วยตัวเอง เริ่มเซสชันใหม่ cat /etc/passwdตอนนี้ทำ ตอนนี้ดำเนินการใด ๆ ดังกล่าวข้างต้น - หรือCtrl+a H Ctrl+a :clearทีนี้ลองคัดลอกจาก buffer หน้าจอโดยกดCtrl+a [ลูกศรขึ้นตามเพื่อดูว่าคุณไปคัดลอกได้ไกลแค่ไหน หากคุณทำCtrl+a :scrollbackตามด้วย a clearแล้วคุณจะไปเท่าที่คุณสามารถเห็นในหน้าต่างปัจจุบันเนื่องจากไม่มีบัฟเฟอร์การเลื่อนกลับ
set HISTFILEครั้งต่อไปที่ฉันเข้าสู่ระบบ? (เพียงแค่บอกว่าสิ่งนี้ถูกต้องหรือไม่ถูกต้อง)