Lệnh curl trong Linux

Giới thiệu

Trong lab này, chúng ta sẽ khám phá lệnh curl mạnh mẽ, một công cụ đa năng để truyền dữ liệu qua nhiều giao thức khác nhau, bao gồm HTTP, FTP và hơn thế nữa. Chúng ta sẽ bắt đầu bằng cách giới thiệu lệnh curl và kiểm tra phiên bản của nó, sau đó chuyển sang tìm nạp nội dung trang web và tải xuống các tệp bằng curl. Lab này nhằm cung cấp các ví dụ thực tế và chứng minh khả năng của lệnh curl, một công cụ thiết yếu cho các tác vụ mạng và giao tiếp.

Lab bao gồm các bước sau:

  1. Giới thiệu về lệnh curl
  2. Tìm nạp nội dung trang web bằng curl
  3. Tải xuống tệp bằng curl

Giới thiệu về lệnh curl

Trong bước này, chúng ta sẽ khám phá lệnh curl, một công cụ mạnh mẽ để truyền dữ liệu bằng nhiều giao thức khác nhau, bao gồm HTTP, FTP và hơn thế nữa. Curl là một công cụ dòng lệnh đa năng cho phép bạn tương tác với các máy chủ web, tải xuống tệp và thực hiện các tác vụ liên quan đến mạng khác nhau.

Đầu tiên, hãy kiểm tra phiên bản curl được cài đặt trong container Ubuntu 22.04 Docker của chúng ta:

curl --version

Ví dụ đầu ra:

curl 7.81.0 (x86_64-pc-linux-gnu) libcurl/7.81.0 OpenSSL/3.0.2 zlib/1.2.11 brotli/1.0.9 libidn2/2.3.2 libpsl/0.21.0 (+libidn2-2.3.2) libstdc++/9.4.0 libssh/0.9.6/openssl/zlib nghttp2/1.47.0 librtmp/2.3
Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS brotli GSS-API HTTP2 HTTPS-proxy IPv6 Kerberos Largefile libz NTLM NTLM_WB PSL SPNEGO SSL TLS-SRP UnixSockets

Như bạn có thể thấy, đầu ra hiển thị phiên bản của curl, các giao thức mà nó hỗ trợ và các tính năng khác nhau mà nó cung cấp.

Tiếp theo, hãy thử sử dụng curl để tìm nạp nội dung của một trang web. Chúng ta sẽ sử dụng ví dụ về việc tìm nạp trang chủ của dự án curl:

curl https://curl.se

Ví dụ đầu ra:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>curl - transfer data with URL</title>
...

Đầu ra hiển thị nội dung HTML của trang chủ dự án curl, mà curl đã tìm nạp và hiển thị trong terminal.

Trong bước tiếp theo, chúng ta sẽ khám phá các trường hợp sử dụng nâng cao hơn của lệnh curl, chẳng hạn như tải xuống tệp và tương tác với các giao thức khác nhau.

Tìm nạp nội dung trang web bằng curl

Trong bước này, chúng ta sẽ học cách sử dụng lệnh curl để tìm nạp nội dung của các trang web.

Đầu tiên, hãy thử tìm nạp lại trang chủ của dự án curl, nhưng lần này, chúng ta sẽ sử dụng tùy chọn -o để lưu đầu ra vào một tệp:

curl -o curl_homepage.html https://curl.se

Ví dụ đầu ra:

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 31748  100 31748    0     0  93644      0 --:--:-- --:--:-- --:--:-- 93644

Tùy chọn -o chỉ định tên tệp đầu ra, trong trường hợp này là curl_homepage.html. Đầu ra hiển thị tiến trình tải xuống, bao gồm tổng kích thước của tệp, tốc độ tải xuống và thời gian cần thiết để hoàn thành quá trình tải xuống.

Bạn cũng có thể sử dụng tùy chọn -s (silent) để ngăn chặn đầu ra tiến trình và chỉ hiển thị nội dung đã tìm nạp:

curl -s https://curl.se

Ví dụ đầu ra:

<!doctype html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>curl - transfer data with URL</title>
    ...
  </head>
</html>

Tùy chọn -s làm cho đầu ra ngắn gọn hơn, vì nó chỉ hiển thị nội dung đã tìm nạp mà không có thông tin tiến trình.

Một tùy chọn hữu ích khác là -I (hoặc --head), cho phép bạn chỉ tìm nạp các header của một trang web, mà không cần nội dung thực tế:

curl -I https://curl.se

Ví dụ đầu ra:

HTTP/1.1 200 OK
Server: nginx/1.14.0 (Ubuntu)
Date: Wed, 19 Apr 2023 06:34:26 GMT
Content-Type: text/html
Content-Length: 31748
Last-Modified: Fri, 07 Apr 2023 14:37:54 GMT
Connection: close
ETag: "64306f62-7b0c"
Accept-Ranges: bytes

Đầu ra hiển thị các header HTTP, có thể hữu ích để hiểu phản hồi của máy chủ và khắc phục mọi sự cố.

Trong bước tiếp theo, chúng ta sẽ khám phá cách sử dụng curl để tải xuống các tệp từ web.

Tải xuống tệp bằng curl

Trong bước này, chúng ta sẽ học cách sử dụng lệnh curl để tải xuống các tệp từ web.

Hãy bắt đầu bằng cách tải xuống một tệp từ trang web của dự án curl. Chúng ta sẽ sử dụng tùy chọn -O để lưu tệp với cùng tên với tệp từ xa:

curl -O https://curl.se/download/curl-7.81.0.tar.gz

Ví dụ đầu ra:

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 3.8M  100 3.8M    0     0  6901k      0 --:--:-- --:--:-- --:--:-- 6901k

Tùy chọn -O cho curl biết lưu tệp với cùng tên với tệp từ xa, trong trường hợp này là curl-7.81.0.tar.gz.

Bạn cũng có thể sử dụng tùy chọn -o để chỉ định một tên tệp khác:

curl -o curl_source.tar.gz https://curl.se/download/curl-7.81.0.tar.gz

Ví dụ đầu ra:

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 3.8M  100 3.8M    0     0  6901k      0 --:--:-- --:--:-- --:--:-- 6901k

Trong trường hợp này, tệp đã tải xuống sẽ có tên là curl_source.tar.gz.

Bạn cũng có thể sử dụng curl để tải xuống các tệp từ các máy chủ FTP. Dưới đây là một ví dụ về việc tải xuống một tệp từ máy chủ FTP:

curl -O ftp://ftp.example.com/file.zip

Ví dụ đầu ra:

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 12.3M  100 12.3M    0     0  6901k      0 --:--:-- --:--:-- --:--:-- 6901k

Trong trường hợp này, tệp file.zip sẽ được tải xuống từ máy chủ FTP ftp.example.com.

Hãy nhớ thay thế các URL và tên tệp bằng những URL và tên tệp bạn muốn tải xuống.

Trong bước tiếp theo, chúng ta sẽ xem lại những gì chúng ta đã học về lệnh curl và các ứng dụng thực tế của nó.

Tổng kết

Trong lab này, chúng ta đã tìm hiểu về lệnh curl mạnh mẽ, một công cụ đa năng để truyền dữ liệu bằng nhiều giao thức khác nhau. Chúng ta bắt đầu bằng cách khám phá phiên bản và khả năng của lệnh curl được cài đặt trên container Ubuntu 22.04 Docker của chúng ta. Sau đó, chúng ta đã sử dụng curl để tìm nạp nội dung của trang chủ dự án curl, bằng cách hiển thị đầu ra trong terminal và bằng cách lưu nó vào một tệp. Cuối cùng, chúng ta đã thảo luận về cách sử dụng curl để tải xuống các tệp, đây là một trường hợp sử dụng phổ biến cho lệnh này.

400+ câu lệnh phổ biến trong Linux