มากกว่าหนึ่งครั้งฉันตั้งใจใช้คำสั่งจำนวนหนึ่งและทำให้ประวัติทุบตีของฉันสกปรก ฉันจะปิดเครื่องโดยไม่บันทึกประวัติทุบตีของฉันได้อย่างไร ฉันใช้ 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
exit
IINM (ฉันไม่ชำนาญ) ที่จะทำอย่างดี
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
ครั้งต่อไปที่ฉันเข้าสู่ระบบ? (เพียงแค่บอกว่าสิ่งนี้ถูกต้องหรือไม่ถูกต้อง)