roo*_*-11 27 ipython ipython-notebook
我一直在学习如何使用该paramiko包只发现我在IPython中以纯文本形式存储的所有密码%hist.不太好.
因此,我需要摆脱存储内容的特定部分%hist.说,我不想抹去整个历史.- 只有我不小心打字的部分password =或类似的选择条款.
谢谢
评论我不需要:
%clear只清除会话.它没有抹去历史.Mat*_*att 35
历史记录$(ipython locate)/profile_default/history.sqlite默认存储.您可以删除文件,或者对其执行任何操作(安全擦除等).它是一个sqlite文件,因此您可以使用任何sqlite程序加载它并对其进行查询.
签入$(ipython locate)/profile_default/和其他$(ipython locate)/profile_xxx您没有任何其他历史文件.$(ipython locate)通常~/.ipython/但可以有所不同:
ls $(ipython locate)/profile_*/*.sqlite
Run Code Online (Sandbox Code Playgroud)
小智 19
一个解决方案是:
sqlite ~/.ipython/profile_default/history.sqlite
delete from history where source like '%password =%';
Run Code Online (Sandbox Code Playgroud)
如果您想删除特定会话的历史记录,请运行:
sqlite ~/.ipython/profile_default/history.sqlite
Run Code Online (Sandbox Code Playgroud)
请注意,在某些系统上,您需要运行sqlite3而不是sqlite.
SQLite 内部:
select * from history;
# session is the first column in history
delete from history where session=XXX;
Run Code Online (Sandbox Code Playgroud)
另外,这里有一个 SQLite 查询,它将为您提供上次会话的 ID:
select session from history order by -session limit 1;
Run Code Online (Sandbox Code Playgroud)
结合@Ovidiu Ghinet的答案与@马特S'接受的答案:
sqlite $(ipython locate)/profile_*/*.sqlite || sqlite3 $(ipython locate)/profile_*/*.sqlite
Run Code Online (Sandbox Code Playgroud)
然后从 sqlite 控制台中:
delete from history where source like '%password%';
select * from history; /* confirm that no passwords left */
.quit /* forgot how to exit sqlite console? ;) */
Run Code Online (Sandbox Code Playgroud)