Linux中curl命令和wget命令的使用介绍与比较

本文介绍的是Linux中curl命令和wget命令,这两者都是用来下载文件的工具,下面来看看详细的介绍:

一、wget

wget是linux最常用的下载命令, 一般的使用方法是: wget + 空格 + 要下载文件的url路径

例1:

wget http://www.minjieren.com/wordpress-3.1-zh_CN.zip

下载文件保存到当前目录,文件名默认是url最后一个/后面的内容,这里就是 wordpress-3.1-zh_CN.zip

例2:

wget -O myfile http://www.minjieren.com/wordpress-3.1-zh_CN.zip

通过-O参数,可以指定文件名,这里指定的是myfile

例3:

wget www.baidu.com

会在当前目录生成一个index.html文件

二、curl

在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具。

语法:# 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 来源网址
  • -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 进度条显示当前的传送状态

例:

curl -O http://download.oracle.com/otn-pub/java/jdk/8u91-b14/jdk-8u91-linux-i586.tar.gz

下载文件保存到当前目录,文件名默认是url最后一个/后面的内容,这里就是 jdk-8u91-linux-i586.tar.gz。

注意:必须要加-O参数,否则是直接在控制台上显示文件内容了.

说明:这两个命令工具,linux系统中缺省不一定有的,如果没有,需要自己安装。如果是在ubuntu下。

可以执行如下命令进行安装

sudo apt-get install curl

它们的区别有如下几点:

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规范。引用wget的man page中的一段话吧,

Please be aware that Wget needs to know the size of the POST data in advance. It's not quite clear how to work around this limitation inherent in HTTP/1.0. Although HTTP/1.1 introduces chunked transfer that doesn't require knowing the request length in advance, a client can't use chunked unless it knows it's talking to an HTTP/1.1 server. And it can't know that until it receives a response, which in turn requires the request to have been completed -- a chicken-and-egg problem.

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

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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

(0)

相关推荐

  • Linux的wget命令详解

    Linux wget是一个下载文件的工具,它用在命令行下.对于Linux用户是必不可少的工具,尤其对于网络管理员,经常要下载一些软件或从远程服务器恢复备份到本地服务器.如果我们使用虚拟主机,处理这样的事务我们只能先从远程服务器下载到我们电脑磁盘,然后再用ftp工具上传到服务器.这样既浪费时间又浪费精力,那不没办法的事.而到了Linux VPS,它则可以直接下载到服务器而不用经过上传这一步.wget工具体积小但功能完善,它支持断点下载功能,同时支持FTP和HTTP下载方式,支持代理服务器和设置起来

  • 详解Linux中的wget命令

    wget命令用来从指定的URL下载文件.wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性,如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕.如果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载.这对从那些限定了链接时间的服务器上下载大文件非常有用. 语法 wget(选项)(参数) 选项 -a<日志文件>:在指定的日志文件中记录资料的执行过程: -A<后缀名>:指定要下载文件的后缀名,多个后缀名之间使用逗号进行分隔: -b:进行

  • 每天一个linux命令(61):wget命令详解

    Linux系统中的wget是一个下载文件的工具,它用在命令行下.对于Linux用户是必不可少的工具,我们经常要下载一些软件或从远程服务器恢复备份到本地服务器.wget支持HTTP,HTTPS和FTP协议,可以使用HTTP代理.所谓的自动下载是指,wget可以在用户退出系统的之后在后台执行.这意味这你可以登录系统,启动一个wget下载任务,然后退出系统,wget将在后台执行直到任务完成,相对于其它大部分浏览器在下载大量数据时需要用户一直的参与,这省去了极大的麻烦. wget 可以跟踪HTML页面上

  • Linux 中wget命令详细介绍

    两个Linux命令wget和exec 一个linux命令:wget ftp访问命令来下载文件的三种方式 1)wget ftp://userName:password@172.17.5.73:21/xxxx/xxx.txt 2) wget --ftp-user=XXX --ftp-password=xx  ftp://172.17.5.73:21/xxx.txt wget:从网络上自动下载文件的工具,是World Wide Web Get的结合. 使用格式:wget[参数] URL地址 -o ne

  • Linux中curl命令和wget命令的使用介绍与比较

    本文介绍的是Linux中curl命令和wget命令,这两者都是用来下载文件的工具,下面来看看详细的介绍: 一.wget wget是linux最常用的下载命令, 一般的使用方法是: wget + 空格 + 要下载文件的url路径 例1: wget http://www.minjieren.com/wordpress-3.1-zh_CN.zip 下载文件保存到当前目录,文件名默认是url最后一个/后面的内容,这里就是 wordpress-3.1-zh_CN.zip 例2: wget -O myfil

  • 浅谈Linux中的chattr与lsattr命令

    PS:有时候你发现用root权限都不能修改某个文件,大部分原因是曾经用chattr命令锁定该文件了.chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的,不过现在生产绝大部分跑的linux系统都是2.6以上内核了.通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有的目录.chattr命令不能保护/./dev./tmp./var目录.lsattr命令是显示chattr命令设置的文件属性. 这两个命令是用来查看和改变文件.目录属性的,与chmod这个命令相比,ch

  • php在linux中可能用到的命令(推荐)

    如下所示: php -i | grep php.ini    查找php.ini的位置 php-cgi -b 127.0.0.1:9000 &  查看php-cgi进程 以上这篇php在linux中可能用到的命令(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • Linux 中的文件复制cp命令和scp命令详解

    Linux 中的文件复制cp命令和scp命令详解 在使用操作系统的使用过程中,常常需要复制文件到本地或者传输文件到其他电脑上,这时候用到两个命令cp和scp. cp命令用来复制文件或者目录.scp是secure copy的简写,用来在Linux下进行加密的远程传输文件或者目录. cp和scp是Linux中功能强大且常用的的命令,下面就介绍下cp和scp两个命令的使用. cp命令 cp命令可以复制一个文件,可以是单个文件复制也可以是整个目录复制,命令的使用方式: cp [options] sour

  • 详解 Linux中的关机和重启命令

    详解 Linux中的关机和重启命令 一 shutdown命令 shutdown [选项] 时间 选项: -c:取消前一次关机命令 -h:关机 -r:重启 二 shutdown实战 [root@localhost tmp]# date Sat Jul 15 09:28:35 CST 2017 [root@localhost tmp]# shutdown -r 05:30 Shutdown scheduled for Sun 2017-07-16 05:30:00 CST, use 'shutdow

  • Linux 中纠正拼写错误的Bash 命令方法

    我知道你可以按下向上箭头来调出你运行过的命令,然后使用左/右键移动到拼写错误的单词,并更正拼写错误的单词,最后按回车键再次运行它,对吗?可是等等.还有一种更简单的方法可以纠正 GNU/Linux 中拼写错误的 Bash 命令.这个教程解释了如何做到这一点. 在 Linux 中纠正拼写错误的 Bash 命令 你有没有运行过类似于下面的错误输入命令? $ unme -r bash: unme: command not found 你注意到了吗?上面的命令中有一个错误.我在 uname 命令缺少了字母

  • 如何在Linux中的特定时间运行命令

    有一天,我使用 rsync 将大文件传输到局域网上的另一个系统.由于它是非常大的文件,大约需要 20 分钟才能完成.我不想再等了,我也不想按 CTRL+C 来终止这个过程.我只是想知道在 Linux 操作系统中是否有简单的方法可以在特定的时间运行一个命令,并且一旦超时就自动杀死它 -- 因此有了这篇文章.请继续阅读. 在 Linux 中在特定时间运行命令 我们可以用两种方法做到这一点. 方法 1 - 使用 timeout 命令 最常用的方法是使用 timeout 命令.对于那些不知道的人来说,t

  • 详解Linux中退出编辑模式的命令

    vim 有三种模式,注意:这三种模式有很多不同的叫法,我这里是按照鸟哥的linux书中的叫法. 一般指令模式.编辑模式.指令列命令模式 1.vim 文件名      进入一般模式: 2.按 i 进行编辑   进入编辑模式 :(或者I, o, O, a, A, r, R) 3.编辑结束,按ESC 键 跳到一般模式模式: 4.按:     进入指令列命令模式 : 进入指令列模式后的明林如下 1.保存不退出: :w 保存文件但不退出vi 编辑 :w! 强制保存,不退出vi 编辑 :w file 将修改

  • Linux 中不输入密码运行 sudo 命令的方法

    sudo命令允许受信任的用户作为另一个用户运行程序,默认情况下是root用户.如果您在命令行上花费了大量时间,那么sudo将会是您一直使用的命令之一. 通常,要授予sudo访问权限,请将用户添加到sudoers文件中定义的sudo组.在Debian,Ubuntu及其衍生产品上,sudo组的成员在基于RedHat的发行版(如CentOS和Fedora)上获得sudo权限,sudo组的名称是wheel. 在运行sudo命令之前,系统将提示该组的每个成员输入密码.这增加了额外的安全层,是向用户授予su

  • Linux中stat函数和stat命令使用详解

    stat函数和stat命令 linux文件里的[inode = index node]解释:要理解inode必须了解磁盘和[目录项],inode实际是连接[目录项]和磁盘的中间物质. 图里的大圈代表硬件的磁盘,里面的小圈代表某个文件存储在磁盘上了. [inode = index node]的node(承载node信息的结构体是:stat,stat的定义在后面 )里面有: 文件大小 文件的最后修改时间 文件的所属用户 文件的权限 硬链接计数(ls -l 显示出来的数字) 块位置:指定文件存储在磁盘

随机推荐