มีวิธีในการระงับการติดตามประวัติเป็นการชั่วคราวหรือไม่เพื่อที่จะเข้าสู่โหมด "ไม่ระบุตัวตน" ฉันป้อนข้อมูลลงในเครื่องเทอร์มินัลที่ฉันไม่ต้องการบันทึกข้อมูลทางการเงินที่ละเอียดอ่อน
มีวิธีในการระงับการติดตามประวัติเป็นการชั่วคราวหรือไม่เพื่อที่จะเข้าสู่โหมด "ไม่ระบุตัวตน" ฉันป้อนข้อมูลลงในเครื่องเทอร์มินัลที่ฉันไม่ต้องการบันทึกข้อมูลทางการเงินที่ละเอียดอ่อน
คำตอบ:
นี่คือสิ่งที่คุณกำลังมองหา:
unset HISTFILE
man bash
หาก HISTFILE ไม่ได้ถูกตั้งค่าไว้หรือหากไฟล์ประวัตินั้นไม่สามารถเขียนได้ประวัติจะไม่ถูกบันทึก
อีกทางเลือกหนึ่งถ้าคุณต้องการสลับมันแล้วเปิดใหม่อีกครั้งมันอาจจะใช้ง่ายกว่าset
:
set +o history
set -o history
set +o history
และset -o history
สลับไปมาเมื่อฉันทำเรื่องลับ;)
unset HISTFILE
ไม่สำเร็จ. set -/+o history
ทำงานเหมือนจับใจ! ขอบคุณ
ใช้ทุบตีตั้งHISTCONTROL="ignorespace"
และนำหน้าด้วยช่องว่างคำสั่งใด ๆ ที่คุณไม่ต้องการที่จะถูกบันทึกไว้ในประวัติศาสตร์ ในกรณีที่คุณลืมที่จะใช้มาตรการใด ๆ นอกจากนี้ยังมีhistory -d <number>
การลบรายการเฉพาะหรือhistory -c
ล้างประวัติคำสั่งทั้งหมด
ตรวจสอบให้แน่ใจว่ามีHISTCONTROL
ignorespace
คุณอาจจะต้องการที่จะเพิ่มHISTCONTROL=ignorespace
(หรือHISTCONTROL=ignoredups:ignorespace
หรือบางอย่าง) ~/.bashrc
ที่คุณ จากนั้นบรรทัดคำสั่งใด ๆ ที่ขึ้นต้นด้วยช่องว่างจะถูกตัดออกจากประวัติ
ความเป็นไปได้อีกอย่างคือการเริ่มเซสชัน bash ใหม่ที่ไม่ได้บันทึกประวัติ
$ bash
$ unset HISTFILE
$ sooper-sekret-command
$ exit
$ #back in the parent shell
หากคุณต้องการหลีกเลี่ยงการเก็บคำสั่งต่าง ๆ และคุณยังต้องการใช้ลูกศรขึ้นเพื่อเข้าถึงคำสั่งก่อนหน้าให้ใช้:
$ bash # open a new session.
$ unset HISTFILE # avoid recording commands to file.
$ commands not recorded
.
.
$ exit
$
มีสี่วิธี (ระดับ) เพื่อควบคุมวิธีการเก็บคำสั่ง
สิ่งแรกและง่ายที่สุดคือการใช้ignorespace
(หรือไม่สนใจทั้งสอง):
$ HISTCONTROL="ignorespace${HISTCONTROL:+:$HISTCONTROL}"
history
ที่จะช่วยให้การใช้พื้นที่ก่อนที่คำสั่งที่คุณต้องการที่จะหลีกเลี่ยงการถูกบันทึกไว้ในความทรงจำของรายการ และผลที่ตามมาเป็นมีคำสั่งไม่มีการบันทึกไว้ในหน่วยความจำที่จะถูกส่งไปยังไฟล์ที่จะหลีกเลี่ยงการเป็นหนึ่งใน$HISFILE
คำสั่งจะถูกส่งไปยังแฟ้มที่ระบุไว้ใน
หลีกเลี่ยงการบันทึกคำสั่งไปยังไฟล์ใน$HISTFILE
:
$ unset HISTFILE
หากไม่ได้ตั้งค่าประวัติคำสั่งจะไม่ถูกบันทึกเมื่อเชลล์ออก
ค่าว่างHISTFILE=''
และ / หรือตั้งค่าให้ใช้HISTFILE=/dev/null
งานกับเอฟเฟกต์เดียวกัน ทำความเข้าใจว่าคำสั่งยังคงถูกบันทึกลงในรายการหน่วยความจำลองhistory
คำสั่งหรือลูกศรขึ้น
คำเตือน: หากมีการรีเซ็ต HISTFILE ก่อนที่เชลล์จะมีอยู่สิ่งที่บันทึกไว้ในหน่วยความจำทั้งหมดสามารถเขียนลงไฟล์
หลีกเลี่ยงการบันทึกคำสั่งใหม่ไปยังรายการประวัติในหน่วยความจำ และไม่ได้อยู่ในหน่วยความจำไม่สามารถบันทึกลงไฟล์ได้
$ shopt -ou history # or set +o history
เปิดใช้งานอีกครั้งด้วยshopt -os history
(หรือset -o history
)
ลบคำสั่งทั้งหมดจากไปยังรายการประวัติในหน่วยความจำ:
$ HISTSIZE=0
คำสั่งทั้งหมดจะถูกลบ (จากหน่วยความจำ) ดังนั้นจึงไม่มีสิ่งใดสามารถเก็บไว้ในไฟล์ได้แน่นอนจนกระทั่งตัวแปรถูกตั้งค่าอีกครั้งเป็นค่าตัวเลขที่ถูกต้อง
man history
ค่อนข้างแน่ใจว่าจะไม่ตัดมันสำหรับพวกเราส่วนใหญ่
LESS=+'/^ *HISTI' man bash
(นั่นไม่ใช่ "หน้าคู่มือ") @NathanBasanese
มีวิธีง่าย ๆ ในการปิดประวัติดังนั้นคำสั่งจะไม่ถูกเก็บไว้ใน.bash_history
ไฟล์
คุณต้องใส่ช่องว่างหรือพื้นที่แท็บหน้าคำสั่งใด ๆ ดังนั้นคำสั่งนั้นจะไม่ถูกเก็บไว้ในประวัติ ตัวอย่างเช่น:
$ ls
print the list of file
$ history
ls
history
$ pwd
print the current working directory
$ history
ls
history
pwd
คำสั่งจะไม่ได้รับการจัดเก็บในประวัติศาสตร์เพราะมีช่องว่างด้านหน้า
export HISTFILE=/dev/null
นั่นคือวิธีการข้ามไปของฉัน ในกรณีที่ไม่ได้ตั้งค่าประวัติ / HISTFILE / HISTCONTROL ฯลฯ ... ไม่ทำงานการส่งออกไปยัง / dev / null ใช้ได้สำหรับฉันเสมอ
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin16)
HISTFILE
จะถูกตรวจสอบเฉพาะเมื่อ bash ออกดังนั้นวิธีแรกจะไม่ทำงานตามที่เป็นอยู่ (ถ้าคุณกู้คืนค่าคำสั่งจะถูกบันทึกไว้)set +o history
ทำงานตามที่กำหนดไว้