เรียกใช้คำสั่งใน bash โดยไม่บันทึกในประวัติ


คำตอบ:


54

เพิ่มช่องว่างก่อนคำสั่ง คำสั่งที่ขึ้นต้นด้วยเว้นวรรคไม่ต้องใส่ในประวัติ:

root@ubuntu-1010-server-01:~# echo foo
foo
root@ubuntu-1010-server-01:~# history 
    1  echo foo
    2  history 
root@ubuntu-1010-server-01:~#  echo bar
bar
root@ubuntu-1010-server-01:~# history 
    1  echo foo
    2  history 

ผู้ชายทุบตี

  HISTCONTROL
         A  colon-separated  list of values controlling how commands are
         saved on the history list.  If  the  list  of  values  includes
         ignorespace,  lines  which begin with a space character are not
         saved in the history list.  A value of ignoredups causes  lines
         matching  the  previous history entry to not be saved.  A value
         of ignoreboth is shorthand for ignorespace and  ignoredups.   A
         value  of erasedups causes all previous lines matching the cur
         rent line to be removed from the history list before that  line
         is  saved.   Any  value  not  in the above list is ignored.  If
         HISTCONTROL is unset, or does not include a  valid  value,  all
         lines  read  by the shell parser are saved on the history list,
         subject to the value of HISTIGNORE.  The second and  subsequent
         lines  of a multi-line compound command are not tested, and are
         added to the history regardless of the value of HISTCONTROL.

1
ดีกว่าคำตอบของฉันจาก $ HISTIGNORE +1
Matt Simmons

1
เรียนรู้สิ่งใหม่ทุกวัน
David Rickman

1
ฉันมักจะตั้งค่านี้/etc/profileเป็นHISTCONTROL=ignorebothและส่งออกตัวแปร HISTCONTROL
ewwhite

ดูเหมือนจะไม่เหมาะกับฉันใช่ไหม ดูเหมือนว่าจะเขียนถึงประวัติ แต่เพียงรวมช่องว่างด้านหน้า 486 echo test 487 history 488 echo testspace 489 history
Peter

ไม่ต้องสนใจความคิดเห็นที่ผ่านมาดูเหมือนว่ามันจะทำงานได้ใน Ubuntu แต่ไม่ใช่ Debian / ระบบปฏิบัติการอื่น ๆ
ปีเตอร์

3

ควรกล่าวถึงเคล็ดลับในการฆ่าเซสชันการเข้าสู่ระบบปัจจุบันแทนการออกปกติ (ดังนั้นจึงไม่ให้โอกาสในการบันทึกประวัติ) สิ่งนี้มีประโยชน์อย่างยิ่งเมื่อคุณลงชื่อเข้าใช้ a / c ที่ใช้ร่วมกันแทนที่จะจำไว้ว่าให้ใส่คำนำหน้าด้วยช่องว่างคุณสามารถจบเซสชันได้ด้วยการฆ่า วิธีที่ง่ายที่สุดในการฆ่าคือการรันคำสั่งนี้:

kill -9 0

Pid 0 หมายถึง PID ของกระบวนการปัจจุบันเสมอดังนั้นโดยทั่วไปคุณจะส่งสัญญาณการฆ่าที่ร้ายแรงถึงตัวมันเอง ฉันมักจะใช้สิ่งนี้แทนการออกตามปกติเนื่องจากฉันมักจะหยุดเซสชันเมื่อออกปกติอาจเกิดจากการกำหนดค่าผิดพลาดบางอย่าง


1

วิธีแก้ไขอื่นคือการตั้งค่าไฟล์ประวัติเป็นไดเรกทอรี:

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