curl命令用法-程序员宅基地

技术标签: CURL  Linux  

1. CURL命令简介

CURL(CommandLine Uniform Resource Locator),是一个利用 URL 语法,在命令行终端下使用的网络请求工具,支持 HTTP、HTTPS、FTP 等协议。CURL 也有用于程序开发使用的版本 libcurl。

Linux、MAC 一般系统默认已安装好 curl,直接在终端使用命令即可,如果需要手动安装,可以到 curl.haxx.se 下载安装。

Windows 系统 curl 下载地址: https://curl.haxx.se/windows/,下载解压后即可使用,命令的可执行文件在解压后的 bin 文件夹中。

2. CURL命令用法

2.1 基础语法

curl [options...] <url>

2.2 常用参数

PS: (H) 表示只给 HTTP/HTTPS请求使用,(F) 表示只给 FTP请求使用。

(1)Show Info

-h/--help                       # 打印帮助信息
-V/--version                    # 显示版本信息
-s/--silent                     # 静默模式, 不输出任何内容
-i/--include                    # 输出包含 headers 信息
-v/--verbose                    # 输出详细内容
-#/--progress-bar               # 以进度条方式显示传输过程

(2) Headers

-H/--header     LINE        (H) # 添加请求头, 可添加多个 -H 参数, 
                                # 参数格式: -H "NAME: VALUE"

-A/--user-agen  STRING      (H) # 请求头的 User-Agent 字段
-e/--referer    URL         (H) # 请求头的 Referer 字段
-r/--range      RANGE       (H) # 请求头的 Range 字段
-b/--cookie     STRING/FILE (H) # 请求头的 Cookie 字段, 以字符串的形式提供, 
                                # 或从指定 cookie 文件中读取

-c/--cookie-jar     FILE    (H) # 把响应头中的 cookie 保存到指定文件

-D/--dump-header    FILE        # 把 headers 信息保存指定文件
-I/--head                       # 只显示文档信息(只显示响应头)

(3) Request Content

# 执行命令, 如果是 HTTP 则是请求方法, 如: GET, POST, PUT, DELETE 等
#          如果是 FTP 则是执行 FTP协议命令
-X/--request    COMMAND

# HTTP POST 请求内容(并自动发出 POST 请求), 例如: aa=bb&cc=dd
-d/--data       DATA    (H)

# HTTP multipart POST 表单数据,(并自动发出 POST 请求)
# 多个表单字段可添加多个 -H 参数, 如果是文件参数, 路径值前面需要加@
# 参考格式: -F "name1=@/filepath" -F "name2=stringvalue"
-F/--form       CONTENT (H)                   

(4) Response Content

-o/--output FILE    FILE        # 把响应内容输出到指定文件
-O/--remote-name                # 以 URL 的文件名作为文件名称保存响应内容到当前目录
-C/--continue-at    OFFSET      # 断点续传, 从 offset 位置继续传输

(5) Other

-y/--speed-time     SECONDS     # 连接 超时时间, 单位: 秒,  默认为 30
-m/--max-time       SECONDS     # 读取 超时时间, 必须在该时间内传输完数据, 单位: 秒
--limit-rate        RATE        # 限速传输, 单位: Byte/s

-x/--proxy          [PROTOCOL://]HOST[:PORT]    # 设置代理
-U/--proxy-user     USER[:PASSWORD]             # 代理的用户名和密码
-u/--user           USER[:PASSWORD][;OPTIONS]   # 设置服务器的用户密码和登录选项
--cacert            FILE                  (SSL) # 使用指定的 CA 证书

-P/--ftp-port       ADR (F) # 指定 FTP 传输的端口
-T/--upload-file    FILE    # 上传文件到指定的 URL (http/ftp) 位置, 
                            # 参考格式: -T "file1" 或 -T "{file1,file2}"

-Q/--quote    CMD  (F/SFTP) # 执行命令, -X 只执行一条命令, -Q 可执行多条,
                            # 多条命令将按顺序执行,
                            # 参考格式: -Q "cmd1" -Q "cmd2"

3. curl 命令使用实例

3.1 HTTP/HTTPS 网络请求

(1)GET 请求

curl https://www.baidu.com/         # GET请求, 输出 响应内容
curl -I https://www.baidu.com/      # GET请求, 只输出 响应头
curl -i https://www.baidu.com/      # GET请求, 输出 响应头、响应内容
curl -v https://www.baidu.com/      # GET请求, 输出 通讯过程、头部信息、响应内容等


下载文件
# 指定保存的文件名称下载文件
curl https://www.baidu.com -o baidu.txt

# 使用 URL 指定的资源文件名保存下载文件(URL 必须指向具体的文件名)
curl https://www.baidu.com/index.html -O

# 指定 Usaer-Agent 和 Referer 请求头的值, 下载文件
curl -A "Mozilla/5.0 Chrome/70.0.3538.110 Safari/537.36" \
     -e "https://www.baidu.com/" \
     https://www.baidu.com/index.html -O


# 指定Authorization请求头的值, 下载文件
# 参数格式: -H "NAME: VALUE"
curl -H "Authorization: a112121dada" \
     https://www.baidu.com/index.html -O

(2)POST 请求提交数据

# POST 提交 JSON 数据(\表示命令语句还未结束, 换行继续)
curl -H "Content-Type: application/json"                \
     -d '{"username":"hello", "password":"123456"}'     \
     http://localhost/login

# POST 提交 表单数据
curl -F "username=hello"                \
     -F "password=123456"               \
     -F "[email protected]"      \
     http://localhost/register

3.2 FTP 上传/下载文件

假设 FTP 服务器 地址为:192.168.0.100; 用户名为:user; 密码为:passwd

(1)查看文件

# 查看 FTP 指定目录(目录必须以"/"结尾)下的文件列表 
curl ftp://192.168.0.100/aaDir/ -u "user:passwd"

# 查看 FTP 指定文件的内容(直接输出到终端) 
curl ftp://192.168.0.100/aaDir/aa.txt -u "user:passwd"

# 用户名 和 密码 的另一种写法(查看 FTP 服务器指定目录)
curl ftp://user:[email protected]/aaDir/

(2)上传文件

# 上传 aa.txt 文件到 FTP 指定目录下(目录必须以"/"结尾), 并以 原文件名 命名保存
curl ftp://192.168.0.100/aaDir/ -u "user:passwd" -T "aa.txt"

# 上传 aa.txt 文件到 FTP 指定目录下, 并以 bb.txt 命名保存
curl ftp://192.168.0.100/aaDir/bb.txt -u "user:passwd" -T "aa.txt"

# 同时上传多个文件
curl ftp://192.168.0.100/aaDir/ -u "user:passwd" -T "{aa.txt,bb.txt}"

 (3)下载文件

# 下载 FTP 指定文件 /aaDir/aa.txt, 以原文件名命名保存到当前目录 
curl ftp://192.168.0.100/aaDir/aa.txt -u "user:passwd" -O

# 下载 FTP 指定文件 /aaDir/aa.txt, 以 bb.txt 命名保存
curl ftp://192.168.0.100/aaDir/aa.txt -u "user:passwd" -o bb.txt

(4)执行 FTP 协议命令

curl 执行 FTP 命令格式:

单条命令: curl [-options] <ftpUrl> -X "FTP命令"
多条命令: curl [-options] <ftpUrl> -Q "FTP命令" -Q "FTP命令"
# 
# 创建文件夹, 在 /aaDir/ 目录(目录必须以"/"结尾)下创建 bbDir 文件夹
#
curl -u "user:passwd" ftp://192.168.0.100/aaDir/ -X "MKD bbDir"

# 
# 删除文件夹, 删除 /aaDir/ 目录下的 bbDir 文件夹(文件夹必须为空)
#
curl -u "user:passwd" ftp://192.168.0.100/aaDir/ -X "RMD bbDir"

# 
# 删除文件, 删除 /aaDir/ 目录下的 aa.txt 文件
#
curl -u "user:passwd" ftp://192.168.0.100/aaDir/ -X "DELE aa.txt"

#
# 重命名, 重命名需要连续执行两条命令, 使用两个 -Q 参数连续执行两条命令(必须先 RNFR, 后 RNTO)
#
curl -u "user:passwd" ftp://192.168.0.100/ -Q "RNFR OldPath" -Q "RNTO NewPath"
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u013514928/article/details/102810250

智能推荐

dos下的format命令与rmdir命令_dos rmdir速度-程序员宅基地

文章浏览阅读1.8k次。dos下的format命令与rmdir命令如何学习dos命令_dos rmdir速度

hadoop2.2.0在64位readhat编译实战-程序员宅基地

文章浏览阅读509次。前阵子升级hadoop到2.2.0,官方32位的

项目中常用的D3D黑屏优化讲解和源码分享,DX系列的游戏都可以用_黑屏优化函数-程序员宅基地

文章浏览阅读3k次。诸多工作室在项目测试功能稳定后,为了更高效率的 榨干电脑性能 尽可能的多开会选择将画面黑屏,零渲染!!今天我们来拆解分析实现原理和方案 大部分游戏画面渲染基本用的都是DX系列 除了DX9 现在很多游戏也用到了DX11 他们版本有差异 在逆向程序员眼里区别不大。通过OD就可以查看游戏加载 了哪些模块,很多游戏都有加载d3d9.dll或者d3d11.dll 这也说明了 他们在正向开发过程中用到了 D3D进行了渲染。所以 也就可以在这些模块 里HOOK 劫持修改他的渲染函数 在..._黑屏优化函数

深度学习实战之车牌识别项目_深度学习车牌识别算法-程序员宅基地

文章浏览阅读2.9w次,点赞27次,收藏450次。车牌识别项目本博客关于深度学习完成后,做的有一个小项目,基本已完成。环境配置:Win7、Python3.7、Opencv4.10。作本项目,一是为总结,二是方便以后的回顾。车牌图像处理原理一、是读取图像,对图像进行预处理,包括(具有先后顺序):压缩图像、转换为灰度图像、灰度拉伸、开运算(去噪声)、将灰度图像和开运算后图像取差分图、整张图像二值化、canny边缘检测、闭运算、开运算、再次开运算..._深度学习车牌识别算法

使用NDIS驱动监测以太网络活动_ndis检测服务器网络必须接口打开吗-程序员宅基地

文章浏览阅读3.5k次。转载自: http://blog.csdn.net/ddtpower/article/details/656687 本论文提供了NDIS的基本的理解,应用程序如何与驱动程序交互,发挥驱动程序最佳性能。本论文也说明了使用例子驱动(PACKET.SYS)监测以太网的应用程序。本论文不是帮助程序员开发网络驱动而是帮助他使用这样的驱动。 引言 从计算机被发明以来,对_ndis检测服务器网络必须接口打开吗

mongonr日期对应java,Java QueryScorer類代碼示例-程序员宅基地

文章浏览阅读187次。本文整理匯總了Java中org.apache.lucene.search.highlight.QueryScorer類的典型用法代碼示例。如果您正苦於以下問題:Java QueryScorer類的具體用法?Java QueryScorer怎麽用?Java QueryScorer使用的例子?那麽恭喜您, 這裏精選的類代碼示例或許可以為您提供幫助。QueryScorer類屬於org.apache.lu..._highlightrequest

随便推点

Linux查看文本文件内容命令汇总_linux中查看conf中某个文字的内容-程序员宅基地

文章浏览阅读1.2k次。文章目录cat命令more命令less命令tail命令head命令cat命令查看全部全部内容,命令格式:cat [options] fileName#查看全部文件cat redis.conf #带行号查看文件cat -n redis.confmore命令分页显示文本文件内容。按空格和回车加载下面内容,回车加载的内容少,空格加载的内容多,上面的内容不消失。相当于下拉分页。q或者ctrl + c退出。查看大文件时使用 #查看redis.conf,按空格或回车向下翻 more redis.c_linux中查看conf中某个文字的内容

centOS7 下利用iptables配置IP地址白名单的方法-程序员宅基地

文章浏览阅读1.8k次。[url]http://www.jb51.net/article/98625.htm[/url]超级详细的iptables介绍[url]http://blog.csdn.net/sdytlm/article/details/6544913/[/url]开放一个范围的端口3000到5000[color=red][b]-A RH-Firewall-1-INPUT -m ..._centos7配置iptables来实现白名单访问固定端口

推荐系统之矩阵分解和FM_basic fm基本分解怎么用-程序员宅基地

文章浏览阅读417次,点赞2次,收藏4次。推荐系统之矩阵分解和FM一、矩阵分解1. 隐语义模型与矩阵分解2. 隐语义模型3. 矩阵分解算法的原理4. 矩阵分解算法的求解5. Basic SVD6. 编程实现7. 课后思考8. 参考资料9. 源码链接二、FM1. FM模型的引入1.1 逻辑回归模型及其缺点1.2 二阶交叉项的考虑及改进2. FM公式的理解3. FM模型的应用4. 代码实践4.1 调包实现**电影评分数据集实战**分类任务实战4.2 从零实现5. 课后思考6. 参考资料7. 源码链接一、矩阵分解1. 隐语义模型与矩阵分解协同过滤算_basic fm基本分解怎么用

HDU 1496 Equations (HASH)-程序员宅基地

文章浏览阅读87次。EquationsTime Limit: 6000/3000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3853Accepted Submission(s): 1551Problem DescriptionConsider equations ha..._hdu 1496 java

YOLOv5-6.x源码分析(二)---- val.py_yolov5 val.py-程序员宅基地

文章浏览阅读3.2k次,点赞9次,收藏29次。今天又看到了一位博主的分类专栏,更加坚定了我要养成坚持写博客的习惯。昨天把detect.py的源码解读了,今天来解读一下val.py。这个脚本文件主要是在每一轮训练结束后,验证当前模型的mAP、混淆矩阵等指标,并修改train.py的参数。这个脚本主要运用在train.py中的run函数里面,直接调用,当然也可以在模型训练完毕后,运行该脚本,进行模型的评估。预计我会自顶向下,来解读每一个脚本文件。这部分代码主要是对train.py训练后的ing进行评估和验证。难点在于。_yolov5 val.py

quartus找不到硬件USB-blaster及驱动无法安装,解决方法_quartuss没有硬件-程序员宅基地

文章浏览阅读1.2w次,点赞10次,收藏24次。quartus找不到硬件USB-blaster及驱动无法安装,解决方法Windows无法安装USB-Blaster解决办法:1、进入,计算机–>>设备管理器。2、找到设备USB-Blaster,此时是带有黄色感叹号的。3、右键,更新驱动程序软件。4、要选择“浏览计算机以查找驱动程序软件”,如选择自动搜索是不能安装成功的,一定要手动搜索。一般在安装的目录下搜索注:Quartus II 安装完成后自带有USB-Blaster的驱动程序,因此不用再到网上去特意下载USB-Blast_quartuss没有硬件

推荐文章

热门文章

相关标签