Linux系统-curl命令

Posted linux言叙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统-curl命令相关的知识,希望对你有一定的参考价值。

1、功能
curl是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载。
2、常用参数

-A/--user-agent <string>:设置用户代理发送给服务器
-c/--cookie-jar <file>:操作结束后把cookie写入到这个文件中
-C/--continue-at <offset>:断点续转
-D/--dump-header <file>:把header信息写入到该文件中
-f/--fail:连接失败时不显示http错误
-w/--write-out [format]:什么输出完成后
-I/--head:只显示传输文档,经常用于测试连接本身
-o/--output:把输出写到该文件中,必须输入保存文件名
-O/--remote-name:把输出写到该文件中,保留远程文件的文件名
-F/--form:模拟表单提交
-s/--silent:静默模式,不输出任何东西
-S/--show-error:显示错误,在选项 -s 中,当 curl 出现错误时将显示
-L/--location:跟踪重定向
-n/--netrc:从netrc文件中读取用户名和密码
--ntlm:使用 HTTP NTLM 身份验证
-N/--no-buffer:禁用缓冲输出
-p/--proxytunnel:使用HTTP代理
--proxy-anyauth:选择任一代理身份验证方法
--proxy-basic:在代理上使用基本身份验证
--proxy-digest:在代理上使用数字身份验证
--proxy-ntlm:在代理上使用ntlm身份验证
-P/--ftp-port:使用端口地址,而不是使用PASV
-M/--manual:显示全手动
-Q/--quote:文件传输前,发送命令到服务器
-r/--range:检索来自HTTP/1.1或FTP服务器字节范围
--range-file:读取(SSL)的随机文件
-R/--remote-time:在本地生成文件时,保留远程文件时间
--retry:传输出现问题时,重试的次数
--retry-delay:传输出现问题时,设置重试间隔时间
--retry-max-time:传输出现问题时,设置最大重试时间
--socks4:用socks4代理给定主机和端口
--socks5:用socks5代理给定主机和端口
-t/--telnet-option:Telnet选项设置
--trace:对指定文件进行debug
-T/--upload-file:上传文件
-u/--user:设置服务器的用户和密码
-U/--proxy-user:设置代理用户名和密码
-V/--version:显示版本信息
-x/--proxy:在给定的端口上使用HTTP代理
-y/--speed-time:放弃限速所要的时间。默认为30
-Y/--speed-limit:停止传输速度的限制,速度时间秒
-z/--time-cond:传送时间设置
-0/--http1.0:使用HTTP 1.0
-1/--tlsv1:使用TLSv1(SSL)
-2/--sslv2:使用SSLv2的(SSL)
-3/--sslv3:使用的SSLv3(SSL)
--3p-quote:like -Q for the source URL for 3rd party transfer
--3p-url:使用url,进行第三方传送
--3p-user:使用用户名和密码,进行第三方传送
-4/--ipv4:使用IP4
-6/--ipv6:使用IP6
-#/--progress-bar:用进度条显示当前的传送状态

3、使用实例
(1)基础用法

[root@test ~]# curl http://192.168.0.222

注:获取网站html内容并输出。主要用来测试服务器能否正常访问网站。
(2)保存页面内容
A、使用linux系统重定向保存

[root@test ~]# curl http://192.168.0.222 >> test.html
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  4897  100  4897    0     0  1663k      0 --:--:-- --:--:-- --:--:-- 2391k

B、使用-o/--output参数,将输出写到该文件中,必须输入保存文件名

[root@test ~]# curl -o test.html http://192.168.0.222 
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  4897  100  4897    0     0  1672k      0 --:--:-- --:--:-- --:--:-- 2391k

C、使用curl的内置option:-O(大写)保存网页中的文件

[root@test ~]# curl -O http://192.168.0.222/test.txt
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   206  100   206    0     0  88034      0 --:--:-- --:--:-- --:--:--  100k

(3)测试网页返回值

[root@test ~]# curl -o /dev/null -s -w %http_code http://192.168.0.222
403

注:该命令主要用来测试网站是否正常。
-o/--output,将输出保存到/dev/null;
-s:静默模式,不输出任何东西;
-w/--write-out [format]:什么输出完成后.
(4)保存http的response里面的header信息

[root@test ~]# curl -D head.txt  http://192.168.0.222 
[root@test ~]# curl -D head.txt -o /dev/null  http://192.168.0.222 

(5)下载文件
使用-o保存指定文件:

[root@test ~]# curl -o 1.jpg http://192.168.0.222/text.JPG

使用-O直接保存:

[root@test ~]# curl -O http://192.168.0.222/text.JPG

下载多个:

[root@test ~]# curl -O http://192.168.0.222/text[5-10].JPG

下载名显示进度条:

[root@test ~]# curl -# -O http://192.168.0.222/text.JPG

使用断点续传:

[root@test ~]# curl -C -O http://192.168.0.222/text.JPG

(6)使用ftp下载文件

[root@test ~]# curl -O -u 用户名:密码 ftp://192.168.0.222/test.JPG

注: curl -O ftp://用户名:密码@域名/下载的文件名

个人公众号:linux言叙

以上是关于Linux系统-curl命令的主要内容,如果未能解决你的问题,请参考以下文章

linux系统 之 curl命令

linux系统的curl命令

Linux运维命令Curl - 日常用法总结

Linux系统curl命令

linux curl 命令怎么在windows上实现

Linux系统-curl命令