Đối với những tín đồ của dòng lệnh (command line) hay đơn giản là những ai tò mò về khả năng tương tác với máy tính thông qua terminal, câu hỏi về việc tìm kiếm thông tin trên web chỉ với một lệnh văn bản có lẽ đã từng xuất hiện. Tin vui là, với sự linh hoạt của Linux, có vô số lựa chọn mạnh mẽ đang chờ bạn khám phá. Bài viết này của thichcongnghe.net sẽ đi sâu vào các phương pháp khác nhau, giúp bạn tối ưu hóa trải nghiệm tìm kiếm web ngay từ môi trường dòng lệnh Linux quen thuộc, nâng cao hiệu suất và khả năng kiểm soát dữ liệu của mình.
Phương Pháp Phổ Biến Nhất: Google Trong Trình Duyệt Văn Bản
Không thể phủ nhận, Google đã thống trị thị trường công cụ tìm kiếm suốt 25 năm qua đến mức tên của nó đã trở thành một động từ mang ý nghĩa “tìm kiếm trên internet”. Rất có thể, bạn đang sử dụng Google thông qua một trình duyệt web đồ họa (GUI) và bất kỳ giải pháp thay thế nào cũng cần mang lại trải nghiệm tương tự.
Do đó, việc tìm kiếm Google trong một trình duyệt văn bản từ dòng lệnh, thay vì giao diện đồ họa, có lẽ sẽ là điểm khởi đầu mặc định của bạn. Bạn có thể đã quen thuộc với một trình duyệt văn bản như Lynx; nếu chưa, bạn sẽ cần chuẩn bị cho một thời gian làm quen. Việc xem một phiên bản chỉ có văn bản của một trang web sẽ phơi bày tất cả các lỗi của nó, từ thiếu alt-text cho hình ảnh đến sự phụ thuộc quá mức vào JavaScript.
Mặc dù vậy, giao diện tìm kiếm của Google nổi tiếng với sự tối giản, và điều này hỗ trợ rất nhiều khi xem nó trong trình duyệt văn bản:
Giao diện tìm kiếm Google trên trình duyệt văn bản Lynx, hiển thị ô tìm kiếm và các tùy chọn cơ bản.
Việc điều hướng đến ô tìm kiếm, nhập truy vấn và xem kết quả khá dễ dàng. Bạn thậm chí có thể truy cập thẳng trang kết quả nếu bạn nhớ URL và tham số:
$ lynx http://www.google.com/search?q=search+from+commandline
Tuy nhiên, việc khám phá các kết quả đó lại không mang lại trải nghiệm thú vị:
Kết quả tìm kiếm Google hiển thị dưới dạng văn bản thuần túy trong trình duyệt Lynx, khó đọc và phân tách.
Bạn có thể thích sử dụng một dịch vụ khác. DuckDuckGo là một công cụ tìm kiếm tập trung vào quyền riêng tư sử dụng một lượng lớn nguồn, bao gồm Bing, cho kết quả của mình. Với trình duyệt văn bản, nó có giao diện tối giản hơn cả Google:
Giao diện tìm kiếm DuckDuckGo đơn giản và tối ưu hơn khi hiển thị trong trình duyệt Lynx.
Và kết quả tìm kiếm của DuckDuckGo dễ đọc hơn nhiều so với Google, mặc dù vẫn chỉ là văn bản thuần túy. Chúng được đánh số rõ ràng và phân tách bằng khoảng trắng:
Kết quả tìm kiếm DuckDuckGo trên Lynx dễ đọc hơn Google, với tiêu đề và mô tả rõ ràng, được đánh số.
Một lựa chọn đáng kể khác là Bing, nhưng việc sử dụng công cụ tìm kiếm của Microsoft với trình duyệt văn bản khá khó khăn. Thực tế, nếu bạn thực sự cần dùng Bing, chúng tôi khuyên bạn nên truy cập trực tiếp trang kết quả hơn là cố gắng sử dụng biểu mẫu tìm kiếm của nó:
$ lynx "https://www.bing.com/search?q=search+from+commandline"
ddgr: Giao Diện Terminal Chuyên Dụng Cho DuckDuckGo
Nếu bạn hài lòng với dịch vụ của DuckDuckGo, thì có một tin tốt khác dưới dạng một ứng dụng khách terminal. ddgr là một công cụ dòng lệnh, được viết bằng Python, dùng để tìm kiếm trên DuckDuckGo. Nó hiển thị kết quả tìm kiếm trực tiếp trong terminal của bạn, mỗi kết quả đều có tiêu đề, mô tả và tên miền hoặc URL rõ ràng.
Ảnh chụp màn hình các mục kết quả tìm kiếm hiển thị từ công cụ ddgr trên terminal Linux, bao gồm tiêu đề, tên miền và mô tả.
Mặc định, ddgr hoạt động ở chế độ tương tác, cung cấp cách dễ nhất để mở một kết quả cụ thể. Bắt đầu bằng cách nhập một truy vấn tìm kiếm trên dòng lệnh:
ddgr linux
ddgr sẽ hiển thị một trang kết quả, mặc định là mười kết quả:
Danh sách 10 kết quả tìm kiếm web cho từ khóa 'linux' được trả về bởi công cụ ddgr trong terminal.
Ở phía dưới, ddgr hiển thị một dòng lệnh mà bạn có thể sử dụng tương tác để tinh chỉnh kết quả hoặc thực hiện các hành động tiếp theo. Nhập số của kết quả bạn muốn xem. Nếu bạn đã cấu hình một trình duyệt terminal, sử dụng biến môi trường BROWSER được hỗ trợ rộng rãi, nó sẽ mở và hiển thị kết quả bạn chọn. Bạn cũng có thể cài đặt để kết quả mở trong trình duyệt đồ họa của mình nếu muốn.
API DuckDuckGo: Kết Quả Tìm Kiếm Hạn Chế
Ban đầu, API của DuckDuckGo có vẻ đầy hứa hẹn và rất dễ sử dụng. Ví dụ, bạn có thể nhận danh sách kết quả Instant Answer ở định dạng JSON bằng cách sử dụng endpoint này:
https://api.duckduckgo.com/?q=<search-term>&format=json </search-term>
Với curl
và một công cụ như jq
để phân tích cú pháp JSON, bạn có thể tiếp cận việc lấy các kết quả hữu ích ở định dạng có thể dùng cho việc viết script và xử lý tiếp:
$ curl -s 'https://api.duckduckgo.com/?q=linux&format=json' | jq -r '.AbstractURL'
Tuy nhiên, các kết quả này rất hạn chế do cách DuckDuckGo cấp phép cho các kết quả được đồng bộ hóa của họ. Bạn nên thử nghiệm với các cụm từ tìm kiếm trong ngữ cảnh yêu cầu riêng của mình, nhưng hãy lưu ý rằng phương pháp này sẽ không tạo ra kết quả giống như tìm kiếm trên duckduckgo.com.
SerpApi: API Tìm Kiếm Bên Thứ Ba Toàn Diện – Nhưng Có Phí
SerpApi là một giải pháp thay thế không chính thức cho API của DuckDuckGo. Điểm khác biệt là nó có thể hoạt động trên nhiều công cụ tìm kiếm và cung cấp kết quả tìm kiếm toàn văn. Hạn chế là bạn sẽ cần phải trả phí hoặc chấp nhận giới hạn 100 lượt tìm kiếm mỗi tháng đối với gói miễn phí. Nếu bạn có thể chấp nhận những giới hạn đó, SerpApi là một lựa chọn tốt cho các kết quả tìm kiếm có thể viết script:
$ curl -s 'https://serpapi.com/search?engine=duckduckgo&q=<search-term>&api_key=<api-key>'</api-key></search-term> | jq '.organic_results[0]'
Mặc dù HTTPS giúp ngăn chặn một số loại rò rỉ dữ liệu, việc nhập khóa API của bạn trên dòng lệnh là một rủi ro bảo mật. Để giảm thiểu điều đó, hãy nghiên cứu các tùy chọn của curl
, đặc biệt là -K
, -G
, và -d
.
Việc chạy lệnh này sẽ cung cấp cho bạn một đối tượng biểu thị kết quả tìm kiếm đầu tiên từ DuckDuckGo:
Dữ liệu kết quả tìm kiếm định dạng JSON từ SerpApi, hiển thị một liên kết từ linux.org cùng các thông tin chi tiết khác.
API đầy đủ của SerpApi có nhiều tùy chọn và hỗ trợ nhiều nhà cung cấp tìm kiếm, với trọng tâm dễ hiểu là Google. Nhưng giá cả khá đắt – 75 USD/tháng cho tối đa 5.000 lượt tìm kiếm – vì vậy nó phù hợp hơn cho công việc chuyên nghiệp.
Kết Luận
Mỗi phương pháp tìm kiếm web bằng dòng lệnh này đều có một đường cong học hỏi riêng và đi kèm với những lợi ích cũng như hạn chế nhất định. Điều này mang lại một loạt các lựa chọn đa dạng, vì vậy bạn sẽ cần hiểu rõ mục tiêu mình muốn đạt được trước khi quyết định chọn một phương pháp cụ thể. Với vai trò là chuyên gia tại thichcongnghe.net, chúng tôi tin rằng ddgr mang lại sự cân bằng tốt nhất giữa khả năng sử dụng và chức năng, là lựa chọn lý tưởng cho hầu hết người dùng Linux muốn tìm kiếm hiệu quả từ terminal.
Hãy chia sẻ ý kiến của bạn về các công cụ tìm kiếm dòng lệnh yêu thích của bạn hoặc nếu bạn có bất kỳ mẹo hay thủ thuật nào khác mà cộng đồng người dùng Linux nên biết!