wget

wget命令用来从指定的URL下载文件。wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性,如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕。如果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载。这对从那些限定了链接时间的服务器上下载大文件非常有用。

语法:
wget(选项)(URL)

常见参数:

-a<日志文件>:在指定的日志文件中记录资料的执行过程; -A<后缀名>:指定要下载文件的后缀名,多个后缀名之间使用逗号进行分隔; -b:进行后台的方式运行wget; -B<连接地址>:设置参考的连接地址的基地地址; -c:继续执行上次终端的任务; -C<标志>:设置服务器数据块功能标志on为激活,off为关闭,默认值为on; -d:调试模式运行指令; -D<域名列表>:设置顺着的域名列表,域名之间用“,”分隔; -e<指令>:作为文件“.wgetrc”中的一部分执行指定的指令; -h:显示指令帮助信息; -i<文件>:从指定文件获取要下载的URL地址; -l<目录列表>:设置顺着的目录列表,多个目录用“,”分隔; -L:仅顺着关联的连接; -r:递归下载方式; -nc:文件存在时,下载文件不覆盖原有文件; -nv:下载时只显示更新和出错信息,不显示指令的详细执行过程; -q:不显示指令执行过程; -nh:不查询主机名称; -v:显示详细执行过程; -V:显示版本信息; --passive-ftp:使用被动模式PASV连接FTP服务器; --follow-ftp:从HTML文件中下载FTP连接文件。

来自: http://man.linuxde.net/wget

-a<日志文件>:在指定的日志文件中记录资料的执行过程; -A<后缀名>:指定要下载文件的后缀名,多个后缀名之间使用逗号进行分隔; -b:进行后台的方式运行wget; -B<连接地址>:设置参考的连接地址的基地地址; -c:继续执行上次终端的任务; -C<标志>:设置服务器数据块功能标志on为激活,off为关闭,默认值为on; -d:调试模式运行指令; -D<域名列表>:设置顺着的域名列表,域名之间用“,”分隔; -e<指令>:作为文件“.wgetrc”中的一部分执行指定的指令; -h:显示指令帮助信息; -i<文件>:从指定文件获取要下载的URL地址; -l<目录列表>:设置顺着的目录列表,多个目录用“,”分隔; -L:仅顺着关联的连接; -r:递归下载方式; -nc:文件存在时,下载文件不覆盖原有文件; -nv:下载时只显示更新和出错信息,不显示指令的详细执行过程; -q:不显示指令执行过程; -nh:不查询主机名称; -v:显示详细执行过程; -V:显示版本信息; --passive-ftp:使用被动模式PASV连接FTP服务器; --follow-ftp:从HTML文件中下载FTP连接文件。

来自: http://man.linuxde.net/wget

  -a<日志文件>:在指定的日志文件中记录资料的执行过程;

  -A<后缀名>:指定要下载文件的后缀名,多个后缀名之间使用逗号进行分隔;
  -b:进行后台的方式运行wget;
  -B<连接地址>:设置参考的连接地址的基地地址;
  -c:继续执行上次终端的任务;
  -C<标志>:设置服务器数据块功能标志on为激活,off为关闭,默认值为on;
  -d:调试模式运行指令;
  -D<域名列表>:设置顺着的域名列表,域名之间用“,”分隔;
  -e<指令>:作为文件“.wgetrc”中的一部分执行指定的指令; -h:显示指令帮助信息;
  -i<文件>:从指定文件获取要下载的URL地址;
  -l<目录列表>:设置顺着的目录列表,多个目录用“,”分隔;
  -L:仅顺着关联的连接;
  -r:递归下载方式;
  -nc:文件存在时,下载文件不覆盖原有文件;
  -nv:下载时只显示更新和出错信息,不显示指令的详细执行过程;
  -q:不显示指令执行过程;
  -nh:不查询主机名称;
  -v:显示详细执行过程;
  -V:显示版本信息;
  --passive-ftp:使用被动模式PASV连接FTP服务器;
  --follow-ftp:从HTML文件中下载FTP连接文件。

.wget下载单个文件:
wget http://www.linuxde.net/testfile.zip
下载文件保存到当前目录,文件名默认是url最后一个/后面的内容,这里就是testfile.zip。 通过-O参数,可以指定文件名,这里指定的是mytest:
wget -O mytest http://www.linuxde.net/testfile.zip .限速下载:
wget --limit-rate=300k http://www.linuxde.net/testfile.zip 当你执行wget的时候,它默认会占用全部可能的宽带下载。但是当你准备下载一个大文件,而你还需要下载其它文件时就有必要限速了。 .简单的wget使用:
wget www.baidu.com
会在当前目录生成一个index.html文件 .使用wget断点续传:
wget -c http://www.linuxde.net/testfile.zip 使用wget -c重新启动下载中断的文件,对于我们下载大文件时突然由于网络等原因中断非常有帮助,我们可以继续接着下载而不是重新下载一个文件。需要继续中断的下载时可以使用-c参数。

curl

curl命令是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。做网页处理流程和数据检索自动化,curl可以祝一臂之力。

语法:

curl [option] [url]

常见参数:

-A/--user-agent <string> 设置用户代理发送给服务器
    -b/--cookie <name=string/file> cookie字符串或文件读取位置
    -c/--cookie-jar <file> 操作结束后把cookie写入到这个文件中
    -C/--continue-at <offset> 断点续转
    -D/--dump-header <file> 把header信息写入到该文件中
    -e/--referer 来源网址,可用来伪造referer
    -f/--fail 连接失败时不显示http错误
    -o/--output 把输出写到该文件中
    -O/--remote-name 把输出写到该文件中,使用远程文件的文件名
    -r/--range <range> 检索来自HTTP/1.1或FTP服务器字节范围
    -s/--silent 静音模式。不输出任何东西
    -T/--upload-file <file> 上传文件
    -u/--user <user[:password]> 设置服务器的用户和密码
    -w/--write-out [format] 什么输出完成后
    -x/--proxy <host[:port]> 在给定的端口上使用HTTP代理
    -#/--progress-bar 进度条显示当前的传送状态
    -I/--head 只显示请求头信息

.下载文件:
curl http://www.linuxde.net/testfile.zip
下载文件保存到当前目录,文件名默认是url最后一个/后面的内容,这里是testfile.zip
注意:
必须要加-O参数,否则是直接在控制台上显示文件内容了,且必须使用文件的绝对地址。
例,curl http://www.linuxde.net/testfile.zip -o /home/index.html .curl能够从特定的文件偏移处继续下载,它可以通过指定一个便宜量来下载部分文件:
curl URL/File -C 偏移量 #偏移量是以字节为单位的整数,如果让curl自动推断出正确的续传位置使用-C -:
curl -C -URL .用curl设置cookies
使用--cookie "COKKIES"选项来指定cookie,多个cookie使用分号分隔:
curl http://man.linuxde.net --cookie "user=root;pass=123456"
将cookie另存为一个文件,使用--cookie-jar选项:
curl URL --cookie-jar cookie_file 4.伪造referer
curl -e "www.linux.com" http://mail.linux.com 5.显示进度
curl www.baidu.com -o index.html --progress 6.设置用户代理
curl URL --user-agent "Mozilla/5.0"
或 curl URL -A "Mozilla/5.0"
 

wget和curl的区别:

wget是个专职的下载利器,简单,专一,极致;而curl可以下载,但是长项不在于下载,而在于模拟提交web数据,POST/GET请求,调试网页,等等。在下载上,也各有所长,wget可以递归,支持断点;而curl支持URL中加入变量,因此可以批量下载。个人用途上,用wget来下载文件,加 -c选项可以实现断点续传;使用curl 来跟网站的API 交互,简便清晰。

1.curl是libcurl这个库支持的,wget是一个纯粹的命令行命令。

2.curl支持更多的协议。curl supports FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS,FILE, POP3, IMAP, SMTP and RTSP at the time of this writing. Wget supports HTTP, HTTPS and FTP。

3.curl 默认支持HTTP1.1(也支持1.0),而wget仅仅支持HTTP1.0规范。

4.curl在指定要下载的链接时能够支持URL的序列或集合,而wget则不能这样;

5.wget支持递归下载,而curl则没有这个功能。(这是wget的一个主要好处,wget也是有优势的。)

Linux的curl和wget的更多相关文章

  1. Linux学习:curl 与 wget命令

    curl和wget命令都是Linux下的工具,可以用来下载文件. 一.wget 例1: wget http://www.minjieren.com/wordpress-3.1-zh_CN.zip 下载 ...

  2. linux下载利器之curl和wget的区别

    linux下载利器-------curl和wget的区别 curl和wget基础功能有诸多重叠,如下载等. 在高级用途上的curl由于可自定义各种请求参数所以长于模拟web请求,用于测试网页交互(浏览 ...

  3. Linux命令发送Http的get或post请求(curl和wget两种方法)

    Http请求指的是客户端向服务器的请求消息,Http请求主要分为get或post两种,在Linux系统下可以用curl和wget命令来模拟Http的请求.下面就来介绍一下Linux系统如何模拟Http ...

  4. linux包-下载-curl与wget

    [root@localhost ~]# rpm -qa|grep curllibcurl-7.19.7-37.el6_4.x86_64python-pycurl-7.19.0-8.el6.x86_64 ...

  5. Shell curl 和 wget 使用代理IP

    Linux Shell 提供两个非常实用的命令来爬取网页,它们分别是 curl 和 wget curl 和 wget 使用代理 curl 支持 http.https.socks4.socks5 wge ...

  6. curl 与wget的区别

    CURL与wget的区别 当想要直接通过linux 命令行下载文件,马上就能想到两个工具:wget 和 CURL.它们有很多一样的特征,可以很轻易的完成一些相同的任务,虽然它们有一些相似的特征,但它们 ...

  7. linux crontab+curl+php 实现php定时任务

    首先登入Linux ->用root登入 在命令行输入 crontab -e  之后就会打开一个文件,并且是非编辑状态,则是vi的编辑界面,通过敲键盘上的i,进入编辑模式,就可以编辑内容.这个文件 ...

  8. linux使用curl进行WebService接口测试

    参考 :linux使用curl进行接口测试 使用curl 命令模拟POST/GET请求 Linux命令发送Http的get或post请求(curl和wget两种方法) curl 模拟 GET\POST ...

  9. HTTPie:替代 Curl 和 Wget 的现代 HTTP 命令行客户端

    HTTPie 工具是现代的 HTTP 命令行客户端,它能通过命令行界面与 Web 服务进行交互. -- Magesh Maruthamuthu 大多数时间我们会使用 curl 命令或是 wget 命令 ...

随机推荐

  1. 如何让多个不同类型的后端网站用一个nginx进行反向代理实际场景分析

    前段时间公司根据要求需要将聚石塔上服务器从杭州整体迁移到张家口,刚好趁这次机会将这些乱七八糟的服务器做一次梳理和整合,断断续续一个月迁移完成 大概优化掉了1/3的机器,完成之后遇到了一些问题,比如曾今 ...

  2. SpringBoot是如何启动的?

    本文是通过查看SpringBoot源码整理出来的SpringBoot大致启动流程,整体大方向是以简单为出发点,不说太多复杂的东西,内部实现细节本文不深扣因为每个人的思路.理解都不一样,我个人看的理解跟 ...

  3. Android H5混合开发(3):原生Android项目里嵌入Cordova

    前言 如果安卓项目已经存在了,那么如何使用Cordova做混合开发? 方案1(适用于插件会持续增加或变化的项目): 新建Cordova项目并添加Android平台,把我们的安卓项目导入Android平 ...

  4. 运用wxs制作微信小程序左滑功能和跳转,性能更优越

    锲子 微信小程序自定义左滑功能加上跳转,换成以往,左滑功能的逻辑一般是在js中实现,但在拖动方面,性能并不是那么的流畅.如今,官方新扩展了一套脚本语言wxs,在IOS设备上运行,性能会比JS快2~20 ...

  5. 暑期集训20190807 游戏(game)

    [问题描述] 小A 拿到了 n 个数,

  6. [爬虫]用python的requests模块爬取糗事百科段子

    虽然Python的标准库中 urllib2 模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests 自称 “HTTP for Humans”,说明使用更 ...

  7. CSPS模拟 100

    我又挂分了T_T 这么吉利的数字..本来想考的好一点的 T1 没加当前弧优化(其实也不会),若志了 各种低错连篇而且没想到点不联通..没有奇度点就直接从1开始搜了 于是喜提70(犯了这两个若志错误应该 ...

  8. NOIP模拟 36

    又是sb错误丢rank1... T1加了一句特判,暴涨80分... 要不要这么残忍...我暴力其实打的很满的好吗QAQ T1 暴力写成$while(lim[j].id==i)$少写的特判是$(j< ...

  9. 用css和js实现侧边菜单栏点击和鼠标滑动特效

    1点击效果: 2关键代码: css: #div{ display:inline-block; width:100px; height:150px; border-radius: 5px; blackg ...

  10. Css3动画-@keyframes与animation

    一.@keyframe 定义和用法 @keyframes是用来创建帧动画的,我们通过这个属性可以用纯css来实现一些动画效果. 一般格式是: @keyframes 动画名称{ 0%{ 动画开始时的样式 ...