欢迎光临
我们一直在努力

curl命令使用指南

curl命令使用指南

curl命令使用指南

curl 全称CommandLine Uniform Resource Locator,顾名思义,curl命令是在命令行方式下工作,利用URL的语法进行数据的传输或者文件的传输。
这个命令行工具现在多用于Unix和Linux操作系统,是一个开源的工具,功能十分强大。

该工具支持以下30多种类型的传输方式,这当中包含多种协议。

DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, Telnet and TFTP. curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, HTTP/2, cookies, user+password authentication (Basic, Plain, Digest, CRAM-MD5, NTLM, Negotiate and Kerberos), file transfer resume, proxy tunneling
最常使用的有FILE、FTP、HTTP、HTTPS等协议。

curl 语法:

语法:# curl [option] [url]

curl 参数:

-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 例子:

# curl https://www.nixonli.com
<html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx</center>
</body>
</html>

上面命令向www.nixonli.com发出 GET 请求,服务器返回的内容会在命令行输出。

curl 下载单个文件

默认将输出打印到标准输出中(STDOUT)中

curl https://www.nixonli.com

通过-o/-O选项保存下载的文件到指定的文件中:

-o:将文件保存为命令行中指定的文件名的文件中
-O:使用URL中默认的文件名保存文件到本地
# 将文件下载到本地并命名为test.html

curl -o test.html https://www.nixonli.com/index.html

# 将文件保存到本地并命名为index.html

curl -O https://www.nixonli.com/index.html

同样可以使用转向字符”>”对输出进行转向输出

使用linux的重定向功能保存

# curl https://www.nixonli.com >> index.html

同时获取多个文件

curl -O URL1 -O URL2

curl proxy

指定proxy服务器以及其端口

很多时候上网需要用到代理服务器(比如是使用代理服务器上网或者因为使用curl别人网站而被别人屏蔽IP地址的时候),幸运的是curl通过使用内置option:-x来支持设置代理

# curl -x 192.168.100.100:1080 https://www.nixonli.com

curl cookie

有些网站是使用cookie来记录session信息。对于chrome这样的浏览器,可以轻易处理cookie信息,但在curl中只要增加相关参数也是可以很容易的处理cookie
保存http的response里面的cookie信息。内置option:-c(小写)

# curl -c cookiec.txt  https://www.nixonli.com

执行后cookie信息就被存到了cookiec.txt里面了

保存http的response里面的header信息。内置option: -D

# curl -D cookied.txt https://www.nixonli.com

执行后cookie信息就被存到了cookied.txt里面了

注意:-c(小写)产生的cookie和-D里面的cookie是不一样的。

使用cookie
很多网站都是通过监视你的cookie信息来判断你是否按规矩访问他们的网站的,因此我们需要使用保存的cookie信息。内置option: -b

# curl -b cookiec.txt https://www.nixonli.com

curl 模仿浏览器

有些网站需要使用特定的浏览器去访问他们,有些还需要使用某些特定的版本。curl内置option:-A可以让我们指定浏览器去访问网站

# curl -A "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.0)" https://www.nixonli.com

这样服务器端就会认为是使用IE8.0去访问的

curl 伪造referer(盗链)

很多服务器会检查http访问的referer从而来控制访问。比如:你是先访问首页,然后再访问首页中的邮箱页面,这里访问邮箱的referer地址就是访问首页成功后的页面地址,如果服务器发现对邮箱页面访问的referer地址不是首页的地址,就断定那是个盗连了
curl中内置option:-e可以让我们设定referer

# curl -e "www.nixonli.com" http://mail.nixonli.com

这样就会让服务器其以为你是从www.nixonli.com点击某个链接过来的

curl 分块下载

有时候下载的东西会比较大,这个时候我们可以分段下载。使用内置option:-r

# curl -r 0-100 -o test1_part1.JPG https://www.nixonli.com/test1.JPG
# curl -r 100-200 -o test1_part2.JPG https://www.nixonli.com/test1.JPG
# curl -r 200- -o test1_part3.JPG https://www.nixonli.com/test1.JPG
# cat test1_part* > test1.JPG

这样就可以查看test1.JPG的内容了

curl 通过ftp下载文件

curl可以通过ftp下载文件,curl提供两种从ftp中下载的语法

# curl -O -u 用户名:密码 ftp://www.nixonli.com/test1.JPG
# curl -O ftp://用户名:密码@www.nixonli.com/test1.JPG

显示下载进度条

# curl -# -O https://www.nixonli.com/test1.JPG

不会显示下载进度信息

# curl -s -O https://www.nixonli.com/test1.JPG

curl 断点续传

在windows中,我们可以使用迅雷这样的软件进行断点续传。curl可以通过内置option:-C同样可以达到相同的效果
如果在下载test1.JPG的过程中突然掉线了,可以使用以下的方式续传

# curl -C -O https://www.nixonli.com/test1.JPG

curl 上传文件

curl不仅仅可以下载文件,还可以上传文件。通过内置option:-T来实现

# curl -T test1.JPG -u 用户名:密码 ftp://www.nixonli.com/img/

这样就向ftp服务器上传了文件test1.JPG

curl 显示抓取错误

# curl -f https://www.nixonli.com/error

crul的官方网站

https://curl.haxx.se/

窗外天空
关注公众号『窗外天空』

获取更多建站运营运维新知!
互联网创业、前沿技术......

赞(0) 打赏
文章名称:《curl命令使用指南》
文章链接:https://www.nixonli.com/24272.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏