Posso ver o histórico do Firefox com o terminal?

Posso ver o histórico do Firefox com o terminal?

Existe um comando para mostrar o histórico do Firefox no Terminal?

sem a necessidade de entrar graficamente no histórico do Firefox.

Responder1

Esta páginadescreve quais informações específicas do usuário são armazenadas pelo Firefox e onde.(Eisso é o que a ajuda da Mozilla tem a dizerna visualização de arquivos .sqlite.)

Ele lista três tipos de história:

  • Favoritos e histórico de navegação: olugares.sqlitearquivo contém todos os seus favoritos do Firefox e a lista de todos os sites que você visitou ...

  • Histórico de preenchimento automático: ohistórico de formulário.sqliteO arquivo lembra o que você pesquisou na barra de pesquisa do Firefox e quais informações você inseriu nos formulários dos sites...

  • Histórico de downloads: Odownloads.sqlitearquivo lembra o que você baixou. ...

Como você pode ver, todos os três históricos não são simples arquivos de texto, mas arquivos de banco de dados em sqliteformato.

Uma maneira de visualizar .sqlitearquivos é usando sqlite3( sudo apt-get install sqlite3).

Abra um terminal e cdacesse a pasta que contém o que você deseja visualizar. No meu caso, é isso ~/.mozilla/firefox/w4wcp85s.default.

ls *.sqlitelista os arquivos sqlite.

Execute sqlite3 places.sqlite(se places.sqlite for o que você deseja visualizar). Você verá algo assim:

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

Agora, há várias coisas que você pode fazer. (Use Ctrl+ Dpara sair do sqlite3).

Por exemplo, digitar .tablese pressionar Enterme dá:

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> 

Para visualizar o conteúdo digite SELECT * FROM table_name;(onde table_nameestá o nome da tabela que deseja visualizar; observe o ;) e pressione Enter. É bem provável que a saída não seja compreensível, mas isso não é culpa do sqlite3.

Para mostrar um exemplo quefazfornecer resultados decentes, veja stylish.sqlite(se você usar oExtensão elegante):

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

Você pode fazer tudo com apenas um comando não interativo se souber exatamente o que deseja. LerA ferramenta de linha de comando sqlite3para saber mais sobre sqlite3.

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

fará o necessário no exemplo dado e teepermitirá que você veja a saída na tela também:

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

(Obrigado devidoaqui.)

Responder2

Aqui está o que acabei (graças às respostas anteriores):

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

Responder3

No meuUbuntu 13.10está ligado

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

Ou você poderia

find / -name 'places.sqlite

Como é um *.sqlitearquivo, você pode instalar esteplug-in vimE usevim, procure uma maneira de abrir umsqlitearquivo do terminal. Mais informações podem ser encontradasaqui.

Responder4

esta é uma versão melhorada do script de @pawamoyhttps://askubuntu.com/a/909222/772891

a diferença é que minha versão retorna resultados mesmo quando um banco de dados sqlite está bloqueado, ou seja, quando o Firefox está rodando:

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

informação relacionada