Curl là gì? Các lệnh curl – Curl Command cần biết trong Linux

Lệnh Curl là gì? Nó là chữ viết tắt của “Client URL”, dùng để kiểm tra kết nối tới URL và curl command thường dùng để truyền tải dữ liệu. Curl được cung cấp bởi libcurl, là một bộ thư viện truyền URL phía máy khách. Hãy cùng chúng tôi tìm hiểu cách sử dụng nó.

Curl command hỗ trợ các giao thức bên dưới:

  • HTTP và HTTPS
  • FTP và FTPS
  • IMAP và IMAPS
  • POP3 và POP3S
  • SMB và SMBS
  • SFTP
  • SCP
  • TELNET
  • GOPHER
  • LDAP và LDAPS
  • SMTP và SMTPS

Đây là những protocol được hỗ trợ quan trọng nhất, cũng có các giao thức khác ít phổ biến hơn.

Kiểm tra phiên bản Curl:

Trước khi bắt đầu làm việc với Curl, bạn cần đăng nhập vào VPS trước. Nếu chưa biết cách, hãy xem bài viết sau để sử dụng SSH truy cập vào VPS. Bạn cũng có thể tham khảo bảng giá thuê VPS của chúng tôi.

Đầu tiên, hãy kiểm tra phiên bản Curl bằng lệnh sau để chắc chắn nó đã được cài trên máy:

curl --version

Kết quả sẽ hiện phiên bản Curl để bạn biết danh sách protocol được hỗ trợ. Giờ hãy xem một vài ví dụ của Curl command.

Cú pháp của lệnh Curl

Để biết cách sử dụng curl command, bạn cần biết cú pháp của Curl:

curl [OPTIONS] [URL]

Cách dùng đơn giản nhất của Curl là hiển thị nội dung của trang. Ví dụ sau sẽ cho bạn xem nội dung của trang chủ của trang  testdomain.com.

curl testdomain.com

Nó sẽ kết xuất (render) cho bạn mã nguồn của trang chủ website này. Nếu không xác định protocol thì curl sẽ mặc định dịch nó thành HTTP.

Các lựa chọn để dùng Curl Command

Curl commands có thể tải file từ một máy chủ từ xa. Bạn có thể thực hiện qua 2 cách::

  • -O sẽ lưu file trong cùng thư mục hiện hành với tên file giống với tên file từ xa.
  • -o giúp bạn chọn tên file và đường dẫn của file

Bạn có thể tham khảo ví dụ bên dưới:

curl -O http://testdomain.com/testfile.tar.gz

Lệnh trên sẽ lưu file thành testfile.tar.gz.

curl -o newtestfile.tar.gz http://testdomain.com/testfile.tar.gz

Lệnh trên sẽ lưu file thành newtestfile.tar.gz.

Nếu vì lý do gì đó, việc tải file thất bạn, bạn có thể resume bằng lệnh curl. Bạn dùng lệnh sau::

curl -C - -O  http://testdomain.com/testfile.tar.gz

Với curl, bạn có cũng có thể tải nhiều file bằng lệnh sau:

curl -O http://testdomain.com/testfile.tar.gz -O http://mydomain.com/myfile.tar.gz

Nếu muốn tải nhiều file từ nhiều URL khác nhau được liệt kê trong một file text. Curl command có thể kết hợp với xargs để tải nhiều URLs khác nhau.

Ví dụ, nếu bạn có file allUrls.txt chứa nhiều URL cần tải về, vậy bạn dùng lệnh sau để tải toàn bộ các link trong file đó:

xargs –n 1 curl -O < allUrls.txt

Curl Commands cho Http

Curl cũng có thể được dùng dùng như là một server proxy. Nếu bạn có server đang nghe trên port 8090 tại sampleproxy.com, tải file như sau:

curl -x  sampleproxy.com:8090 -U username:password -O http:// testdomain.com/testfile.tar.gz

Trong ví dụ trên, bạn có thể bỏ qua -U username:password nếu proxy không cần chứng thực.

Một HTTP request thông thường sẽ luôn chứa header. HTTP header gửi những thông tin công thêm này vào web server từ a bên cạnh yêu cầu thực. Công cụ lập trình trên trình duyệt có thể kiểm tra được thông tin header, nhưng bạn cũng có thể xác thực nó bằng lệnh curl.

Bên dưới là ví dụ cách lấy thông tin header từ một website bằng curl:

curl -I www.testdomain.com

Với curl, bạn còn dùng được request GETPOST. GET sẽ dùng như sau:

curl http://mydomain.com

Ví dụ POST request thì như sau:

curl –data “text=Hello” https://myDomain.com/firstPage.jsp

Tại đó, đoạn text=Hello là tham số của POST. Hành động này cũng tương tự như sử dụng HTML form.

Bạn có thể xác định nhiều phương pháp HTTP trong một lệnh curl duy nhất, bằng tùy chọn -next: 

curl –data “text=Hello” https://myDomain.com/firstPage.jsp --next https://myDomain.com/displayResult.jsp

Nó bao gồm POST đi theo GET request.

Mỗi HTTP request sẽ có một user agent được gửi như một phần của request. Nó định dạng thông tin trình duyệt của máy client. Mặc định, curl request chứa curl và phiên bản của nó làm thông tin của user agent. Ví dụ như output của nó làL

“GET / HTTP/1.1” 200 “_” ”curl/7/29/0”

Bạn có thể đổi thông tin mặc định của user agent bằng lệnh bên dưới:

curl -I http://mydomain.com –-user-agent “My new Browser”

Kết quả giờ sẽ như sau:

“GET / HTTP/1.1” 200 “_” ”My new Browser”

Curl cho Cookies

Curl command cũng có thể dùng để kiểm tra cookies nào được tải trên URL. Vì vậy, nếu bạn truy cập https://www.samplewebsite.com, sau đó output một file, lưu cookies và truy cập chúng sử dụng cat hay VM editor.

Bên dưới là mẫu lệnh này:

curl --cookie-jar Mycookies.txt https://www.samplewebsite.com /index.html -O

Tương tự, nếu bạn có cookies trong file, bạn có thể gửi nó lên website. Ví dụ lệnh để gửi cookies là:

curl --cookie Mycookies.txt https://www. samplewebsite.com

Curl cho FTP

Curl command hỗ trợ FTP! Bạn dùng chúng để tải file từ máy chủ từ xa.

curl -u username:password -O ftp://sampleftpserver/testfile.tar.gz

Trong lệnh ở trên, ftp://sampleftpserver là FTP server chấp nhật kết nối. Username và password có thể bỏ qua nếu như server hỗ trợ anonymous FTP (FTP ẩn danh). Gõ lệnh và xem tiến trình xảy ra

Bạn có thể upload file bằng lệnh sau:

curl -u username:password -T testfile.tar.gz ftp://sampleftpserver

Cũng vậy, chúng ta có thể bỏ qua username và password để kết nối ẩn danh

Giới hạn output của Curl

Khi sử dụng curl, bạn không biết được output lớn đến đâu. Để hạn chế sử dụng băng thông lớn, hãy giới hạn curl output lại để tránh bị nghẽn mạng.

Lệnh bên dưới sẽ giới hạn băng thông xuống 100K:

curl --limit-rate 100K http://testdomain.com/samplefile.tar.gz -O

Lời kết

Curl rất mạnh và được dùng phổ biến khắp nơi. Nó hữu dụng nhất khi bạn hay sử dụng dòng lệnh. Nó có nhiều lựa chọn khi thực hiện lệnh và hỗ trợ rất nhiều giao thức. Đây là lý do lớn để cần phải biết command này~

Hãy nhớ, nếu bạn muốn tìm hiểu lệnh này sâu hơn, chỉ cần xem qua hướng dẫn tài liệu của nó khi đang dùng bất kỳ bản Unix nào bằng lệnh

man curl

Chúng tôi hy vọng bài hướng dẫn này có thể giúp bạn hiểu rõ curl là gì, nó mạnh mẽ như thế nào. Và quan trọng nhất! Biết cách sử dụng curl command! Ngoài ra, nếu bạn có điều gì muốn chia sẽ, đừng quên để lại bình luận bên dưới!

Author
Tác giả

Hai G.

Hải G. là chuyên gia quản lý, vận hành các dịch vụ website. Anh có nhiều năm kinh nghiệm về VPS, Hosting, technical SEO, CMS. Đặc biệt yêu thích WordPress và đã dùng nó hơn 5 năm nay. Sở thích của anh là đọc, viết blog, đi du lịch và tư vấn cho các bạn trẻ khởi nghiệp.