我可以在终端上查看Firefox历史记录吗?


29

是否有命令从终端显示Firefox历史记录?

无需以图形方式输入Firefox历史记录。


您能补充理由吗?

为什么您不想使用Firefox本身?

1
@ user25656:如果想提高速度,请使用命令行。您可以进行统计。您可以使用正则表达式进行搜索(例如,使用进行搜索grep),还可以创建图形等。在Firefox中,一切都是不可能的。至少不是没有破解插件。
erik

Answers:


28

此页面描述了Firefox存储哪些用户特定信息以及存储在何处。这就是Mozilla的帮助有关查看.sqlite文件的内容。)

它列出了三种历史记录:

  • 书签和浏览历史记录:place.sqlite文件包含您所有的Firefox书签以及您访问过的所有网站的列表...

  • 自动完成历史记录:formhistory.sqlite文件会记住您在Firefox搜索栏中搜索的内容以及您在网站上的表单中输入的信息...

  • 下载历史记录:downloads.sqlite文件会记住您下载的内容。...

如您所见,这三个历史记录都不是简单的文本文件,而是sqlite格式的数据库文件。

查看.sqlite文件的一种方法是使用sqlite3sudo apt-get install sqlite3)。

打开一个终端,然后cd进入包含您要查看的内容的文件夹。就我而言,就是~/.mozilla/firefox/w4wcp85s.default

ls *.sqlite 列出sqlite文件。

运行sqlite3 places.sqlite(如果您要查看places.sqlite)。您会看到以下内容:

$ cd ~/.mozilla/firefox/w4wcp85s.default 
$ sqlite3 places.sqlite
SQLite version 3.7.17 2013-05-20 00:56:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> 

现在,您可以执行几项操作。(使用Ctrl+ D退出sqlite3)。

例如,键入.tables并按Enter给我:

sqlite> .tables
moz_anno_attributes  moz_favicons         moz_items_annos    
moz_annos            moz_historyvisits    moz_keywords       
moz_bookmarks        moz_hosts            moz_places         
moz_bookmarks_roots  moz_inputhistory   
sqlite> 

要查看内容,请键入SELECT * FROM table_name;(其中table_name是您要查看的表的名称;请注意;),然后按Enter。输出很有可能无法理解,但这不是sqlite3的错。

为了向您展示确实提供不错输出的示例,请看一下stylish.sqlite(如果您使用Fashionally扩展名):

$ ~/.mozilla/firefox/w4wcp85s.default $ sqlite3 stylish.sqlite
SQLite version 3.7.17 2013-05-20 00:56:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .tables
style_meta  styles    
sqlite> SELECT * FROM styles;
6||||YouTube|/* AGENT_SHEET */ 
/* ▓▓ NIGHTSHIFT - eye care:                                 ▓▓
   ▓▓_http://userstyles.org/styles/18192/nightshift-eye-care_▓▓ */

@namespace url(http://www.w3.org/1999/xhtml);
@-moz-document regexp("https?://www.youtube.com/.*")  {
body,html {min-height: 100%!important; }
html, body{background-color:#111!important}

如果您确切知道要执行的操作,则只需执行一个非交互式命令即可完成所有操作。阅读sqlite3命令行工具以获取有关sqlite3的更多信息。

$ sqlite3 stylish.sqlite "SELECT * FROM styles;" > ~/Desktop/filename.txt 

将在给定的示例中完成所需的操作,并使tee您也可以在屏幕上看到输出:

$ sqlite3 stylish.sqlite "SELECT * FROM styles;" | tee ~/Desktop/filename.txt 

(感谢您在这里。)


如果要搜索特定术语的所有数据库和该数据库中的所有表(例如stackoverflow.com),则可以这样做(单行):for DATABASE in *sqlite; do echo -e "********\n$DATABASE\n********";for TABLE in $(sqlite3 $DATABASE ".tables"); do echo -e "========\n$TABLE\n========"; sqlite3 $DATABASE "select * from $TABLE;"; done; done | grep 'stackoverflow\.com'或者代替grep使用less并在结果内部搜索。
erik

诸如此类的事情将在我的书末尾~/.bash_history浮出水面,因此我使用Click库编写了Python(3.5+)脚本,以使基本列表,排序和过滤变得更加容易。您可以从此要点中获取它。如果您遇到问题,请在此处留下评论。
TheDudeAbides

6

这是我最后得到的结果(由于先前的答案):

db=$(find "${HOME}/.mozilla/firefox/" -name "places.sqlite")
query="select p.url from moz_historyvisits as h, moz_places as p where substr(h.visit_date, 0, 11) >= strftime('%s', date('now')) and p.id == h.place_id order by h.visit_date;"
todays_urls=$(sqlite3 "${db}" "${query}")
echo "${todays_urls}" > todays_urls

1
实际上,最有用的复制粘贴非详细解决方案。谢谢。
vmassuchetto

如果您有多个Firefox配置文件,则需要添加| head -1find命令中。
mivk

3

在我的Xubuntu 13.10

/home/myusername/.mozilla/firefox/nod2ejl8.default/places.sqlite

或者你可以

find / -name 'places.sqlite

由于它是* .sqlite文件,因此您可以安装此vim插件并使用vim,以寻找一种从终端打开sqlite文件的方法。可以在此处找到更多信息。


1
~/.mozilla/firefox/*.default/places.sqlite应该工作
mchid
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.