Linux命令之curl

本文深入讲解了Linux下Curl命令的使用方法,包括各种参数详解和实际应用案例,如下载文件、断点续传、伪造来源页面等,是Curl命令的全面指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

curl

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

curl命令语法:

curl [options] [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/–remote-name 把输出写到该文件中,保留远程文件的文件名
-r/–range 检索来自HTTP/1.1或FTP服务器字节范围
-s/–silent 静音模式。不输出任何东西
-T/–upload-file 上传文件
-u/–user <user[:password]> 设置服务器的用户和密码
-w/–write-out [format] 什么输出完成后
-x/–proxy <host[:port]> 在给定的端口上使用HTTP代理
-#/–progress-bar 进度条显示当前的传送状态

实例

1、下载页面:
curl -o index.html http://aiezu.com

2、下载文件并显示简单进度条:
curl -# -o centos6.8.iso http://mirrors.aliyun.com/centos/6.8/isos/x86_64/CentOS-6.8-x86_64-minimal.iso

3、断点续传:
#继续完成上次终止的未完成的下载
curl -# -o centos6.8.iso -C - http://mirrors.aliyun.com/centos/6.8/isos/x86_64/CentOS-6.8-x86_64-minimal.iso

4、伪造来源页面:
#告诉爱E族,我是从百度来的
curl -e http://baidu.com http://aiezu.com
5、伪造代理设备:
#告诉爱E族,我是GOOGLE爬虫蜘蛛(其实我是curl命令)
curl -A " Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" http://aiezu.com

#告诉爱E族,我用的是微信内置浏览器
curl -A “Mozilla/5.0 AppleWebKit/600 Mobile MicroMessenger/6.0” http://aiezu.com

6、http头:
看看本站的http头是怎么样的
curl -I http://aiezu.com
输出:

HTTP/1.1 200 OK
Date: Fri, 25 Nov 2016 16:45:49 GMT
Server: Apache
Set-Cookie: rox__Session=abdrt8vesprhnpc3f63p1df7j4; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Vary: Accept-Encoding
Content-Type: text/html; charset=utf-8

6、设置http请求头:

curl -H “Cache-Control:no-cache” http://aiezu.com

7、发送表单数据:

curl -F “pic=@logo.png” -F “site=aiezu” http://aiezu.com/

8、发送cookie:

curl -b “domain=aiezu.comhttp://aiezu.com

get &post

一、get请求
1.显示全部信息
curl -i “http://www.dangdang.com
2.只显示头部信息
curl -I “http://www.dangdang.com
3.显示get请求全过程解析
curl -v “http://www.dangdang.com
4.发送HTTPS请求,忽略认证
curl -k “https://www.baidu.com
5.通过代理发送请求,-x
curl -x “ip:port” “http://www.dangdang.com
6.添加自定义头部,–header
curl --header “content-type:text/html” -v “http://www.dangdang.com

7.保存网页-o

curl -o page.html www.sina.com

8.保存cookie信息:-D

curl -x ip:n -o page.html -D cookie001.txt www.sina.com

9.访问时添加cookie信息:-b

curl -x ip:n -o page.html -D cookie001.txt -b cookie001.txt www.sina.com

二、post请求

1.添加请求data
curl -d “param1=value1” “http://www.dangdang.com

curl -l -H “Content-type: application/json” -X POST -d ‘{“phone”:“12345678900”,“password”:“test”}’ “http://www.test.com

### 如何在 Linux 中使用 `curl` 命令 #### 安装 curl 对于大多数现代 Linux 发行版,默认情况下已经安装了 `curl`。如果没有,则可以通过包管理器来安装它。 - 对于基于 Debian 的系统,如 Ubuntu: ```bash sudo apt-get update && sudo apt-get install curl ``` - 对于基于 Red Hat 的系统,比如 CentOS 或 Fedora: ```bash sudo yum install curl ``` 或者,在较新的版本上可能需要使用 `dnf` 替代 `yum`[^1]。 #### 使用 curl 下载文件 `curl` 是一个强大的工具,可以用来下载网络资源并保存到本地磁盘中。最简单的例子是从互联网获取网页内容并将它们显示在终端里: ```bash curl http://example.com/ ``` 如果希望将远程服务器上的文件下载下来而不是打印其内容至标准输出流,那么应该加上 `-o` 参数指定目标路径名或带有通配符的目标目录名称;也可以利用 `-O` 来保持原始文件的名字不变而直接存储到当前工作空间内[^2]。 #### 设置 HTTP 请求头 有时候为了模拟浏览器行为或者其他特殊需求,发送自定义HTTP头部可能是必要的操作之一。这可通过 `-H` 选项完成,后面跟随具体的键值对字符串表示法(即 `"Key: Value"`)。例如设置 User-Agent 字段为 Chrome 浏览器样式: ```bash curl -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" https://www.example.com ``` #### POST 数据提交 当向 Web API 提交表单数据或其他类型的负载体时,通常会采用POST方法。此时可借助 `-d` 参数传递要上传的数据给服务端处理程序解析。下面是一个简单实例展示了怎样通过 JSON 格式的请求体来进行 RESTful 风格的服务调用[^3]: ```bash curl -X POST \ -H 'Content-Type: application/json' \ -d '{"username":"admin","password":"secret"}' \ https://api.example.com/login ``` #### 处理 HTTPS 和 SSL/TLS 默认情况下,`curl` 支持安全协议传输层安全性(TLS),并且能够自动验证证书链的有效性和主机名匹配情况。然而某些场景下可能会遇到不受信任CA签发的SSL证书问题,这时可以通过添加参数 `--insecure` 跳过这些检查过程继续执行后续动作,但这不是推荐的做法因为存在安全隐患风险[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值