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

24

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

sem a necessidade de inserir o histórico do Firefox graficamente.

    
por nux 30.01.2014 / 01:26

3 respostas

23

Esta página descreve quais informações específicas do usuário são armazenado pelo Firefox e onde. (E isso é o que a ajuda da Mozilla tem a dizer ao visualizar arquivos .sqlite.)

Relaciona três tipos de histórico:

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

  • Histórico de autocompletar: o arquivo formhistory.sqlite lembra o que você pesquisou na barra de pesquisa do Firefox e quais informações você inseriu nos formulários ...

  • Histórico de downloads: o arquivo downloads.sqlite lembra o que você fez o download. ...

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

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

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

ls *.sqlite lista 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, existem várias coisas que você pode fazer. (Use Ctrl + D para sair do sqlite3).

Por exemplo, digitar .tables e pressionar Enter me 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_name é o nome da tabela que você deseja visualizar; anote 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 que faz fornecer resultados decentes, veja stylish.sqlite (se você usar a extensão Stylish ):

$ ~/.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 em apenas um comando não interativo, se souber exatamente o que deseja. Leia a ferramenta de linha de comando sqlite3 para mais informações sobre sqlite3.

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

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

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

(Obrigado por aqui .)

    
por user25656 30.01.2014 / 04:11
3

No meu Xubuntu 13.10 , está em

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

Ou você poderia

find / -name 'places.sqlite

Como é um arquivo * .sqlite , você pode instalar este vim plugin e use vim , procure uma maneira de abrir um arquivo sqlite do terminal. Mais informações podem ser encontradas aqui .

    
por Lynob 30.01.2014 / 02:25
3

Aqui está o que acabei (graças a 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
    
por Pawamoy 26.04.2017 / 18:58

Tags