Android

Lệnh Curl trong linux với các ví dụ

Linux Essentials: Curl Fundamentals

Linux Essentials: Curl Fundamentals

Mục lục:

Anonim

curl là một tiện ích dòng lệnh để truyền dữ liệu từ hoặc đến một máy chủ được thiết kế để hoạt động mà không có sự tương tác của người dùng. Với curl , bạn có thể tải xuống hoặc tải lên dữ liệu bằng một trong các giao thức được hỗ trợ bao gồm HTTP, HTTPS, SCP, SFTP và FTP. curl cung cấp một số tùy chọn cho phép bạn tiếp tục chuyển, giới hạn băng thông, hỗ trợ proxy, xác thực người dùng và nhiều hơn nữa.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách sử dụng công cụ curl thông qua các ví dụ thực tế và giải thích chi tiết về các tùy chọn curl phổ biến nhất.

Cài đặt Curl

Gói curl được cài đặt sẵn trên hầu hết các bản phân phối Linux hiện nay.

Để kiểm tra xem gói Curl có được cài đặt trên hệ thống của bạn không, hãy mở giao diện điều khiển của bạn, nhập curl và nhấn enter. Nếu bạn đã cài đặt curl , hệ thống sẽ in curl: try 'curl --help' or 'curl --manual' for more information . Nếu không, bạn sẽ thấy một cái gì đó như curl command not found .

Nếu curl không được cài đặt, bạn có thể dễ dàng cài đặt nó bằng trình quản lý gói phân phối.

Cài đặt Curl 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 Curl

Cú pháp của lệnh curl như sau:

curl

Ở dạng đơn giản nhất, khi được gọi mà không có bất kỳ tùy chọn nào, curl sẽ hiển thị tài nguyên được chỉ định cho đầu ra tiêu chuẩn.

Ví dụ: để truy xuất trang chủ example.com bạn sẽ chạy:

curl example.com

Lệnh sẽ in mã nguồn của trang chủ example.com trong cửa sổ terminal của bạn.

Nếu không có giao thức nào được chỉ định, curl cố gắng đoán giao thức bạn muốn sử dụng và nó sẽ mặc định là HTTP .

Lưu kết quả vào một tệp

Để lưu kết quả của lệnh curl , hãy sử dụng tùy chọn -o hoặc -O .

Chữ thường -o lưu tệp với tên tệp được xác định trước, trong ví dụ dưới đây là vue-v2.6.10.js :

curl -o vue-v2.6.10.js

Uppercase -O lưu tệp với tên tệp gốc của nó:

curl -O

Tải xuống nhiều tệp

Để tải xuống nhiều tệp cùng một lúc, hãy sử dụng nhiều tùy chọn -O , theo sau là URL tới tệp bạn muốn tải xuống.

Trong ví dụ sau, chúng tôi đang tải xuống tệp iso Arch Linux và Debian:

curl -O http://mirrors.edge.kernel.org/archlinux/iso/2018.06.01/archlinux-2018.06.01-x86_64.iso \ -O

Tiếp tục tải xuống

Bạn có thể tiếp tục tải xuống bằng cách sử dụng tùy chọn -C - . Điều này hữu ích nếu kết nối của bạn bị rớt trong quá trình tải xuống một tệp lớn và thay vì bắt đầu tải xuống từ đầu, bạn có thể tiếp tục tải xuống trước đó.

Ví dụ: nếu bạn đang tải xuống tệp iso Ubuntu 18.04 bằng lệnh sau:

curl -O

và đột nhiên kết nối của bạn bị rớt, bạn có thể tiếp tục tải xuống bằng:

curl -C - -O

Nhận các tiêu đề HTTP của một URL

Các tiêu đề HTTP là các cặp giá trị khóa được phân tách bằng dấu hai chấm chứa thông tin như tác nhân người dùng, loại nội dung và mã hóa. Các tiêu đề được truyền giữa máy khách và máy chủ với yêu cầu hoặc phản hồi.

Sử dụng tùy chọn -I để chỉ tìm nạp các tiêu đề HTTP của tài nguyên đã chỉ định:

curl -I --http2

Tùy chọn -L hướng dẫn curl theo bất kỳ chuyển hướng nào cho đến khi đến đích cuối cùng:

curl -L google.com

Thay đổi tác nhân người dùng

Đôi khi, khi tải xuống một tệp, máy chủ từ xa có thể được đặt để chặn Tác nhân người dùng Curl hoặc trả về các nội dung khác nhau tùy thuộc vào thiết bị và trình duyệt của khách truy cập.

Trong các tình huống như thế này để mô phỏng một trình duyệt khác, hãy sử dụng tùy chọn -A .

Ví dụ: để mô phỏng Firefox 60 bạn sẽ sử dụng:

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

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

Tùy chọn --limit-rate cho phép bạn giới hạn tốc độ truyền dữ liệu. Giá trị có thể được biểu thị bằng byte, kilobyte với hậu tố k , megabyte với hậu tố m và gigabyte với hậu tố g .

Trong ví dụ sau, curl sẽ tải xuống tệp nhị phân Go và giới hạn tốc độ tải xuống ở mức 1 mb:

curl --limit-rate 1m -O

Tùy chọn này rất hữu ích để ngăn chặn curl tiêu thụ tất cả băng thông có sẵn.

Truyền tệp qua FTP

Để truy cập máy chủ FTP được bảo vệ bằng curl , hãy sử dụng tùy chọn -u và chỉ định tên người dùng và mật khẩu như dưới đây:

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

Sau khi đăng nhập, lệnh liệt kê tất cả các tệp và thư mục trong thư mục chính của người dùng.

Bạn có thể tải xuống một tệp từ máy chủ FTP bằng cú pháp sau:

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

Để tải tệp lên máy chủ FTP, hãy sử dụng -T theo sau là tên của tệp bạn muốn tải lên:

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

Gửi bánh quy

Đôi khi bạn có thể cần thực hiện một yêu cầu HTTP với các cookie cụ thể để truy cập tài nguyên từ xa hoặc để gỡ lỗi một vấn đề.

Theo mặc định, khi yêu cầu tài nguyên với curl , không có cookie nào được gửi hoặc lưu trữ.

Để gửi cookie đến máy chủ, hãy sử dụng khóa chuyển đổi -b theo sau là tên tệp chứa cookie hoặc chuỗi.

Ví dụ: để tải xuống tệp vòng / phút JDK của Oracle Java jdk-10.0.2_linux-x64_bin.rpm bạn sẽ cần phải vượt qua một cookie có tên oraclelicense với giá trị a :

curl -L -b "oraclelicense=a" -O

Sử dụng proxy

curl hỗ trợ các loại proxy khác nhau, bao gồm HTTP, HTTPS và SOCKS. Để truyền dữ liệu qua máy chủ proxy, hãy sử dụng tùy chọn -x ( --proxy ), theo sau là URL proxy.

Lệnh sau tải xuống tài nguyên đã chỉ định bằng proxy trên 192.168.44.1 cổng 8888 :

curl -x 192.168.44.1:8888

Nếu máy chủ proxy yêu cầu xác thực, hãy sử dụng tùy chọn -U ( --proxy-user ) theo sau là tên người dùng và mật khẩu được phân tách bằng dấu hai chấm ( user:password ):

curl -U username:password -x 192.168.44.1:8888

Phần kết luận

curl là một công cụ dòng lệnh cho phép bạn truyền dữ liệu từ hoặc đến một máy chủ từ xa. Nó rất hữu ích để khắc phục sự cố, tải xuống tệp và hơn thế nữa.

Các ví dụ hiển thị trong hướng dẫn này rất đơn giản, nhưng thể hiện các tùy chọn curl được sử dụng nhiều nhất và có nghĩa là để giúp bạn hiểu cách hoạt động của lệnh curl .

Để biết thêm thông tin về curl hãy truy cập trang Tài liệu Curl.

thiết bị đầu cuối cuộn tròn