履歴に保存せずに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
マットシモンズ

1
毎日新しいことを学びます。
デビッドリックマン

1
通常、これを/etc/profileasに設定しHISTCONTROL=ignoreboth、HISTCONTROL変数をエクスポートします。
ewwhite

これは私にはうまくいかないようですか?歴史を書いているように見えますが、前のスペースを含めるだけです。486エコーテスト487履歴488エコーテストスペース489履歴
ピーター

最後のコメントを無視してください。Ubuntuでは動作しますが、Debian /他のOSでは動作しません。
ピーター

3

また、通常の終了の代わりに現在のログインセッションを強制終了するトリックに言及する価値があります(したがって、履歴を保存する機会を与えません)。これは、共有a / cにログインするときに特に便利です。スペースをプレフィックスとして付けるのを覚える代わりに、セッションを強制終了することでセッションを終了できます。殺す最も簡単な方法は、次のコマンドを実行することです。

kill -9 0

Pid 0は常に現在のプロセスのPIDを参照するため、基本的にそれ自体に致命的なkillシグナルを送信しています。また、通常の終了時にセッションをハングさせることがありますが、これはおそらく構成の誤りが原因である可能性があります。


1

別の解決策は、履歴ファイルをディレクトリに設定することです:

export HISTFILE=/
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.