linux - wget和curl各有何用处?(强大但是不知如何使用)
黄舟
黄舟 2017-04-17 15:41:47
0
3
525

描述问题

在我使用它们的有限时间里, 一直wget==文件下载器==curl, 但是见许多REST文档中都拿curl做例子,便man curl, 发现其简介如下:

curl  is  a tool to transfer data from or to a server, using one of the supported
       protocols (HTTP, HTTPS, FTP, FTPS, SCP, SFTP, TFTP, DICT, TELNET, LDAP or  FILE).
       The command is designed to work without user interaction.

       curl  offers  a busload of useful tricks like proxy support, user authentication,
       FTP upload, HTTP post, SSL connections, cookies, file transfer resume  and  more.
       As you will see below, the number of features will make your head spin!

       curl  is powered by libcurl for all transfer-related features. See libcurl(3) for
       details.

英文浅显易懂, 我想: 功能这么强大, 估计又难免记忆一大堆参数(痛苦)

大家是如何用的?

上下文环境

  1. Linux纯命令行-Server

重现

相关代码

  1. man curl

  2. man wget

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回覆(3)
刘奇

wget

一句話:內建的檔案下載工具

優點:

  • 多數發行版內建

  • 支援簡單的遞迴扒站

  • 適合下載,預設寫檔案

缺點:

  • 一般只用做下載,組裝post請求、發複雜header等不常用

  • 下載功能較原始,不支援並發、p2p、磁力連結等

curl

一句話:內建的請求傳送工具+請求發送庫

優點:

  • 多數發行版內建

  • 某種程度上是表達一個http請求的預設(例如chrome開發工具可以直接複製為curl,例如很多api介面文件直接提供curl指令)

  • 預設輸出stdout,方便pipe其他指令(常見的一句話安裝curl xxx | bash

  • 同時libcurl是穩定常用的類別庫,方便整合到其他專案

缺點:

  • 用做下載要額外參數

  • 拼接複雜請求相對麻煩

httpie

一句話:現代的http請求傳送工具

優點:

  • 拼接json請求非常方便,適合調「現代」的restful介面

  • 支援用檔案記錄session(cookie、固定請求頭等),適合調介面

  • 參數清晰簡單,上手快

  • 回傳結果有高亮

缺點:

  • 要自己裝

  • 要自己裝

  • 要自己裝

(還有eliangcs/http-prompt這個項目,簡直黑魔法)

aria2c

一句話:現代的下載工具

優點:

  • 支援更多包含磁力連結的下載方式、並發下載、多個來源下載等等

  • server模式,可以裝在路由器裡,從而實現遠端下載

缺點:

  • 要自己裝

  • 要自己裝

  • 要自己裝

左手右手慢动作

個人行為:

  • wget一般用於下載檔案

  • curl一般用於模擬請求,測試api

小葫芦

wget: 下載利器

  1. 下載速率慢的資源,瀏覽器常常會沒下完就當完成了。建議加 -T5

  2. 批次下 HTML 文件:wget -T 5 -t 10 -Q 500m -nH -r -E -l inf -k -p -np URL

  3. 批次下 URL:wget -i URL列表文件

curl: 除錯利器

  1. 簡單好用,隨處可得

  2. 瀏覽器的開發者工具支援複製為 curl 請求

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板