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

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

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

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

答え1

このページFirefox によってどのようなユーザー固有の情報がどこに保存されるかを説明します。(そしてMozillaのヘルプにはこう書いてある.sqlite ファイルの表示について。

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

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

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

  • ダウンロード履歴:ダウンロード.sqliteファイルはダウンロードした内容を記憶します。 ...

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

ファイルを表示する方法の 1 つは、( ).sqliteを使用することです。 sqlite3sudo apt-get install sqlite3

ターミナルを開き、cd表示したいものが含まれているフォルダーに移動します。私の場合は、 です~/.mozilla/firefox/w4wcp85s.default

ls *.sqlitesqlite ファイルを一覧表示します。

実行します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> 

ここで、いくつかの操作を実行できます。( sqlite3 を終了するにはCtrl+を使用しますD)。

たとえば、入力し.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 

(感謝の意ここ

答え2

最終的に私が得た答えは次のとおりです (以前の回答のおかげです):

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

答え3

私の〜の上にUbuntu 13.10 でオンです

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

あるいは

find / -name 'places.sqlite

*なので.sqliteファイルをインストールすることができますvimプラグイン使用してヴィム、開く方法を検索sqliteターミナルからファイルをダウンロードしてください。詳細についてはここ

答え4

これは@pawamoyのスクリプトの改良版ですhttps://askubuntu.com/a/909222/772891

違いは、私のバージョンでは、sqlite DB がロックされているとき、つまり Firefox が実行されているときでも結果が返されることです。

db=$(find "${HOME}/.mozilla/firefox/" -name "places.sqlite" | head -1)
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 "file://${db}?immutable=1" "${query}")
echo "${todays_urls}" > todays_urls

関連情報