터미널에서 Firefox 기록을 볼 수 있습니까?


28

터미널에서 Firefox 히스토리를 표시하는 명령이 있습니까?

Firefox 기록을 그래픽으로 입력 할 필요가 없습니다.


그렇게하고 싶은 이유를 추가 할 수 있습니까?

Firefox 자체를 사용하고 싶지 않은 이유는 무엇입니까?

1
@ user25656 : 빠르게하려면 명령 행을 사용하십시오. 당신은 그것에서 통계를 할 수 있습니다. 정규 표현식 (예 :을 사용하여 grep)으로 검색하고 그래프 등을 만들 수 있습니다. 파이어 폭스에서는 불가능합니다. 적어도 애드온을 해킹하지 않고서는 안됩니다.
erik

답변:


27

이 페이지 는 Firefox에 저장되는 사용자 별 정보와 위치를 설명합니다. (그리고 이것은 .sqlite 파일을 볼 때 Mozilla의 도움으로 말한 것 입니다.)

세 가지 유형의 기록이 나열됩니다.

  • 책갈피 및 탐색 기록 : places.sqlite 파일에는 모든 Firefox 책갈피 및 방문한 모든 웹 사이트 목록이 포함됩니다.

  • 자동 완성 기록 : formhistory.sqlite 파일은 Firefox 검색 창에서 검색 한 내용과 웹 사이트에서 양식에 입력 한 정보를 기억합니다 ...

  • 다운로드 기록 : downloads.sqlite 파일은 다운로드 한 내용을 기억합니다. ...

보시다시피, 세 이력은 모두 단순한 텍스트 파일이 아니라 데이터베이스 파일 sqlite형식입니다.

.sqlite파일 을 보는 한 가지 방법 은 sqlite3( sudo 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> 

이제 몇 가지 할 수있는 일이 있습니다. 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}

원하는 것을 정확히 알고 있으면 하나의 비 대화식 명령으로 모든 작업을 수행 할 수 있습니다. sqlite3에 대한 자세한 내용 은 sqlite3 명령 행 도구 를 읽으십시오 .

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

주어진 예제에서 필요한 작업을 수행하고 tee화면의 출력도 볼 수 있습니다.

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

(감사 합니다 .)


특정 용어 (예 : stackoverflow.com )에 대해 해당 데이터베이스의 모든 데이터베이스 및 모든 테이블을 검색하려는 경우 (단일 라이너로) 다음을 수행 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하고 검색 할 수 있습니다.
erik

이와 같은 것이 내 끝을 막을 ~/.bash_history것이므로 클릭 라이브러리를 사용하여 기본 목록, 정렬 및 필터링을 훨씬 쉽게 수행하는 Python (3.5+) 스크립트를 작성했습니다 . 이 요지 에서 얻을 수 있습니다 . 문제가 발생하면 의견을 남겨주십시오.
TheDudeAbides 1

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 -1해야합니다 find.
mivk

3

Xubuntu 13.10 에서 켜져 있습니다.

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

아니면 당신은 할 수

find / -name 'places.sqlite

그것이 * 이후 .sqlite 파일이이 설치 정력 플러그인을 사용 정력을 오픈 할 수있는 방법을 검색 SQLite는 터미널에서 파일을. 자세한 내용은 여기를 참조하십시오 .


1
~/.mozilla/firefox/*.default/places.sqlite작동해야 함
mchid
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.