知识的价值不在于占有,而在于使用。这篇文章主要讲述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 % XferdAverage SpeedTimeTimeTimeCurrent
DloadUploadTotalSpentLeftSpeed
10048971004897001663k0 --:--:-- --:--:-- --:--:-- 2391k
B、使用-o/--output参数,将输出写到该文件中,必须输入保存文件名
[root@test ~]# curl -o test.html http://192.168.0.222
% Total% Received % XferdAverage SpeedTimeTimeTimeCurrent
DloadUploadTotalSpentLeftSpeed
10048971004897001672k0 --:--:-- --:--:-- --:--:-- 2391k
C、使用curl的内置option:-O(大写)保存网页中的文件
[root@test ~]# curl -O http://192.168.0.222/test.txt
% Total% Received % XferdAverage SpeedTimeTimeTimeCurrent
DloadUploadTotalSpentLeftSpeed
10020610020600880340 --:--:-- --:--:-- --:--:--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.txthttp://192.168.0.222
[root@test ~]# curl -D head.txt -o /dev/nullhttp://192.168.0.222
(5)下载文件
使用-o保存指定文件:
[root@test ~]# curl -o 1.jpg http://192.168.0.222/text.JPG
【Linux系统-curl命令】使用-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言叙
文章图片
推荐阅读
- 97条 Linux 常用命令总结,速速收藏!
- mybatis中扫不到mapper的常见原因
- Spring项目用JUnit调试时出现错误 Failed to load ApplicationContext 的解决方法
- WebApplicationContext()
- 从Android 9(API级别28)开始,默认情况下禁用明文支持。
- pandas 的DataFrame.apply()
- uniapp 小程序懒加载(自己封装组件)
- Dapper数据库字段和model属性映射
- App测试--专项测试