问题描述
是否有命令从终端显示Firefox历史记录?
无需以图形方式输入Firefox历史记录。
最佳方法
This page描述了Firefox存储的user-specific信息及其存储位置。 (并且在查看.sqlite文件时为this is what Mozilla’s help has to say。)
它列出了三种类型的历史记录:
-
书签和浏览历史记录:places.sqlite文件包含您的所有Firefox书签以及您访问过的所有网站的列表…
-
自动完成记录:formhistory.sqlite文件会记住您在Firefox搜索栏中搜索的内容以及您在网站上的表单中输入的信息…
-
下载历史记录:downloads.sqlite文件会记住您下载的内容。 …
如您所见,这三个历史记录都不是简单的文本文件,而是sqlite
格式的数据库文件。
查看.sqlite
文件的一种方法是使用sqlite3
(sudo 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
(如果使用Stylish extension):
$ ~/.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的更多信息,请阅读The sqlite3 command line tool。
$ sqlite3 stylish.sqlite "SELECT * FROM styles;" > ~/Desktop/filename.txt
将在给定的示例中完成所需的操作,并且tee
将使您也可以在屏幕上看到输出:
$ sqlite3 stylish.sqlite "SELECT * FROM styles;" | tee ~/Desktop/filename.txt
(感谢here。)
次佳方法
这是我最后得到的结果(由于先前的答案):
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
第三种方法
在我的Xubuntu 13.10上
/home/myusername/.mozilla/firefox/nod2ejl8.default/places.sqlite
或者你可以
find / -name 'places.sqlite
由于它是* .sqlite文件,因此您可以安装此vim plugin并使用vim,以寻找一种从终端打开sqlite文件的方法。可以找到更多信息here。