curl 与 wget 的使用:

1.下载文件

  1. curl -O http://man.linuxde.net/text.is0
    wget http://www.linuxde.net/text.iso

#O大写,不用O只是打印内容不会下载

#不用参数,直接下载文件


2.下载文件并重命名

  1. curl -o rename.iso http://man.linuxde.net/text.iso
    wget -O rename.zip http://www.linuxde.net/text.iso

#o小写

#O大写


3.断点续传

  1. curl -O -C -URL http://man.linuxde.net/text.iso
    wget -c http://www.linuxde.net/text.iso

#C大写

#c小写


4.限速下载

  1. curl limit-rate 50k -O http://man.linuxde.net/text.iso
    wget limit-rate=50k http://www.linuxde.net/text.iso


5.显示响应头部信息

curl -I http://man.linuxde.net/text.iso

wget —server-response http://www.linuxde.net/test.iso

# i要大写


6.wget利器—打包下载网站

  1. wget mirror -p convert-links -P /var/www/html http://man.linuxde.net/

【wget】选项说明

  1. -b:后台下载模式。
  2. -c:继续执行之前中断的下载任务。
  3. -i:从文件读取要下载的 URL 列表。
  4. -r:递归下载模式,用于下载整个网站。
  5. -l depth:递归下载时的最大递归深度。
  6. -A:接受的文件列表,用逗号分隔。
  7. -R:拒绝的文件列表,用逗号分隔。
  8. -p:下载所有为 HTML 页面显示正常所需的元素。
  9. -E:将所有的 HTML 文件保存为 .html 文件。
  10. -k:转换链接,使下载的网页可以离线查看。
  11. -K:在转换文件之前备份原始文件。
  12. -m:镜像模式,等同于 -r -N -l inf --no-remove-listing。
  13. -N:仅当远程文件较新时才下载文件。
  14. -S:显示服务器响应。
  15. -T seconds:设置读取超时时间。
  16. -O:将文件保存到指定的文件名。
  17. -o:将日志消息写入指定的文件。
  18. -q:静默模式,不输出任何东西。
  19. -v:详细模式,提供更多信息。
  20. -h:显示帮助信息并退出。
  21. -V:显示版本信息并退出。
  22. -nv:非冗长模式,关闭冗长模式,但保留一些基本信息。只显示错误和基本的信息,不会显示下载的进度条等详细信息。

【curl】选项说明

  1. 示例:curl -fsSL https://ollama.com/install.sh | OLLAMA_VERSION=0.3.14 sh
  2. 以上:下载一个脚本,并通过管道(`|`)将这个脚本的内容直接传递给 sh 命令来执行。这意味着 install.sh 脚本将被立即执行。
  3. 想将 install.sh 下载并保存到当前目录中,可以使用:curl -fsSL https://xxx.com/aa.sh > aa.sh
  4. -f 或 --fail:让 curl 在 HTTP 请求失败时直接退出,不显示错误页面。
  5. -s 或 --silent:使 curl 在运行时不显示进度条和错误信息,保持输出的干净。
  6. -S 或 --show-error:与 -s 选项一起使用时,即使是在静默模式下,也显示错误信息。
  7. -L 或 --location:如果服务器返回的是一个重定向(3xx 状态码),则自动跟随新的 URL。

举例:

  1. sudo -v && wget -nv -O- https://download.calibre-ebook.com/linux-installer.py | sudo python -c "import sys; main=lambda:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main()"
  2. 以上说明:【-O-】这个选项指定了输出文件的名称。在这里,- 表示标准输出(通常是终端或控制台)。这意味着 wget 将下载的数据直接输出到标准输出,而不是保存到磁盘文件中。这常用于将 wget 的输出通过管道传输给另一个命令。
  3. 【|】这是一个管道符号,它将前一个命令的标准输出作为后一个命令的标准输入。
  4. 【python -c】:这个选项让 Python 解释器执行一段给定的命令字符串:"import sys; main=lambda:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main()":这是传递给 Python 解释器的命令字符串,它执行以下操作:
  5. 【import sys】:导入 Python 的系统模块,以便使用系统功能,如标准输入和标准错误输出。
  6. main=lambda:sys.stderr.write('Download failed\n'):定义一个名为 main 的函数,当调用时,它会向标准错误输出写入 “Download failed\n”。
  7. exec(sys.stdin.read()):执行从标准输入(即 wget 命令的输出)读取的代码。这里,它将执行下载的 Python 脚本。
  8. main():调用前面定义的 main 函数。这个调用实际上是作为安全措施,以防下载的脚本没有成功执行。如果脚本执行成功,通常不会看到 “Download failed” 消息。

接口请求

  1. curl -X POST http://example.com/api -H "Content-Type: application/json" -H "Authorization: Bearer your_token" -d '{"key1":"value1", "key2":"value2"}'