Lệnh curl trong linux

Lệnh Curl Trong Linux: "Vũ Khí" Truyền Dữ Liệu Mạnh Mẽ Cho Mọi Nhà

Bạn có bao giờ tự hỏi làm thế nào các ứng dụng web tương tác với nhau để lấy dữ liệu? Hoặc làm thế nào để tải một tập tin từ dòng lệnh mà không cần trình duyệt? Câu trả lời chính là curl, một công cụ dòng lệnh mạnh mẽ và linh hoạt, giúp bạn truyền dữ liệu đến và đi từ server một cách dễ dàng trong môi trường Linux (và nhiều hệ điều hành khác nữa).

Trong bài viết này, chúng ta sẽ cùng nhau khám phá thế giới của curl, từ những khái niệm cơ bản nhất đến những ứng dụng thực tế đầy thú vị. Hãy cùng bắt đầu hành trình khám phá "vũ khí" truyền dữ liệu này nhé!

Curl Là Gì?

Curl (viết tắt của "Client URL") là một công cụ dòng lệnh được sử dụng để truyền dữ liệu với các server, sử dụng nhiều giao thức khác nhau như HTTP, HTTPS, FTP, SFTP, và nhiều giao thức khác. Nó cho phép bạn tải xuống hoặc tải lên dữ liệu, gửi các yêu cầu HTTP, kiểm tra các API, và thực hiện nhiều tác vụ liên quan đến việc truyền dữ liệu.

Điều làm cho curl trở nên mạnh mẽ là tính linh hoạt và khả năng tùy biến cao. Bạn có thể điều chỉnh các tham số để phù hợp với nhu cầu cụ thể của mình, từ việc chỉ định header, cookie, đến việc xác thực người dùng.

Cài Đặt Curl

Hầu hết các bản phân phối Linux hiện đại đều đã cài đặt sẵn curl. Tuy nhiên, nếu bạn chưa có, bạn có thể dễ dàng cài đặt nó bằng trình quản lý gói của hệ thống.

  • Trên Debian/Ubuntu: sudo apt-get update && sudo apt-get install curl
  • Trên Fedora/CentOS/RHEL: sudo yum install curl hoặc sudo dnf install curl
  • Trên macOS: brew install curl (nếu bạn đã cài đặt Homebrew)

Cú Pháp Cơ Bản Của Lệnh Curl

Cú pháp cơ bản của lệnh curl như sau:

curl [options] [URL]

Trong đó:

  • curl là lệnh gọi chương trình curl.
  • [options] là các tùy chọn để điều chỉnh hành vi của curl (ví dụ: -I, -O, -X).
  • [URL] là địa chỉ URL mà bạn muốn truy cập.

Các Tùy Chọn Curl Quan Trọng Nhất

Curl cung cấp rất nhiều tùy chọn, nhưng dưới đây là một số tùy chọn quan trọng và thường được sử dụng nhất:

  • -I (hoặc --head): Chỉ lấy header của phản hồi HTTP, không tải nội dung. Rất hữu ích để kiểm tra trạng thái của một URL.
  • -O (hoặc --remote-name): Lưu nội dung tải xuống vào một tập tin với tên giống như tên tập tin trên server.
  • -o (hoặc --output): Lưu nội dung tải xuống vào một tập tin với tên bạn chỉ định.
  • -X (hoặc --request): Chỉ định phương thức HTTP (ví dụ: GET, POST, PUT, DELETE).
  • -H (hoặc --header): Thêm một header tùy chỉnh vào yêu cầu HTTP.
  • -d (hoặc --data): Gửi dữ liệu trong yêu cầu POST.
  • -u (hoặc --user): Chỉ định tên người dùng và mật khẩu cho xác thực.
  • -v (hoặc --verbose): Hiển thị thông tin chi tiết về quá trình truyền dữ liệu.

Ví Dụ Về Cách Sử Dụng Lệnh Curl

Để hiểu rõ hơn về cách sử dụng curl, chúng ta hãy xem một vài ví dụ cụ thể:

1. Lấy Header Của Một Trang Web

Để lấy header của trang web google.com, bạn có thể sử dụng lệnh sau:

curl -I https://www.google.com

Kết quả trả về sẽ chứa các thông tin như trạng thái HTTP (ví dụ: 200 OK), loại nội dung, ngày sửa đổi, và nhiều thông tin khác.

2. Tải Một Tập Tin Từ Internet

Để tải một tập tin từ internet và lưu nó với tên gốc, bạn có thể sử dụng tùy chọn -O:

curl -O https://example.com/image.jpg

Lệnh này sẽ tải tập tin image.jpg từ https://example.com và lưu nó vào thư mục hiện tại với tên image.jpg.

Hoặc, bạn có thể chỉ định tên tập tin đích bằng tùy chọn -o:

curl -o my_image.jpg https://example.com/image.jpg

Lệnh này sẽ tải tập tin image.jpg và lưu nó với tên my_image.jpg.

3. Gửi Yêu Cầu POST Với Dữ Liệu

Để gửi một yêu cầu POST với dữ liệu đến một API, bạn có thể sử dụng tùy chọn -X để chỉ định phương thức POST và -d để cung cấp dữ liệu:

curl -X POST -d "name=John&age=30" https://example.com/api/users

Lệnh này sẽ gửi một yêu cầu POST đến https://example.com/api/users với dữ liệu name=John&age=30.

4. Gửi Yêu Cầu POST Với Dữ Liệu JSON

Để gửi dữ liệu JSON, bạn cần chỉ định header Content-Type: application/json:

curl -X POST -H "Content-Type: application/json" -d '{"name": "John", "age": 30}' https://example.com/api/users

Lệnh này sẽ gửi một yêu cầu POST với dữ liệu JSON đến https://example.com/api/users.

5. Xác Thực Với Tên Người Dùng Và Mật Khẩu

Để xác thực với tên người dùng và mật khẩu, bạn có thể sử dụng tùy chọn -u:

curl -u username:password https://example.com/api/protected

Lệnh này sẽ gửi thông tin xác thực (usernamepassword) đến https://example.com/api/protected.

Ứng Dụng Thực Tế Của Lệnh Curl

Curl không chỉ là một công cụ tải dữ liệu đơn thuần. Nó còn được sử dụng rộng rãi trong nhiều lĩnh vực khác nhau:

  • Kiểm tra API: Curl là một công cụ tuyệt vời để kiểm tra các API, cho phép bạn gửi các yêu cầu và kiểm tra phản hồi.
  • Tự động hóa tác vụ: Bạn có thể sử dụng curl để tự động hóa các tác vụ liên quan đến việc truyền dữ liệu, ví dụ như tải các bản sao lưu hàng ngày hoặc gửi thông báo đến một server.
  • Phát triển web: Curl có thể được sử dụng để mô phỏng các yêu cầu từ trình duyệt, giúp bạn gỡ lỗi và kiểm tra các ứng dụng web.
  • Bảo mật: Curl hỗ trợ nhiều giao thức bảo mật như HTTPS và SSL/TLS, cho phép bạn truyền dữ liệu một cách an toàn.

So Sánh Curl Với Các Công Cụ Tương Tự

Mặc dù có nhiều công cụ khác có thể thực hiện các tác vụ tương tự như curl, nhưng curl vẫn nổi bật nhờ tính linh hoạt, khả năng tùy biến và sự phổ biến rộng rãi. Dưới đây là bảng so sánh curl với một số công cụ phổ biến khác:

Tính năng Curl Wget HTTPie
Mục đích chính Truyền dữ liệu với server (đa giao thức) Tải tập tin từ web Giao diện dòng lệnh thân thiện cho HTTP
Hỗ trợ giao thức HTTP, HTTPS, FTP, SFTP, SCP, v.v. HTTP, HTTPS, FTP HTTP, HTTPS
Tính linh hoạt Rất cao (nhiều tùy chọn) Cao Trung bình (tập trung vào HTTP)
Dễ sử dụng Trung bình (cần học cú pháp) Dễ Dễ (giao diện thân thiện)
Đầu ra Văn bản Lưu vào tập tin Màu sắc (dễ đọc)

Câu Hỏi Thường Gặp (FAQ)

1. Làm thế nào để tải xuống nhiều tập tin cùng lúc bằng curl?

Bạn có thể sử dụng tùy chọn -O nhiều lần để tải nhiều tập tin cùng lúc:

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

2. Làm thế nào để bỏ qua kiểm tra chứng chỉ SSL khi sử dụng HTTPS?

Bạn có thể sử dụng tùy chọn -k (hoặc --insecure) để bỏ qua kiểm tra chứng chỉ SSL. Tuy nhiên, hãy cẩn thận khi sử dụng tùy chọn này, vì nó có thể khiến bạn dễ bị tấn công man-in-the-middle.

curl -k https://example.com/

3. Làm thế nào để theo dõi chuyển hướng HTTP?

Bạn có thể sử dụng tùy chọn -L (hoặc --location) để tự động theo dõi chuyển hướng HTTP.

curl -L https://example.com/

Kết Luận

Curl là một công cụ dòng lệnh vô cùng mạnh mẽ và linh hoạt, cho phép bạn truyền dữ liệu đến và đi từ server một cách dễ dàng. Từ việc tải tập tin, kiểm tra API, đến tự động hóa các tác vụ, curl có thể giúp bạn giải quyết nhiều vấn đề khác nhau. Hy vọng bài viết này đã cung cấp cho bạn những kiến thức cơ bản để bắt đầu sử dụng curl một cách hiệu quả. Chúc bạn thành công!

Last Updated : 20/08/2025