NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
17/05/2024
Lượt xem

Cách sử dụng lệnh Curl trong Linux đơn giản nhất

17/05/2024
8 phút đọc
Lượt xem

Đánh giá

5/5 - (194 bình chọn)

Lệnh curl trong Linux là một công cụ command-line dùng để chuyển dữ liệu giữa các server mà không cần tương tác của người dùng. Curl hỗ trợ nhiều giao thức tiêu chuẩn hiện nay như HTTP, HTTPS, SCP, SFTP và FTP. Bài viết này sẽ hướng dẫn các trường hợp sử dụng lệnh curl cơ bản nhất.

Cài đặt curl trong Linux

Lệnh curl cung cấp nhiều option để truyền dữ liệu, giới hạn băng thông, hỗ trợ proxy, xác thực người dùng,… Lệnh này được cài đặt sẵn trên hầu hết các bản phân phối Linux hiện nay.

Cài đặt curl trong Linux
Cài đặt lệnh curl trong Linux

Để kiểm tra xem package curl đã được cài đặt chưa, chỉ cần mở console rồi nhập curl. Nếu curl đã được cài đặt thì màn hình sẽ hiển thị curl: try 'curl --help' or 'curl --manual' for more information. Ngược lại, thông báo curl command not found cho biết rằng lệnh chưa được cài đặt.

  • Cài đặt trên Ubuntu và Debian
sudo apt update sudo apt install curl
  • Cài đặt Curl trên CentOS và Fedora
sudo yum install curl

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

Lệnh curl có cú pháp chung như sau:

curl [options] [URL...]

Nếu gọi lệnh mà không truyền thêm option nào thì lệnh curl sẽ hiển thị tài nguyên được chỉ định ở định dạng output tiêu chuẩn. Ví dụ bạn cần truy xuất trang chủ example.com:

curl example.com

Khi đó lệnh sẽ in mã nguồn của trang example.com lên cửa sổ terminal. Nếu không chỉ định giao thức nào thì curl sẽ sử dụng HTTP làm mặc định.

Lưu output vào một file

Để lưu lại kết quả của lệnh curl, bạn có thể truyền option -o hoặc -0 vào lệnh. Trong đó, -o dùng để lưu file với một tên file cho sẵn. Ví dụ bạn muốn lưu vào file có tên vue-v2.6.10.js:

curl -o vue-v2.6.10.js https://cdn.jsdelivr.net/npm/vue/dist/vue.js

Còn option -0 sẽ lưu file với tên file gốc:

curl -O https://cdn.jsdelivr.net/npm/vue/dist/vue.js

Download nhiều file cùng lúc bằng curl

Nếu muốn download nhiều file cùng lúc, bạn có thể dùng option -0 kèm theo URL của file cần download. Ở đoạn code dưới đây, bạn sẽ dùng curl để download file iso của Arch Linux và Debian:

curl -O https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.4.0-amd64-netinst.iso

Tiếp tục quá trình download

Bạn có thể tiếp tục quá trình download bằng option -C -. Đây là một công cụ hữu ích nếu cần download các file lớn mà kết nối mạng lại không ổn định.

Ví dụ bạn cần download file iso của Ubuntu 18.04 bằng lệnh curl:

curl -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso

Nếu chẳng may kết nối bị ngắt quãng thì bạn có thể dùng lệnh sau để tiếp tục quá trình download thay vì phải tải lại từ đầu:

curl -C - -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso

Lấy HTTP Header của URL

Các HTTP header là những cặp key-value được phân tách nhau bằng dấu hai chấm, chứa các thông tin như user agent, loại nội dung và mã hóa (encoding). Các header được truyền giữa client và server với request hoặc response. Bạn có thể dùng option -I để nạp các HTTP header của một tài nguyên như sau:

curl -I --http2 https://www.ubuntu.com/
Dùng option -I để nạp các HTTP header của một tài nguyên
Dùng option -I để nạp các HTTP header của một tài nguyên

Kiểm tra xem website có hỗ trợ HTTP/2 không

Lệnh curl trong Linux còn cho phép bạn kiểm tra xem một URL có hỗ trợ giao thức HTTP/2 hay không bằng cách nạp HTTP header với các option -I--http2:

curl -I --http2 -s https://linuxize.com/ | grep HTTP

Trong đó, option -s yêu cầu curl chạy trong chế độ im lặng, ẩn thanh tiến độ và các thông báo lỗi:

Nếu server remote có hỗ trợ HTTP/2 thì lệnh curl sẽ trả về kết quả sau:

HTTP/2 200

Ngược lại, nếu không hỗ trợ thì bạn sẽ nhận được phản hồi là:

HTTP/1.1 200 OK

Đối với curl phiên bản 7.47.0 trở đi thì bạn không cần dùng option --http2 nữa vì HTTP/2 được bật theo mặc định cho mọi kết nối HTTPS.

Theo dõi các redirect

Theo mặc định thì curl không theo dõi các header HTTP Location. Nếu truy xuất bản không www (non-www) của google.com, bạn sẽ được tự động điều hướng đến phiên bản www:

curl google.com
Theo dõi các redirect
Theo dõi các redirect

Lệnh curl cho phép sử dụng option -L để yêu cầu Curl theo dõi bất kỳ điều hướng nào cho tới khi đến được đích:

curl -L google.com

Thay đổi user-agent

Khi download một file, đôi khi remote server có thể block Curl User-Agent hoặc trả về nội dung khác tùy theo từng thiết bị và trình duyệt. Khi đó, bạn có thể giả lập một trình duyệt khác bằng -A để tránh gặp lỗi. Ví dụ khi cần giả lập Firefox 60:

curl -A "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" https://getfedora.org/

Chỉ định tốc độ truyền tối đa

Option --limit-rate cho phép giới hạn tốc độ truyền tải dữ liệu. Giá trị có thể được biểu diễn bằng đơn vị byte, kilobyte (sử dụng hậu tố k), megabyte (hậu tố là m) hoặc gigabyte với hậu tố là g. Ở ví dụ dưới đây, bạn sẽ dùng curl để download Go binary, đồng thời giới hạn tốc độ download xuống còn 1mb:

curl --limit-rate 1m -O https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz

Option này cho phép ngăn không cho curl tiêu tốn toàn bộ băng thông.

Truyền file thông qua FTP

Để truy cập một server FTP được bảo vệ thông qua curl, bạn có thể dùng option -u và chỉ định username/password như sau:

curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/

Sau khi đăng nhập, lệnh sẽ liệt kê mọi file và thư mục trong home directory của người dùng. Bạn cũng có thể download một file duy nhất từ server FTP bằng cú pháp sau:

curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/file.tar.gz

Để upload một file lên server FTP, bạn có thể dùng option -T kèm theo tên của file muốn upload:

curl -T newfile.tar.gz -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/

Gửi cookies

Đôi khi, bạn có thể cần tạo một HTTP request với cookies xác định để truy cập tài nguyên ở xa. Theo mặc định thì cookies không được gửi hay lưu trữ khi bạn yêu cầu tài nguyên qua lệnh curl. Để gửi cookies đến server thì bạn có thể dùng option -b kèm theo tên file chứa cookies.

Ví dụ, để download file rpm của Oracle Java JDK jdk-10.0.2_linux-x64_bin.rpm, bạn cần truyền cookie có tên oraclelicense với giá trị a:

curl -L -b "oraclelicense=a" -O http://download.oracle.com/otn-pub/java/jdk/10.0.2+13/19aef61b38124481863b1413dce1855f/jdk-10.0.2_linux-x64_bin.rpm

Sử dụng proxies

curl hỗ trợ nhiều kiểu proxy khác nhau, trong đó có cả HTTP, HTTPS và SOCKS. Để truyền dữ liệu qua một server proxy, bạn có thể dùng option -x (--proxy) kèm theo URL của proxy. Ví dụ, lệnh sau dùng để download tài nguyên được chỉ định bằng một proxy trên 192.168.44.1, cổng 8888:

curl -x 192.168.44.1:8888 http://linux.com/

Nếu server proxy yêu cầu xác thực thì bạn có thể dùng option -U (--proxy-user) kèm theo username/password, phân tách nhau bởi dấu hai chấm:

curl -U username:password -x 192.168.44.1:8888 http://linux.com/

Ngoài ra, bạn có thể tham khảo thêm một số lệnh trong Linux qua các bài viết sau:

Lời kết

Curl là một công cụ command-line mạnh mẽ và đa năng. Bên cạnh mục đích truyền dữ liệu đến các host từ xa, lệnh curl trong Linux còn có thể dùng để sửa lỗi, download file,… Hy vọng bài viết giúp bạn hiểu hơn về cách sử dụng lệnh Curl trong Linux. Nếu có bất kỳ thắc mắc nào hãy để lại bình luận ngay bên dưới, Vietnix sẽ giải đáp nhanh nhất!

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG