IPython:如何擦拭IPython';有选择地回顾历史&;安全地?
我一直在学习如何使用IPython:如何擦拭IPython';有选择地回顾历史&;安全地?,ipython,ipython-notebook,Ipython,Ipython Notebook,我一直在学习如何使用paramiko软件包,却发现我所有的密码都以明文形式存储在IPython的%hist中。不太好 因此,我需要去掉存储在%hist中的特定部分。这么说,我不想抹去整个历史只有那些我不小心输入了password=或类似术语的部分 谢谢 我不需要的评论: %clear仅清除会话。它不会抹去历史 对。从现在起,我将只使用xSA_键 历史记录默认存储在$(ipython locate)/profile\u default/History.sqlite上。 您可以删除该文件,或对其
paramiko
软件包,却发现我所有的密码都以明文形式存储在IPython的%hist
中。不太好
因此,我需要去掉存储在%hist
中的特定部分。这么说,我不想抹去整个历史只有那些我不小心输入了password=
或类似术语的部分
谢谢
我不需要的评论:
仅清除会话。它不会抹去历史%clear
- 对。从现在起,我将只使用xSA_键
- 历史记录默认存储在
$(ipython locate)/profile\u default/History.sqlite
上。
您可以删除该文件,或对其执行任何操作(安全擦除等)。
它是一个sqlite文件,所以您可以用任何sqlite程序加载它并对其进行查询
检查$(ipython locate)/profile\u default/
和其他$(ipython locate)/profile\u xxx
,确保您没有任何其他历史文件$(ipython locate)
通常是~/.ipython/
,但可以变化:
ls $(ipython locate)/profile_*/*.sqlite
一种解决办法是:
sqlite ~/.ipython/profile_default/history.sqlite
delete from history where source like '%password =%';
将“s”与“s”相结合:
然后从sqlite控制台中:
delete from history where source like '%password%';
select * from history; /* confirm that no passwords left */
.quit /* forgot how to exit sqlite console? ;) */
如果您想从一开始就完全删除,只需手动删除以下文件(它对我有效)
/home/user/.ipython/profile\u default/history.sqlite我找不到有选择地擦除ipython历史记录的方法,但我找到了如何通过内置func、非sqlite方式擦除数据: %clear out#它清除输出历史记录
顺便说一句,您还可以通过%clear in在历史记录中清除如果要从特定会话中删除历史记录,请运行:
sqlite ~/.ipython/profile_default/history.sqlite
请注意,在某些系统上,您需要运行sqlite3
,而不是sqlite
SQLite内部:
select * from history;
# session is the first column in history
delete from history where session=XXX;
此外,这里还有一个SQLite查询,它将为您提供上一次会话的id:
select session from history order by -session limit 1;
嗯,
$(ipython locate)
给了我[TerminalIPythonApp]未找到的文件:u'locate'
,但我可以在~/.ipython/profile\u default/history.sqlite找到它。
注意,如果你只想删除所有内容,你可以用ipython history clear
擦除整个历史。这不是选择性删除,您失去了历史记录中所有的好东西。如果这样做,您可能需要在~/.sqlite\u history
中删除sqlite3历史记录。
select session from history order by -session limit 1;