私はparamiko
パッケージを使用して、IPythonの%hist
にすべてのパスワードをプレーンテキストで保存したことを発見するためだけに、その方法を学んでいます。あまりよくない。
したがって、%hist
に格納されている特定の部分を取り除く必要があります。それを言って、私は全履歴を消去したくありません。 -password =
または類似の選択した用語を入力するのに十分不注意であった部分のみ。
ありがとう
不要なコメント:
%clear
はセッションのみをクリアします。履歴は消去されません。履歴はデフォルトで$(ipython locate)/profile_default/history.sqlite
に保存されます。ファイルを削除したり、ファイルに対して必要な操作(安全な消去など)を実行したりできます。これはsqliteファイルであるため、任意のsqliteプログラムでロードしてクエリを実行できます。
$(ipython locate)/profile_default/
およびその他の$(ipython locate)/profile_xxx
をチェックインして、他の履歴ファイルがないことを確認します。 $(ipython locate)
は通常~/.ipython/
が異なる場合があります:
ls $(ipython locate)/profile_*/*.sqlite
1つの解決策は次のとおりです。
sqlite ~/.ipython/profile_default/history.sqlite
delete from history where source like '%password =%';
@ Ovidiu Ghinet の answer と @ Matt の組み合わせ 受け入れられた回答 :
sqlite $(ipython locate)/profile_*/*.sqlite || sqlite3 $(ipython locate)/profile_*/*.sqlite
次に、sqliteコンソール内から:
delete from history where source like '%password%';
select * from history; /* confirm that no passwords left */
.quit /* forgot how to exit sqlite console? ;) */
特定のセッションから履歴を削除するには、次のコマンドを実行します。
sqlite ~/.ipython/profile_default/history.sqlite
SQLiteの内部:
select * from history;
# session is the first column in history
delete from history where session=XXX;
最初から完全にしたい場合は、次のファイルを手動で削除してください(私にとってはうまくいきました)
/home/user/.ipython/profile_default/history.sqlite