Thursday, November 21, 2024

Linux curl & wget

-

Cả hai lệnh curlwget đều được sử dụng để tải xuống file từ mạng. Tuy nhiên, chúng có một số điểm khác biệt về tính năng và cú pháp.

1. Curl

Lệnh curl được sử dụng để tải các file từ các máy chủ web hoặc FTP và hiển thị nội dung trên màn hình. Nó có thể được sử dụng để tải các file văn bản, hình ảnh, video, file nén, file JSON và nhiều loại file khác. Dưới đây là danh sách các tùy chọn phổ biến của lệnh curl trong Linux:

  • -o, --output <file>: lưu đầu ra vào file thay vì hiển thị trên terminal.
  • -O, --remote-name: lưu tập tin tải xuống với tên gốc được đặt bởi máy chủ từ xa.
  • -s, --silent: không hiển thị thông tin màn hình, chỉ hiển thị kết quả.
  • -I, --head: chỉ yêu cầu tiêu đề phản hồi từ máy chủ.
  • -H, --header <header>: bổ sung tiêu đề HTTP trong yêu cầu.
  • -d, --data <data>: gửi dữ liệu như một chuỗi được đặt trong yêu cầu.
  • -F, --form <name=content>: gửi dữ liệu dạng form trong yêu cầu.
  • -X, --request <command>: gửi yêu cầu với phương thức được chỉ định (GET, POST, PUT, DELETE, …).
  • -u, --user <user:password>: cung cấp tên người dùng và mật khẩu để xác thực trên máy chủ.
  • -k, --insecure: bỏ qua các cảnh báo bảo mật, chấp nhận các chứng chỉ không hợp lệ.
  • -L, --location: tự động chuyển hướng đến vị trí mới.
  • -c, --cookie <name=value>: thêm cookie vào yêu cầu.
  • -b, --cookie-jar <file>: lưu trữ cookie vào file thay vì hiển thị trên terminal.
  • -A, --user-agent <agent-string>: thay đổi chuỗi đại diện người dùng trong yêu cầu.
  • -i, --include: hiển thị cả tiêu đề và nội dung phản hồi.
  • -v, --verbose: hiển thị thông tin chi tiết về yêu cầu và phản hồi.

Danh sách này không hoàn chỉnh và vẫn còn nhiều tùy chọn khác. Bạn có thể tìm hiểu thêm về các tùy chọn khác của lệnh curl bằng cách xem tài liệu hướng dẫn bằng cách chạy man curl trong terminal.

Ví dụ cho lệnh curl:

curl https://example.com/textfile.txt

Chúng ta có thể sử dụng tham số -o để lưu kết quả của lệnh curl vào một file cụ thể trên hệ thống. Ví dụ, để tải về trang chủ của Google và lưu nội dung vào một file có tên là google.html, chúng ta có thể sử dụng lệnh sau:

curl -o google.html https://www.google.com

Khi lệnh này được thực thi, curl sẽ tải về nội dung của trang chủ của Google và lưu nó vào file google.html.

Để download file bằng lệnh curl, bạn có thể sử dụng tùy chọn -O hoặc -o (chữ o viết thường) như sau:

  • Sử dụng tùy chọn -O: curl sẽ tự động đặt tên cho file tải về dựa trên tên của file trên server. Ví dụ:
curl -O https://example.com/file.zip

Sử dụng tùy chọn -o <filename>: curl sẽ tải file về và lưu với tên file được chỉ định trong <filename>. Ví dụ:

curl -o myfile.zip https://example.com/file.zip

Trong cả hai trường hợp, nếu file đã tồn tại, curl sẽ ghi đè lên file đó mà không cần xác nhận từ người dùng. Nếu bạn muốn curl hỏi trước khi ghi đè file đã tồn tại, bạn có thể sử dụng tùy chọn -C - như sau:

curl -C - -O https://example.com/file.zip

Ngoài ra, curl còn hỗ trợ nhiều tùy chọn khác để tải về và xử lý dữ liệu, như -L để follow redirect, -u để xác thực, -H để đặt header, và nhiều hơn nữa.

2. Wget

Lệnh wget cũng được sử dụng để tải xuống file từ các máy chủ web hoặc FTP. Nó hỗ trợ các tính năng tương tự như lệnh curl, bao gồm tải xuống các file đa phần tử, theo dõi các liên kết chuyển hướng và sử dụng các yêu cầu HTTP. Một số tham số phổ biến của lệnh wget bao gồm:

Dưới đây là danh sách các tùy chọn của lệnh wget:

  • -r, --recursive: Tải xuống đệ quy, theo các liên kết trong trang web
  • -l, --level=depth: Đặt độ sâu tải xuống đệ quy
  • -p, --page-requisites: Tải xuống tất cả các thành phần liên quan đến trang web (hình ảnh, CSS, JavaScript, v.v.)
  • -k, --convert-links: Chuyển đổi các liên kết trên trang web để trở thành các liên kết cục bộ
  • -O, --output-document=file: Lưu tập tin tải xuống với tên file được chỉ định
  • -c, --continue: Tiếp tục tải xuống nếu có sự cố kết nối
  • -t, --tries=number: Số lần thử kết nối trước khi đóng kết nối
  • -q, --quiet: Giảm thiểu thông báo đầu ra
  • -b, --background: Chạy lệnh tải xuống nền
  • -nH, --no-host-directories: Không tạo thư mục con dựa trên tên miền
  • -i, --input-file=file: Tải xuống danh sách URL từ file
  • -x, --force-directories: Tạo các thư mục con cho các liên kết
  • -S, --server-response: In các phản hồi máy chủ
  • -U, --user-agent=agent: Thiết lập chuỗi User-Agent
  • -H, --header: Thêm tiêu đề tùy chỉnh vào yêu cầu HTTP
  • --no-check-certificate: Không kiểm tra chứng chỉ SSL
  • -T, --timeout=seconds: Thiết lập thời gian chờ kết nối
  • -w, --wait=seconds: Đợi giữa các yêu cầu
  • -P, --directory-prefix=prefix: Thiết lập đường dẫn tiền tố thư mục đích
  • --limit-rate=rate: Giới hạn tốc độ tải xuống
  • --spider: Kiểm tra liên kết mà không tải xuống
  • --no-clobber: Không ghi đè lên file hiện có

Các tùy chọn này cung cấp nhiều tính năng hữu ích cho việc tải xuống các file từ Internet bằng wget.

Ví dụ, để tải một file văn bản từ một URL và lưu nó vào một file mới, bạn có thể sử dụng lệnh sau:

wget -O newfile.txt https://example.com/textfile.txt

Hoặc để tải xuống tất cả các file từ một trang web, bạn có thể sử dụng lệnh sau:

wget -r https://example.com/
Previous article
Next article

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories