Lệnh curl trong linux là một công cụ dòng lệnh mạnh mẽ để truyền dữ liệu với các máy chủ, sử dụng nhiều giao thức khác nhau. Nó cho phép bạn tải xuống hoặc tải lên dữ liệu, kiểm tra các API và thực hiện các yêu cầu HTTP một cách dễ dàng. Với lệnh curl, bạn có thể tương tác với web từ terminal, tự động hóa các tác vụ và gỡ lỗi các vấn đề liên quan đến mạng.
```Lệnh curl trong linux là gì?
Lệnh curl trong Linux là một công cụ dòng lệnh mạnh mẽ, cho phép bạn truyền dữ liệu đến hoặc từ một máy chủ sử dụng nhiều giao thức khác nhau. Command curl in linux thường được dùng để tải xuống các tệp tin, kiểm tra API hoặc gửi dữ liệu biểu mẫu. Nó hỗ trợ các giao thức như HTTP, HTTPS, FTP, và nhiều giao thức khác, giúp bạn tương tác linh hoạt với các dịch vụ web. Với curl, bạn có thể tùy chỉnh các yêu cầu HTTP, đặt tiêu đề, và thậm chí xác thực để truy cập các tài nguyên được bảo vệ. Đây là một công cụ không thể thiếu cho các nhà phát triển web và quản trị viên hệ thống.
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 qua nhiều giao thức.
Các giao thức này bao gồm HTTP, FTP và nhiều giao thức khác nữa, rất hữu ích cho các tác vụ mạng.
Curl là một công cụ dòng lệnh linh hoạt, cho phép bạn tương tác với web server và tải file.
Đầu tiên, hãy kiểm tra phiên bản curl đã được cài đặt trong Docker container Ubuntu 22.04 của chúng ta.
curl --version
Ví dụ về kết quả:
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 thấy, kết quả hiển thị phiên bản curl, các giao thức được hỗ trợ và các tính năng khác.
Tiếp theo, hãy thử sử dụng curl để lấy nội dung của một trang web, một thao tác rất phổ biến.
Chúng ta sẽ sử dụng ví dụ về việc lấy trang chủ của dự án curl để minh họa cho việc này.
curl https://curl.se
Ví dụ về kết quả:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>curl - transfer data with URL</title>
...
Kết quả hiển thị nội dung HTML của trang chủ dự án curl, được curl lấy 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.
Các trường hợp này bao gồm tải file và tương tác với các giao thức khác nhau, rất hữu ích trong DevOps.
Lấy 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 để lấy nội dung của các trang web.
Đầu tiên, hãy thử lấy trang chủ của dự án curl một lần nữa, nhưng lần này dùng tùy chọn -o để lưu ra file:
curl -o curl_homepage.html https://curl.se
Ví dụ về đầ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 file đầ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 file, tốc độ tải và thời gian hoàn thành.
Bạn cũng có thể dùng tùy chọn -s (silent) để ẩn tiến trình và chỉ hiển thị nội dung đã lấy:
curl -s https://curl.se
Ví dụ về đầ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, chỉ hiển thị nội dung 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ỉ lấy header của trang web:
curl -I https://curl.se
Ví dụ về đầ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 HTTP header, hữu ích để hiểu phản hồi của server và khắc phục sự cố.
Trong bước tiếp theo, chúng ta sẽ khám phá cách sử dụng curl để tải file từ web.
Tải xuống Tệp bằng curl
Trong bước này, chúng ta sẽ tìm hiểu cách sử dụng lệnh curl để tải tệp từ trên mạng xuống.
Hãy bắt đầu bằng việc tải một tệp từ trang web của dự án curl. Chúng ta sẽ dùng tùy chọn -O để lưu tệp với cùng tên:
curl -O https://curl.se/download/curl-7.81.0.tar.gz
Ví dụ về đầ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 yêu cầu curl lưu tệp với tên giống như tệp gốc, ở đâ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 cho tệp tải xuống:
curl -o curl_source.tar.gz https://curl.se/download/curl-7.81.0.tar.gz
Ví dụ về đầ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ể dùng curl để tải tệp từ các máy chủ FTP. Dưới đây là một ví dụ về việc tải tệp từ máy chủ FTP:
curl -O ftp://ftp.example.com/file.zip
Ví dụ về đầ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ì đã học về lệnh curl và các ứng dụng thực tế của nó.
Kết luận cho linux curl command
Vậy là bạn đã có cái nhìn tổng quan về lệnh curl trong Linux rồi đấy! Hy vọng hướng dẫn này giúp bạn tự tin hơn khi sử dụng công cụ mạnh mẽ này. Linux curl command thực sự rất linh hoạt, cho phép bạn tải dữ liệu, kiểm tra API, và làm nhiều việc khác nữa. Đừng ngại thử nghiệm các tùy chọn khác nhau để khám phá hết tiềm năng của nó. Hãy nhớ rằng, thực hành là chìa khóa để thành thạo bất kỳ công cụ nào. Chúc bạn thành công trên hành trình khám phá thế giới dòng lệnh Linux! Cứ thoải mái tìm hiểu thêm các tài liệu khác để nâng cao kiến thức của mình nhé. Chắc chắn bạn sẽ thấy curl là một công cụ vô cùng hữu ích đấy.