Tôi có thể xem lịch sử Firefox với thiết bị đầu cuối không?


29

Có lệnh nào để hiển thị lịch sử Firefox từ Terminal không?

mà không cần phải nhập lịch sử Firefox vào đồ họa.


Bạn có thể thêm lý do muốn làm như vậy?

Tại sao bạn không muốn sử dụng Firefox?

1
@ user25656: Nếu bạn muốn nhanh, hãy sử dụng dòng lệnh. Bạn có thể làm số liệu thống kê từ nó. Bạn có thể tìm kiếm với các biểu thức thông thường (ví dụ: sử dụng grep), bạn có thể tạo biểu đồ, v.v. Mọi thứ không thể có trong firefox. Ít nhất không phải không hack một addon.
erik

Câu trả lời:


28

Trang này mô tả thông tin cụ thể của người dùng được lưu trữ bởi Firefox và ở đâu. (Và đây là những gì trợ giúp của Mozilla nói về việc xem các tệp .sqlite.)

Nó liệt kê ba loại lịch sử:

  • Dấu trang và Lịch sử duyệt web: Tệp records.sqlite chứa tất cả dấu trang Firefox của bạn và danh sách tất cả các trang web bạn đã truy cập ...

  • Lịch sử tự động hoàn tất: Tệp formhistory.sqlite ghi nhớ những gì bạn đã tìm kiếm trong thanh tìm kiếm Firefox và thông tin bạn đã nhập vào biểu mẫu trên trang web ...

  • Lịch sử tải xuống : Tệp download.sqlite ghi nhớ những gì bạn đã tải xuống. ...

Như bạn có thể thấy, cả ba lịch sử không phải là tệp văn bản đơn giản mà là tệp cơ sở dữ liệu ở sqliteđịnh dạng.

Một cách để xem .sqlitetệp là sử dụng sqlite3( sudo apt-get install sqlite3).

Mở một thiết bị đầu cuối và cdvào thư mục chứa những gì bạn muốn xem. Trong trường hợp của tôi, đó là ~/.mozilla/firefox/w4wcp85s.default.

ls *.sqlite liệt kê các tập tin sqlite.

Chạy sqlite3 places.sqlite(nếu tests.sqlite là những gì bạn muốn xem). Bạn sẽ thấy một cái gì đó như thế này:

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

Bây giờ, có một số điều bạn có thể làm. (Sử dụng Ctrl+ Dđể thoát sqlite3).

Ví dụ, gõ .tablesvà nhấn Entercung cấp cho tôi:

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> 

Để xem nội dung, nhập SELECT * FROM table_name;(nơi table_namelà tên của bảng bạn muốn xem; ghi chú ;) và nhấn Enter. Có vẻ như đầu ra sẽ không thể hiểu được nhưng đó không phải là lỗi của sqlite3.

Để hiển thị cho bạn một ví dụ mà không cung cấp sản lượng khá, nhìn vào stylish.sqlite(nếu bạn sử dụng phần mở rộng phong cách ):

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

Bạn có thể làm mọi thứ chỉ trong một lệnh không tương tác nếu bạn biết chính xác những gì bạn muốn. Đọc Công cụ dòng lệnh sqlite3 để biết thêm về sqlite3.

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

sẽ làm cần thiết trong ví dụ đã cho và tee cũng sẽ cho bạn thấy đầu ra trên màn hình:

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

(Cảm ơn do ở đây .)


Nếu bạn muốn tìm kiếm tất cả các cơ sở dữ liệu và tất cả các bảng trong cơ sở dữ liệu đó cho một thuật ngữ cụ thể (ví dụ: stackoverflow.com ), bạn chỉ có thể thực hiện (dưới dạng một lớp lót): 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'Hoặc thay vì grepsử dụng lessvà tìm kiếm bên trong kết quả.
erik

Một cái gì đó như thế này sẽ kết thúc phần cuối của tôi ~/.bash_history, vì vậy tôi đã viết một tập lệnh Python (3.5+) bằng thư viện Click để tạo danh sách cơ bản, sắp xếp và lọc dễ dàng hơn nhiều. Bạn có thể lấy nó từ Gist này . Vui lòng để lại ý kiến ​​ở đó nếu bạn gặp vấn đề.
TheDudeAdides

6

Đây là những gì tôi đã kết thúc (nhờ các câu trả lời trước):

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
Trên thực tế, giải pháp hữu ích nhất là sao chép-dán-không dài dòng. Cảm ơn.
vmassuchetto

Nếu bạn có một vài cấu hình Firefox, bạn cần thêm | head -1vào findlệnh.
mivk

3

Trên Xubfox 13.10 của tôi, nó bật

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

Hoặc bạn có thể

find / -name 'places.sqlite

Vì là tệp * .sqlite , bạn có thể cài đặt plugin vim này và sử dụng vim , tìm kiếm cách mở tệp sqlite từ thiết bị đầu cuối. Thêm thông tin có thể được tìm thấy ở đây .


1
~/.mozilla/firefox/*.default/places.sqlitenên làm việc
mchid
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.