curl 命令详解

命令:curl

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

语法:curl [option] [url]

常见参数:

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

1、基本用法

# curl http://www.linux.com

执行后,www.linux.com 的html就会显示在屏幕上了
Ps:由于安装linux的时候很多时候是没有安装桌面的,也意味着没有浏览器,因此这个方法也经常用于测试一台服务器是否可以到达一个网站

2、保存访问的网页

2.1:使用linux的重定向功能保存

# curl http://www.linux.com >> linux.html

2.2:可以使用curl的内置option:-o(小写)保存网页

$ curl -o linux.html http://www.linux.com

执行完成后会显示如下界面,显示100%则表示保存成功

% Total    % Received % Xferd  Average Speed  Time    Time    Time  Current
                                Dload  Upload  Total  Spent    Left  Speed
100 79684    0 79684    0    0  3437k      0 --:--:-- --:--:-- --:--:-- 7781k

2.3:可以使用curl的内置option:-O(大写)保存网页中的文件
要注意这里后面的url要具体到某个文件,不然抓不下来

# curl -O http://www.linux.com/hello.sh

3、测试网页返回值

# curl -o /dev/null -s -w %{http_code} www.linux.com
-o 输出内容到文件
-s 不输出页面内容
-w 指定输出内容

Ps:在脚本中,这是很常见的测试网站是否正常的用法

4、测试网站是否正常

[root@web01 ~]# curl www.baidu.com -s &>/dev/null
[root@web01 ~]# echo $?
0
[root@web01 ~]# curl -I -m 5 -s -w "%{http_code}\n" -o /dev/null www.baidu.com
200

5、保存站点cookie

[root@chaogelinux tmp]# curl -c cookiec.txt  www.baidu.com

[root@chaogelinux tmp]# cat cookiec.txt
# Netscape HTTP Cookie File
# http://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.

.baidu.com    TRUE    /    FALSE    1579334979    BDORZ    27315

6、模拟客户端

#原本客户端地址
222.35.242.113 - - [17/Jan/2020:16:17:06 +0800] "GET / HTTP/1.1" 200 9503 "-" "curl/7.64.1" "-"


#指定客户端地址
[root@chaogelinux tmp]# curl -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36"  www.pythonav.cn

7.下载资源

-O 直接保存资源到本地,用原文件名

curl -O http://hcdn1.linux.com/static/frontend/public_class/PY1@2x_1566529821.1110113.png

8.断点续传

curl -O -C http://hcdn1.linux.com/static/frontend/public_class/PY1@2x_1566529821.1110113.png
<think>好的,我现在需要帮助用户了解curl命令的详细用法和参数说明。首先,我要回想一下用户提供的引用内容,看看有哪些已有的信息可以利用。引用1提到了常用的curl命令及参数,比如curl url、-o选项等。引用2解释了curl是什么,支持哪些协议,还有libcurl。引用3则详细说明了-O和-v参数的使用方法。 用户的需求是希望得到curl的使用教程和参数详解,所以需要系统性地组织信息。我应该从基础开始,先介绍curl是什么,然后再分门别类地讲解常用参数,并给出示例。同时,用户可能需要实际应用的例子,所以每个参数最好都配上一个示例命令,这样更直观。 接下来,我需要确保结构清晰。可能分为几个部分:简介、基本用法、常用参数详解、高级技巧、注意事项。在参数部分,可以列举用户提到的如-O、-o、-v,以及用户可能需要的其他常用参数如-H、-X、-d、-L等。每个参数需要解释作用、语法和示例。 还要注意用户提到的系统级指令,比如行内数学表达式用$...$,但这里可能用不上。不过要确保回答使用中文,正确使用LaTeX格式如果有数学内容,但curl命令参数可能不需要数学符号,所以可能不需要用到。但如果有需要的地方,比如特殊字符,可能需要转义。 另外,用户要求生成相关问题,我需要根据内容提出几个相关问题,比如如何发送POST请求,如何调试请求头,如何处理重定向等,这些都是用户在使用curl时可能遇到的后续问题。 还需要检查引用标注是否正确,每个引用对应的内容是否准确。例如,引用[^1]提到curl url和-o参数,引用[^3]详细说明了-O和-v的使用,这些在回答中都要正确标注。 最后,确保回答真实可靠,参考官方文档或权威资料,避免错误。同时,语言要口语化,避免技术术语过多,但也要准确。可能需要提醒用户注意参数的大小写,比如-O和-o的不同作用,避免混淆。 总结一下,我的回答结构应该是: 1. 简介:curl的定义和用途 2. 基本用法:最简单的curl命令 3. 常用参数详解:分点列出各个参数,如-O、-o、-v、-H、-X、-d、-L等,每个参数的解释和示例 4. 高级技巧:组合使用参数的例子 5. 注意事项:参数大小写、协议支持等 6. 相关问题:生成与curl使用相关的问题 现在需要按照这个结构组织内容,确保每个部分的信息准确,引用正确,并且示例清晰易懂。同时,要避免信息重复,比如引用中已经提到的内容要整合进来,但不要直接复制,而是用自己的话重新组织,使回答更流畅。</think># cURL命令使用教程及参数详解 ## 一、cURL简介 cURL(CommandLine Uniform Resource Locator)是一个基于URL语法在命令行终端使用的网络请求工具,支持HTTP、HTTPS、FTP等协议,常用于接口测试、文件传输等场景[^2]。 ## 二、基础用法 ```bash curl http://example.com # 获取网页内容 ``` ## 三、核心参数详解 ### 1. 文件下载 - `-O`:下载文件并保留原始文件名 ```bash curl -O https://example.com/file.zip ``` - `-o`:自定义下载文件名 ```bash curl -o myfile.zip https://example.com/file.zip ``` ### 2. 请求调试 - `-v`:显示完整通信过程 ```bash curl -v http://example.com ``` - `--trace`:输出二进制通信日志 ```bash curl --trace log.txt http://example.com ``` ### 3. 请求头控制 - `-H`:添加自定义请求头 ```bash curl -H "Content-Type: application/json" http://api.example.com ``` - `-A`:设置User-Agent ```bash curl -A "Mozilla/5.0" http://example.com ``` ### 4. 请求方法控制 - `-X`:指定HTTP方法 ```bash curl -X POST http://api.example.com ``` ### 5. 数据提交 - `-d`:发送POST表单数据 ```bash curl -d "username=admin&password=123" http://login.example.com ``` - `-F`:上传文件(multipart/form-data) ```bash curl -F "file=@/path/to/file.jpg" http://upload.example.com ``` ### 6. 网络控制 - `-L`:自动跟随重定向 ```bash curl -L http://short.url ``` - `--connect-timeout`:设置连接超时时间 ```bash curl --connect-timeout 30 http://example.com ``` ## 四、高阶组合示例 ```bash # 发送JSON数据并获取响应头 curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' -D headers.txt http://api.example.com ``` ## 五、注意事项 1. 参数区分大小写(如`-O`和`-o`功能不同) 2. 特殊字符需用引号包裹 3. 支持代理设置(`-x`参数) 4. 可通过`curl --help`查看完整参数列表
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值