ターミナルでFirefoxの履歴を表示できますか?


29

ターミナルからFirefoxの履歴を表示するコマンドはありますか?

Firefoxの履歴をグラフィカルに入力する必要はありません。


そうしたい理由を追加していただけますか?

Firefox自体を使用したくないのはなぜですか?

1
@ user25656:高速にしたい場合は、コマンドラインを使用します。それから統計を行うことができます。正規表現(例:を使用grep)で検索したり、グラフなどを作成したりできます。Firefox内では不可能なことはすべて実行できます。少なくともアドオンをハッキングせずに。
エリック

回答:


28

このページでは、Firefoxによって保存されるユーザー固有の情報とその場所について説明します。(そして、これは .sqliteファイルの表示に関してMozillaのヘルプが言わなければならないことです。)

次の3種類の履歴がリストされます。

  • ブックマークと閲覧履歴:places.sqliteファイルには、FirefoxのすべてのブックマークとアクセスしたすべてのWebサイトのリストが含まれています...

  • オートコンプリート履歴:formhistory.sqliteファイルは、Firefoxの検索バーで検索した内容と、Webサイトのフォームに入力した情報を記憶しています...

  • ダウンロード履歴:downloads.sqliteファイルは、ダウンロードしたものを記憶しています。...

ご覧のとおり、3つの履歴はすべて単純なテキストファイルではなく、sqlite形式のデータベースファイルです。

.sqliteファイルを表示する1つの方法は、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(あなたが使用している場合スタイリッシュな拡張子):

$ ~/.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}

目的を正確に把握していれば、1つの非対話型コマンドですべてを実行できます。sqlite3の詳細については、sqlite3コマンドラインツールを参照してください。

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

与えられた例で必要なことを行い、tee同様に出力を画面上で見ることができます:

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

ここに感謝します。)


特定の用語(例:stackoverflow.com)ですべてのデータベースとそのデータベース内のすべてのテーブルを検索する場合は、次の操作を実行できます(1行で):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して検索する代わりに。
エリック

このようなものはmyの最後をロールオフするだけな~/.bash_historyので、Clickライブラリを使用してPython(3.5+)スクリプトを記述し、基本的なリスト、ソート、フィルタリングをはるかに簡単にしました。このGistから入手できます。問題が発生した場合は、コメントを残してください。
-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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.