Bạn là một người dùng Linux đã quen thuộc với dòng lệnh, hay đơn giản là đang tò mò về những khả năng mà terminal mang lại? Chắc hẳn bạn đã từng nghĩ liệu có cách nào để tìm kiếm thông tin trên web chỉ bằng một vài lệnh đơn giản. Với đặc trưng linh hoạt của Linux, câu trả lời là CÓ, và bạn có rất nhiều lựa chọn để khám phá. Bài viết này của Tin Mới Công Nghệ sẽ đi sâu vào các phương pháp tìm kiếm web hiệu quả nhất ngay từ dòng lệnh, từ những trình duyệt văn bản truyền thống đến các công cụ chuyên dụng và API mạnh mẽ, giúp bạn làm chủ hoàn toàn môi trường terminal của mình.
Phương Pháp Quen Thuộc: Tìm Kiếm Với Google (và các công cụ khác) Trong Trình Duyệt Văn Bản
Google đã thống trị thế giới tìm kiếm trong suốt 25 năm qua, đến mức tên của công cụ này đã trở thành một động từ để chỉ hành động “tìm kiếm trên internet”. Rất có thể bạn đang sử dụng Google trong một trình duyệt web đồ họa hàng ngày, 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, thay vì giao diện đồ họa (GUI), có lẽ sẽ là điểm khởi đầu mặc định của bạn. Nếu bạn đã quen dùng các trình duyệt dựa trên văn bản như Lynx, bạn sẽ thấy khá dễ dàng. Còn nếu chưa, bạn sẽ cần một khoảng thời gian làm quen. Việc xem 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 việc phụ thuộc quá mức vào JavaScript.
Trải Nghiệm Google Với Trình Duyệt Văn Bản Như Lynx
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 giúp ích rất nhiều khi xem nó trong trình duyệt văn bản.
Giao diện tìm kiếm Google hiển thị trong trình duyệt văn bản Lynx
Khá dễ dàng để điều hướng đến hộp tìm kiếm, nhập truy vấn của bạn và xem kết quả. Bạn thậm chí có thể truy cập trực tiếp trang kết quả nếu bạn nhớ được 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ả đó không phải là một trải nghiệm lý tưởng:
Kết quả tìm kiếm Google hiển thị dưới dạng văn bản dày đặc trên trình duyệt Lynx, khó đọc
DuckDuckGo: Lựa Chọn Thay Thế Thân Thiện Với Terminal Hơn
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 rất nhiều nguồn, bao gồm cả Bing, để cung cấp kết quả. Với trình duyệt văn bản, nó có giao diện thậm chí còn tối giản hơn Google:
Giao diện tìm kiếm DuckDuckGo hiển thị tối giản trong trình duyệt văn bản Lynx
Và các 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. 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 hiển thị rõ ràng, có đánh số và mô tả trong trình duyệt văn bản Lynx
Bing: Một Thử Thách Với Trình Duyệt Văn Bản
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. Trên thực tế, nếu bạn thực sự cần sử dụng Bing, chúng tôi khuyên bạn nên truy cập trực tiếp các trang kết quả thay vì 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 client terminal. ddgr là một công cụ dòng lệnh, được viết bằng Python, dùng để tìm kiếm DuckDuckGo. Nó trình bày kết quả tìm kiếm trong terminal của bạn, mỗi kết quả có tiêu đề, mô tả và tên miền hoặc URL rõ ràng. Đây là một lựa chọn tuyệt vời cho những ai muốn tìm kiếm terminal Linux một cách hiệu quả.
Kết quả tìm kiếm được hiển thị bởi công cụ ddgr với tiêu đề, tên miền và mô tả rõ ràng
Theo 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ười kết quả theo mặc định:
Danh sách kết quả tìm kiếm cho truy vấn 'linux' được hiển thị bởi công cụ ddgr trong terminal
Ở phía dưới, ddgr trình bày 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ể yêu cầu kết quả mở trong trình duyệt đồ họa nếu bạn thích.
Giới Hạn Từ API Của DuckDuckGo
Thoạt nhìn, API của DuckDuckGo có vẻ hứa hẹn và rất dễ sử dụng. Ví dụ, bạn có thể nhận được 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 JSON, bạn có thể tiến gần đến việc lấy các kết quả hữu ích ở định dạng có thể được sử dụng cho scripting và xử lý tiếp theo:
$ curl -s 'https://api.duckduckgo.com/?q=linux&format=json' | jq -r '.AbstractURL'
Kết quả trả về từ DuckDuckGo API ở định dạng JSON khi sử dụng lệnh curl và jq
Tuy nhiên, những 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 phân phối của nó. Bạn nên thử nghiệm với các cụm từ tìm kiếm trong bối cảnh yêu cầu riêng của mình, nhưng hãy đảm bảo nhận ra rằng cách tiếp cận 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 Toàn Diện Từ Bên Thứ Ba (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 một số 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 trên 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 kết quả tìm kiếm có thể script được:
$ curl -s 'https://serpapi.com/search?engine=duckduckgo&q=<search-term>&api_key=<api-key>' | 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 tìm hiểu các tùy chọn của curl, đặc biệt là -K, -G và -d.
Chạy lệnh này sẽ cung cấp cho bạn một đối tượng đại diện cho kết quả tìm kiếm đầu tiên từ DuckDuckGo:
Một kết quả JSON từ SerpApi hiển thị URL, favicon và các liên kết trang của linux.org
API đầy đủ có nhiều tùy chọn và hỗ trợ một số nhà cung cấp tìm kiếm, với trọng tâm dễ hiểu là Google. Nhưng giá 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 hoặc phát triển giải pháp tìm kiếm dòng lệnh quy mô lớn.
Kết Luận
Mỗi phương pháp tìm kiếm web bằng dòng lệnh Linux đều có những ưu và nhược điểm riêng, đòi hỏi một chút thời gian để làm quen. Từ việc sử dụng trình duyệt văn bản như Lynx để truy cập Google hay DuckDuckGo, đến việc tận dụng các công cụ chuyên dụng như ddgr, hay các API mạnh mẽ như DuckDuckGo API và SerpApi, bạn có một loạt các lựa chọn phong phú.
Để chọn được phương pháp phù hợp nhất, bạn cần hiểu rõ nhu cầu và mục tiêu của mình. Theo đánh giá của Tin Mới Công Nghệ, ddgr cung cấp sự cân bằng tốt nhất giữa tính dễ sử dụng và chức năng, là một lựa chọn lý tưởng cho hầu hết người dùng muốn tìm kiếm web bằng dòng lệnh Linux. Hãy thử nghiệm các công cụ này và chia sẻ kinh nghiệm của bạn trong phần bình luận!