Hướng dẫn Linux

Tổng hợp một số lệnh về cURL

A. Giới thiệu về cURL

cURL là viết tắt của Client URL, được dùng để kiểm tra việc kết nối từ URL và cho phép truyền dữ liệu. Trên Linux thì nó thường được dùng chủ yếu để tải các file từ máy chủ web về máy tính.
Trong lập trình web, cURL khá quan trọng. Với cURL, bạn có thể đăng nhập các trang web bất kỳ,…
Các giao thức mà cURL hỗ trợ như:
  • HTTP(S)
  • FTP(S)
  • IMAP(S)
  • POP3(S)
  • SMB(S)
  • LDAP(S)
  • SMTP(S)
  • SFTP
  • SCP
  • TELNET
  • GOPHER
Ở trên là các giao thức quan trọng mà cURL hỗ trợ. Ngoài ra nó cũng có hỗ trợ một số giao thức kém phổ biến hơn

B. Cài đặt cURL

Trước khi chúng ta bắt đầu thì máy tính của bạn phải cài cURL trước để các lệnh phía bên dưới có thể hoạt động.
Để cài đặt cURL cho Linux, ta có thể dùng các câu lệnh sau
sudo apt-get update
sudo apt-get install curl libcurl3

C. Một số câu lệnh với cURL

1. Tải file từ remote server

curl -O http://example.com/file.zip
Lệnh trên sẽ giúp bạn tải file file.zip về máy và lưu ở thư mục hiện tại bạn đang làm việc.
curl -o testing.zip http://example.com/file.zip
Lệnh trên sẽ tải và đổi tên file file.zip thành testing.zip. Bạn cũng có thể lưu file này ở thư mục khác bằng cách đổi testing.zip thành ten-thu-muc/testing.zip, với đường dẫn đó thì file tải về sẽ được lưu thành testing.zip trong thư mục con ten-thu-muc trong thư mục bạn đang làm việc.
Nếu trong quá trình tải mà xảy ra sự cố dẫn đến tải thất bại, bạn có thể resume bằng câu lệnh sau
curl -C – -O http://example.com/file.zip
Bạn cũng có thể tải nhiều file cùng một lúc bằng
curl -O http://example.com/file1.zip -O http://example.com/file2.zip

2. Câu lệnh cho HTTP

Một ví dụ khác, cURL có thể được sử dụng như proxy để tải file.
curl -x sampleproxy.com:8090 -U username:password -O http://example.com/file.zip
Lưu ý: Nếu proxy không cần chứng thực thì bạn không cần nhập -U username:password cũng được

Để kiểm tra Header của một website, ta dùng lệnh
curl -I www.example.com

Ngoài ra, bạn cũng có thể gửi request thông qua 2 method GET và POST lần lượt bằng 2 câu lệnh sau:
curl http://example.com/testing.php?gettesting=true
curl -data “posttesting=true” http://example.com/testing.php
Trong đó: gettesting=true là tham số của GET, còn posttesting=true là tham số của POST.

Ngoài ra, bạn cũng có thể request cả GET và POST trong cùng một câu lệnh của cURL bằng câu lệnh sau:
curl –data “posttesting=true” http://example.com/testing.php –next http://example.com/testing.php?gettesting=true

3. Lệnh cURL dành cho Cookie

Để lưu cookie của website bất kỳ:
curl –cookie-jar cookies.txt https://www.example.com/index.html -O

Bạn hoàn toàn có thể dùng cookie đã lưu và áp dụng cho website mà bạn truy cập đến bằng lệnh sau:
curl –cookie cookies.txt https://www.example.com

Đặc biệt, để đăng nhập một website và truy cập website đó với quyền user bạn đã đăng nhập, dùng lần lượt 2 câu lệnh sau:
curl –user user:pass –cookie-jar cookies.txt https://example.com/login.php
user:pass => user là tên đăng nhập còn pass là mật khẩu tài khoản trên website đó.
curl –cookie cookies.txt https://example.com/
Và với câu lệnh trên, bạn đã truy cập website với quyền của tài khoản user bên trên.

4. Lệnh cURL dành cho FTP

Đối với lệnh này, nó chủ yếu được dùng để tải file từ remote server về, nhưng ở đây là dùng cổng FTP
curl -u username:password -O ftp://example.com/file.zip

Nếu webserver cho phép truy cập FTP ẩn danh, bạn có thể không cần thêm username:password cũng được
Đối với FTP, thông qua cURL ta có thể upload file lên Server qua câu lệnh

curl -u username:password -T file.zip ftp://example.com/

5. Đăng nhập và gửi Email từ Gmail bằng cURL

Bạn có thể dùng câu lệnh bên dưới để gửi thư điện tử bằng tài khoản gmail qua cURL:
curl –url ‘smtps://smtp.gmail.com:465’ –ssl-reqd \
–mail-from ‘tendangnhap@gmail.com’ –mail-rcpt ‘nguoinhan@example.com’ \
–upload-file mail.txt –user ‘tendangnhap@gmail.com:password’ –insecure
Nội dung của file mail.txt như sau:
From: “Tên” <tendangnhap@gmail.com>
To: “Lorem Ipsum” <nguoinhan@example.com>
Subject: Test gửi mail qua cURL

Xin chào, Thư này được gửi bằng tài khoản gmail của tôi qua cURL.
Bye!
Lưu ý quan trọng: Bạn phải bật Cho phép ứng dụng kém an toàn trước khi sử dụng lệnh bên trên qua liên kết sau: https://myaccount.google.com/lesssecureapps

6. Giới hạn Output của cURL

Đôi khi, việc không biết output của cURL một số trường hợp có thể gây khó khăn cho chúng ta như máy tải chậm, kẹt mạng,… Và để hạn chế tối đa tình trạng trên, chúng ta có thể giới hạn output cURL qua lệnh:
curl –limit-rate 100K http://example.com/file.zip -O
Với lệnh trên, file tải xuống sẽ bị giới hạn lượng băng thông còn 100KB/s.

Tổng hợp bởi Tiền Minh Vy

Visits: 1093