Firefox geçmişini terminal ile görüntüleyebilir miyim?


29

Terminalden Firefox geçmişini göstermek için bir komut var mı?

Firefox geçmişini grafiksel olarak girmeye gerek kalmadan.


Bunu yapmak istemenin nedenini ekler misiniz?

Neden Firefox'un kendisini kullanmak istemiyorsunuz?

1
@ user25656: Hızlı olmak istiyorsanız, komut satırını kullanın. Bunun dışında istatistik yapabilirsiniz. Normal ifadelerle arama yapabilirsiniz (ör. Kullanarak grep), grafikler vb. Oluşturabilirsiniz. Firefox'ta her şey mümkün değildir. En azından bir addon hack olmadan.
erik

Yanıtlar:


28

Bu sayfa , kullanıcıya hangi bilgilerin Firefox tarafından nerede depolandığını açıklar. ( Mozilla'nın yardımlarının .sqlite dosyalarını görüntülerken söyleyeceği şey de bu .)

Üç tür tarihçeyi listeler:

  • Yer İmleri ve Gözatma Geçmişi: places.sqlite dosyası tüm Firefox yer imlerinizi ve ziyaret ettiğiniz tüm web sitelerinin listesini içerir ...

  • Otomatik tamamlama geçmişi: formhistory.sqlite dosyası, Firefox arama çubuğunda ne aradığınızı ve web sitelerinde formlara girdiğiniz bilgileri hatırlar ...

  • İndirme geçmişi: downloads.sqlite dosyası, indirdiklerinizi hatırlar. ...

Gördüğünüz gibi, her üç tarih de basit metin dosyaları değil, sqlitebiçimindeki veritabanı dosyaları .

.sqliteDosyaları görüntülemenin bir yolu sqlite3( sudo apt-get install sqlite3) kullanmaktır .

Bir terminal açın ve cdgörüntülemek istediklerinizi içeren klasöre gidin. Benim durumumda, bu ~/.mozilla/firefox/w4wcp85s.default.

ls *.sqlite sqlite dosyalarını listeler.

Çalıştır sqlite3 places.sqlite(görüntülemek istediğiniz yerler places.sqlite ise). Bunun gibi bir şey göreceksiniz:

$ 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> 

Şimdi yapabileceğin birkaç şey var. ( Sqlite3'ten çıkmak için Ctrl+ tuşunu kullanın D).

Örneğin, yazmak .tablesve basmak Enterbana şunları verir:

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> 

İçeriği görüntülemek için yazın SELECT * FROM table_name;( table_namegörüntülemek istediğiniz tablonun adı; notu yazın ;) ve tuşuna basın Enter. Çıktının anlaşılamayacak olması muhtemeldir, ancak bu sqlite3'ün hatası değildir.

Size bir örnek göstermek için yaptığı iyi çıkışı, bakmak sağlamak stylish.sqlite(kullanırsanız Şık uzantısı ):

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

Tam olarak ne istediğinizi biliyorsanız, her şeyi etkileşimli olmayan tek bir komutla yapabilirsiniz. Sqlite3 hakkında daha fazla bilgi için sqlite3 komut satırı aracını okuyun .

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

verilen örnekte gerekli olanı yapacağız ve teeçıktıyı ekranda görmenizi sağlayacak:

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

(Teşekkürler burada .)


Belirli bir dönem (.. E g için bu veri tabanlarında tüm veritabanlarını ve tüm tabloları aramak istiyorsanız stackoverflow.com : (tek astar gibi)), sadece yapabileceği 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'Veya yerine grepkullanılması lessve sonuçların içinde arama.
erik

Bunun gibi bir şey sadece benim ~/.bash_historysonumdan çıkacak , bu yüzden temel listeleme, sıralama ve filtrelemeyi çok daha kolay hale getirmek için Click kütüphanesini kullanarak bir Python (3.5+) betiği yazdım . Sen mal alabilirsiniz bu Gist'e . Sorun yaşarsanız, lütfen orada yorumlarınızı bırakın.
TheDudeAbides

6

İşte neyle sonuçlandığım (önceki cevaplar sayesinde):

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
Aslında en kullanışlı-kopyala-yapıştır-verbose çözümü. Teşekkürler.
vmassuchetto

Birkaç Firefox profiliniz varsa | head -1, findkomuta eklemeniz gerekir .
mivk

3

Benim Xubuntu 13.10'da açık

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

Ya da yapabilirsin

find / -name 'places.sqlite

Bir * .sqlite dosyası olduğundan, bu vim eklentisini yükleyebilir ve vim kullanabilirsiniz , terminalden bir sqlite dosyası açmanın bir yolunu arayabilirsiniz . Daha fazla bilgi burada bulunabilir .


1
~/.mozilla/firefox/*.default/places.sqliteçalışması gerekir
mchid 7:15
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.