Lệnh curl trong Linux là một cách tuyệt vời để tự động hóa quá trình tải lên và tải xuống dữ liệu từ máy chủ. Curl hỗ trợ tất cả các giao thức quan trọng như HTTP, HTTPS, SFTP, FTP, v.v.
Các tính năng như tạm dừng và tiếp tục truyền, giới hạn băng thông, hỗ trợ proxy và xác thực người dùng làm cho nó trở thành một tiện ích dòng lệnh hoàn hảo để truyền dữ liệu.
Hãy cùng FUNiX đi sâu và khám phá curl là gì và sử dụng nó như thế nào.
1. Lệnh curl là gì?
Curl ban đầu được phát triển để tự động tải xuống tỷ giá tiền tệ từ một trang web theo định kỳ. Sự phổ biến của nó tăng theo cấp số nhân khi mọi người bắt đầu sử dụng các ứng dụng rộng rãi của nó.
Curl là một trong những dự án mã nguồn mở lâu đời và phổ biến nhất trên thế giới. Tên của nó là viết tắt của Client URL, và được sử dụng trong vô số hệ thống trên khắp thế giới. Nó được sử dụng trong nhiều ứng dụng khác nhau như phát triển web và kiểm tra lỗi.
Nhờ có curl, các nhà phát triển không cần phải nhập các lệnh theo cách thủ công; họ có thể gói chúng thành các tập lệnh (script) và sử dụng chúng để tự động hóa các hoạt động phức tạp. Dưới đây là một số ví dụ về cách sử dụng curl.
2. Cài đặt curl trên Linux
Mặc dù gói này được cài đặt sẵn trên hầu hết các bản phân phối Linux, bạn có thể dễ dàng tải xuống curl nếu nó chưa được cài đặt trên máy của bạn bằng cách sử dụng các lệnh sau.
Trên Ubuntu và Debian:
sudo apt install curl
Trên các bản phân phối dựa trên RHEL như CentOS và Fedora:
sudo yum install curl
Để cài đặt curl trên Arch Linux, hãy nhập:
sudo pacman -S curl
>>> Đọc ngay: 6 yếu tố cần xem xét khi lựa chọn một bản phân phối Linux
3. Cách sử dụng lệnh curl
Curl sử dụng cú pháp sau cho tất cả các lệnh của nó:
curl options url
trong đó options và url thay đổi tùy thuộc vào nhiệm vụ trước mắt. Curl tải xuống mã nguồn của URL, bất cứ khi nào bạn không đề cập đến tùy chọn/tác vụ. Phiên bản curl mới nhất cũng đoán giao thức – nếu nó không được đề cập trong URL – và mặc định nó thành HTTP.
Dưới đây là một số lệnh curl hữu ích để thực hiện các tác vụ chức năng khác.
3.1 Tải xuống tệp bằng curl
Bạn có thể tải xuống tài nguyên thông qua một URL được chỉ định bằng cách sử dụng curl. Lệnh này có hai cờ (flag) mà bạn có thể sử dụng; -o và -O .
- -O lưu tệp trong thư mục hiện tại với tên giống như trong máy chủ từ xa.
- -o cho phép bạn chọn tên và vị trí tệp.
Đây là một ví dụ về cả hai lệnh này:
curl -O https://cdn.jsdelivr.net/npm/vue/dist/vue.js
Tệp được tải xuống trong thư mục hiện tại, với tên ban đầu của nó như trên máy chủ từ xa.
curl -o newfile.tar.gz http://yourdomain.com/yourfile.tar.gz
Khi bạn chạy lệnh nói trên, curl sẽ tải xuống và lưu tệp dưới dạng newfile.tar.gz. Lưu ý rằng bạn sẽ phải chỉ định tên tệp và đường dẫn đến thư mục làm đầu vào.
3.2 Tiếp tục tải xuống bị gián đoạn
Quá trình tải xuống có thể bị gián đoạn do nhiều lý do, chẳng hạn như lỗi mạng hoặc liên kết hết hạn. Trong những trường hợp này, tính năng tiếp tục quá trình tải xuống bị gián đoạn sẽ giúp bạn không phải tải lại toàn bộ tệp.
Sử dụng cờ -C với một trong hai cờ -o hoặc -O để tiếp tục quá trình tải xuống bị gián đoạn.
curl -C -O http://yourdomain.com/yourfile.tar.gz
3.3 Tải xuống nhiều tệp
Không có lệnh chuyên dụng để tải xuống nhiều tệp đồng thời thông qua curl, nhưng bạn có thể sử dụng cờ -o hoặc -O nhiều lần trong cùng một lệnh để đạt được kết quả tương tự.
Ví dụ:
curl -O http://website1.com/file1.iso -O https://website2.com/file2.iso
Lệnh nói trên sẽ tải xuống đồng thời các tệp ISO từ cả hai URL trong thư mục hiện tại.
3.4 Nhận tiêu đề HTTP của một trang web
Tiêu đề HTTP chứa thông tin quan trọng như tác nhân người dùng (user agent), loại nội dung và mã hóa (encoding). Bạn có thể yêu cầu tiêu đề HTTP của một URL bằng cách sử dụng cờ I (viết hoa của i) và –http2:
curl -I --http2 https://www.ubuntu.com/
Đầu ra:
Lệnh -I hiển thị nhiều thông tin khác nhau bao gồm chi tiết phần mềm máy chủ, ngày tháng, loại nội dung, trạng thái X-cache, v.v.
3.5 Chỉ định tốc độ truyền tối đa
Việc truyền tệp thường chiếm phần lớn băng thông của bạn, hạn chế thực hiện bất kỳ tác vụ nào khác.
Để giải quyết vấn đề này, bạn có thể đặt tốc độ truyền tải tối đa cho các bản tải xuống của mình bằng cách sử dụng curl. Sử dụng phương thức (method) –limit-rate theo sau là modifier k , m hoặc g (biểu thị kilobyte, megabyte hoặc gigabyte).
Lệnh sau hạn chế tốc độ truyền xuống còn 1MBps:
curl --limit-rate 1m -O https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz
Đầu ra:
>>> Đọc ngay: Cách bắt đầu sử dụng Linux
3.6 Truyền tệp qua FTP
Bạn có thể chuyển tệp bằng Giao thức truyền tệp (File Transfer Protocol ) bằng cách truy cập bất kỳ máy chủ FTP nào bằng curl. Curl cung cấp cho bạn chức năng tải xuống và tải lên các tệp sau khi kết nối với máy chủ FTP.
Sử dụng lệnh sau để kết nối với máy chủ FTP:
curl -u username:password ftp://ftp.example.com/
… trong đó username và password là thông tin xác thực để đăng nhập vào máy chủ.
Bạn có thể tải xuống bất kỳ tệp nào từ máy chủ bằng cách chỉ định URL tệp trong lệnh sau:
curl -u username:password -O ftp://ftp.example.com/file.tar.gz
Bạn cũng có thể tải tệp lên máy chủ FTP bằng cờ -T:
curl -T newfile.tar.gz -u username:password ftp://ftp.example.com
Lệnh -T theo sau là tệp được chỉ định tải tệp đó lên máy chủ FTP.
3.7 Sử dụng proxy
Curl hỗ trợ rất nhiều proxy khác nhau như HTTPS, HTTP và SOCKS. Bạn có thể sử dụng các proxy này để truyền dữ liệu một cách an toàn bằng curl.
Sử dụng lệnh sau để thiết lập proxy trong curl:
curl -x 192.168.44.1:8888 http://linux.com/
Tùy chọn -x kết nối bạn với cổng 8888 trên máy chủ 192.168.44.1. Đảm bảo rằng bạn thay thế chi tiết proxy trong lệnh bằng proxy bạn muốn kết nối. Máy chủ proxy nói trên không yêu cầu xác thực, nhưng bạn có thể truy cập proxy được bảo vệ bằng cú pháp sau:
curl -U username:password -x 192.168.44.1:8888 http://linux.com/
Chỉ định username và password được phân tách bằng dấu hai chấm bên cạnh cờ -U .
3.8 Xem chi tiết phiên bản
Lệnh này rất hữu ích khi bạn muốn kiểm tra thông tin phiên bản của gói. Sử dụng cờ –version để xem phiên bản curl:
curl --version
Đầu ra hiển thị phiên bản curl, các giao thức và tính năng của nó.
Kết luận
Các ví dụ trong hướng dẫn này nhằm mục đích hiển thị các lệnh curl phổ biến nhất với các mã tương ứng của chúng để giúp bạn hiểu rõ hơn về lệnh curl.
>>> Nếu bạn đang có nhu cầu tìm hiểu về khóa học lập trình đi làm ngay. Hãy liên hệ với FUNiX ngay tại đây:
Cách tạo ảnh Mosaic trên Linux với Polyfoto
Cách ghi chú trong Terminal Linux với ứng dụng ghi chú tnote
Cách sử dụng lệnh wc trong Linux
Hướng dẫn cách sử dụng lsof để theo dõi file đang mở trên Linux
Vân Nguyễn
Dịch từ: https://www.makeuseof.com/what-is-curl-linux/
Bình luận (0
)