Cách sử dụng lệnh cURL trong Linux

Bất kể bạn sử dụng máy tính để làm gì, thì ít nhất một lần bạn đã cần tải xuống một file nào đó và việc mở trình duyệt có vẻ như quá mức cần thiết. Đây sẽ là lúc cURL thực sự phát huy được vai trò.

Như tên gọi của nó cho thấy, cURL là một công cụ dòng lệnh để truyền dữ liệu bằng URL. Một trong những cách sử dụng đơn giản nhất là tải xuống một file thông qua dòng lệnh. cURL là một công cụ cực kỳ mạnh mẽ tùy thuộc vào cách bạn sử dụng nó. Ngay cả khi bạn đã quen thuộc với việc sử dụng dòng lệnh, thì cũng rất khó để khai thác hết toàn bộ tiềm năng của cURL.

Chức năng cơ bản của CURL

Một trong những điều cơ bản nhất bạn có thể làm với cURL là tải xuống một trang web hoặc file. Để làm điều này, bạn chỉ cần sử dụng lệnh curl theo sau là một URL. Ví dụ như:

curl https://www.google.com

Trong hầu hết mọi tình huống, sử dụng lệnh theo cách này sẽ giúp bạn nhận được một terminal chứa đầy đủ dữ liệu HTML raw (thô) (trong trường hợp lý tưởng nhất) hoặc các ký tự không thể đọc được (trong trường hợp xấu nhất). Nếu bạn muốn lưu nó vào một file, bạn có thể sử dụng các tính năng chuyển hướng chuẩn Unix để làm điều này.

curl https://www.google.com > google.html

Theo dõi các HTTP Header

Trình duyệt thường sửa lỗi này cho bạn, nhưng Internet thì khác. Khi bạn nhập một URL, rất có thể bạn sẽ được chuyển hướng một hoặc nhiều lần trước khi đến trang đích.

Ví dụ, nói rằng bạn đang cố gắng truy cập trang web Quản Trị Mạng. Nhập lệnh sau sẽ giúp bạn nhận được thông báo chuyển hướng:

curl http://quantrimang.com

Bạn có thể theo dõi các header vị trí HTTP này bằng cách sử dụng flag -L như sau:

curl -L http://quantrimang.com

Theo dõi HTTP header

Trông không tuyệt lắm trong terminal, nhưng cũng là một tùy chọn nên biết.

Lưu kết quả cURL vào một file

Có một số cách để lưu nội dung URL vào một file. Tùy chọn -o cho phép bạn quyết định tên file, trong khi tùy chọn -O sử dụng tên file trong URL để lưu. Để chọn file của riêng bạn, hãy sử dụng tùy chọn sau:

curl -o filename.html https://example.com/url

Thường thì bạn sẽ muốn lưu một file với cùng tên mà nó sử dụng trên máy chủ. Để làm điều đó, hãy sử dụng tùy chọn -O.

curl -O https://example.com/filename.html

Lưu kết quả vào file

Tải xuống nhiều file cùng một lúc

Nếu bạn cần tải xuống một vài file cùng một lúc, cURL sẽ giúp bạn dễ dàng thực hiện việc này với tùy chọn -O.

curl -O https://example.com/file1.html -O https://example.com/file2.html

Tải nhiều file một lúc

Khi tải xuống theo cách này, cURL sẽ cố gắng sử dụng lại kết nối thay vì tạo kết nối mới mỗi lần.

Tiếp tục quá trình tải xuống đã bị dừng

Chẳng vui vẻ gì khi quá trình tải xuống dừng lại giữa chừng. May mắn thay, cURL giúp bạn dễ dàng tiếp tục tải xuống mà không phải bắt đầu lại từ đầu. Cú pháp hơi lạ, vì bạn cần thêm -C - vào lệnh.

Giả sử bạn đã bắt đầu tải xuống với lệnh sau:

curl -O https://example.com/bigfile.zip

Sau đó, bạn đã dừng nó bằng cách nhấn Ctrl + C. Bạn có thể tiếp tục lại bằng lệnh sau:

curl -C - -O https://example.com/bigfile.zip

Sử dụng xác thực HTTP cơ bản

Xác thực HTTP cơ bản sẽ không hoạt động với những thứ yêu cầu tên người dùng và mật khẩu. Nhưng nếu máy chủ sử dụng xác thực HTTP cơ bản, cURL sẽ có thể hoạt động với tính năng này. Để tải xuống một file có xác thực tên người dùng và mật khẩu, bạn có thể sử dụng lệnh sau:

curl -u username:password -O http://example.com/filename.html

Xác thực HTTP cơ bản

Lệnh này cũng hoạt động với các FTP server, vì cURL hỗ trợ rất nhiều giao thức khác nhau.

Có rất nhiều thứ bạn có thể làm với cURL. Đôi khi bạn có thể cảm thấy tất cả các chức năng mà cURL cung cấp có thể quá nhiều. Nếu cảm thấy cURL quá phức tạp, bạn có thể lựa chọn một giải pháp khác đơn giản hơn: GNU wget.

Mặc dù cURL cung cấp tất cả các tùy chọn bạn mong muốn, nhưng wget mới thực sự cung cấp các tùy chọn mặc định tốt nhất cho bạn. Nếu không chắc chắn đâu là lựa chọn phù hợp, hãy đọc bài so sánh chi tiết về cURL và wget của Quản Trị Mạng để đưa ra quyết định.

Thứ Sáu, 29/03/2019 12:04
52 👨 765