Linux 从入门到精通:curl 命令使用详解

这篇具有很好参考价值的文章主要介绍了Linux 从入门到精通:curl 命令使用详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. curl 安装和使用介绍

curl 命令是一个在 Linux 系统中利用 URL 工作的命令行文件传输工具,常用于服务访问和文件下载。curl 支持 HTTP、HTTPS、FTP 等多种协议(默认是 HTTP 协议),可用于模拟服务请求以及上传和下载文件。

1.1 安装命令

并非所有系统都自带 curl 命令,对于简洁版的 Linux 系统,可以使用命令安装: yum install curl ,安装完成后,使用 curl --version 查看版本信息。

1.2 简单使用

  • curl 命令的标准语法: curl [options] [url]
  • 不使用参数项执行请求: curl http://www.baidu.com
  • 不使用参数时会直接请求指定的服务地址,并将请求结果源代码输出到命令行中。
    linux curl命令详解,linux,linux,服务器

1.3 使用参数项

常见参数项包括:

  • -i :显示响应头信息
  • -o :将请求结果写入到指定文件中
  • -s :静默模式,不显示额外信息
  • -w :指定输出内容格式

如测试接口是否正常: curl -o /dev/null -s -w %{http_code} http://www.baidu.com

  • 更多参数项,可以使用 curl -h/--help 查询。

2. 使用 curl 模拟 GET/POST 请求

2.1 模拟 GET 请求

  • 直接使用 curl 无参请求方式默认为 GET 请求,如: curl http://localhost:8080/getUserInfo?id=1
  • 还可以使用 -X 参时来指定请求方式为 GET

2.2 模拟 POST 请求

POST 请求时,可以使用以下参数:

  • -X :指定请求方式(如 POST)
  • -H :指定请求头信息(如 “Content-Type:application/json”)
  • -d :指定请求参数内容(可以使用多次,或一次指定多个参数,甚至传递 json 对象;还可以使用文件作为参数)
### 指定地址、请求头信息、请求类型、请求参数
curl 'http://localhost:8080/cnd_inke/qc/v2/inke' \
-H "Content-Type:application/json" \
-H 'Authorization:bearer' \
-X POST \
-d '{"Id":"12330245","visitTimes":1,"docType":"散文","docId":"36e5854f5f0e4f80b7ccc6c52c063243"}'
  • -H 指定 headers 头的时候需要单个使用,即一个 -H 指定一个头字段信息

2.3 发送 json 数据

使用 POST 请求体是 json 格式数据,使用 -d 参数可以指定 json 字符串;也可以将数据放在 json 文件中,然后引用文件作为参数。

### test.json 文件存储 json 字符串
curl 'http://localhost:8080/cnd_inke/qc/v2/inke' \
-H "Content-Type:application/json" \
-H 'Authorization:bearer' \
-X POST \
-d ’@/test.json'

2.4 携带 Cookies

  1. 使用 -D 参数保存请求的 Cookies: curl -o page1.html -D cookie.txt http://www.baidu.com
  2. 模拟浏览器请求并保存 Cookies: curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -o page.html -D cookie.txt http://mydomain.net
  3. 请求时携带 Cookie: curl -b cookie.txt http://www.baidu.com

3. 使用 curl 上传和下载文件

3.1 文件上传

使用 -F 参数上传文件: curl -F 'file=@test.png;type=image/png' http://www.baidu.com/upload

  • 使用 -F 参数时,默认使用文件上传格式
  • 可指定多个文件和文件类型,用 ; 分隔

3.2 文件下载

Curl 下载文件时使用 -O 选项,默认使用网络文件的名字作为本地文件名。
文件下载方式有:

  1. 可以使用重定向保存到指定文件: … >> index.html
  2. 如果想要为下载的文件指定名称,则使用 -o 代替 -Ocurl -o file2.pdf www.example.com/file.pdf
  3. -# ,显示下载进度和速度等信息,可使用 -s 关闭显示
  4. --limit-rate ,设置下载时最大下载速度,如 --limit-rate 1m
  5. 使用 -C 参数可以设置开启断点续传
curl http://mirrors.163.com/centos/8.1.1911/isos/x86_64/CentOS-8.1.1911-x86_64-dvd1.iso

批量下载文件

  • curl 还支持下载多个文件,只需要多次指定 -O 和文件地址即可,如 curl -O [URL1] -O [URL2] -O [URL3] ...
  • 如果多个文件地址符合规律,可以使用正则来批量下载:curl -O ftp://ftp.example.com/file[1-30].jpg

4. curl 使用 ip 代理请求服务

4.1 设置代理信息

curl 命令还可以使用 -x 参数来设置 http(s) 代理、socks 代理,设置用户名、密码、认证信息方式如下文章来源地址https://www.toymoban.com/news/detail-725763.html

# 使用HTTP代理访问;如果未指定端口,默认使用8080端口;
# protocol 默认为 http_proxy,其他可能的值包括:
# http_proxy、HTTPS_PROXY、socks4、socks4a、socks5;
# 如: --proxy 8.8.8.8:8080; -x "http_proxy://aiezu:123@aiezu.com:80"
-x host:port
-x [protocol://[user:pwd@]host[:port]
--proxy [protocol://[user:pwd@]host[:port]
  • 参数 -x 与 --proxy 等价
  • 如果未指定端口,默认使用 8080 端口
  • protocol 协议默认为 http_proxy 代理

4.2 使用 ip 代理示例

# 指定 http 代理 IP 和端口
curl -x 113.185.19.192:80 http://baidu.com
#显式指定为 http 代理
curl -x http_proxy://113.185.19.192:80 http://baidu.com
 
#指定 https 代理
curl -x HTTPS_PROXY://113.185.19.192:80 http://baidu.com
 
#指定代理用户名和密码,basic 认证方式
curl -x aiezu:123456@113.185.19.192:80 http://baidu.com
curl -x 113.185.19.192:80 -U aiezu:123456 http://baidu.com
#指定代理协议、用户名和密码,basic 认证方式
curl -x HTTPS_PROXY://aiezu:123456@113.185.19.192:80 http://baidu.com
 
#指定代理用户名和密码,ntlm 认证方式
curl -x 113.185.19.192:80 -U aiezu:123456 --proxy-ntlm http://baidu.com

到了这里,关于Linux 从入门到精通:curl 命令使用详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux系统中curl命令用法详解

            在Linux系统中curl是一个利用URL规则在命令行下工作的文件传输工具,是一款强大的http命令行工具。它支持文件的上传和下载,是综合传输工具。         curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。     

    2024年01月24日
    浏览(43)
  • 『Linux从入门到精通』第 ⑪ 期 - Linux调试器——gdb使用详解

    🌸作者简介: 花想云 ,在读本科生一枚,致力于 C/C++、Linux 学习。 🌸 专栏简介:本文收录于 C语言初阶专栏 ,本专栏主要内容为本专栏主要内容为Linux的系统性学习,专为小白打造的文章专栏。 🌸 相关专栏推荐: C语言初阶系列 、 C语言进阶系列 、 C++系列 、 数据结构

    2024年02月02日
    浏览(42)
  • 【Linux从入门到精通】vim的基本使用各种操作详解

       文章目录 一、vim编辑器简单介绍 二、vim编辑器的四种模式 2、1 正常/普通/命令模式(Normal mode) 2、2 插入模式(Insert mode) 2、3 末行模式(last line mode) 三、命令模式的相关操作实例 3、1 光标的相关操作 3、2 文本操作 四、插入模式下的相关操作 五、末行模式下的相关操作 🙋

    2024年02月04日
    浏览(43)
  • Ceph入门到精通-远程开发Windows下使用SSH密钥实现免密登陆Linux服务器

    工具: win10、WinSCP 打开终端,使账号密码登录,输入命令 Downloading WinSCP-6.1.1-Setup.exe :: WinSCP 打开powershell  ssh-keygen -t rsa 注意路径 点击高级 工具有个向服务器推送公钥 powershell ssh root@192.xxxx        

    2024年02月14日
    浏览(57)
  • linux curl命令使用教程(curl指令)

    curl是一个用于发送HTTP请求的命令行工具,它支持多种协议,包括HTTP、HTTPS、FTP、SMTP等。curl可以用来下载文件、上传文件、发送POST请求、发送表单数据等。 curl的基本用法如下: 其中,URL是要请求的网址或者文件的URL。 常用的选项包括: -o, --output file :将下载的文件保存到

    2024年02月09日
    浏览(49)
  • 【Linux从入门到精通】线程互斥与互斥锁的使用与原理详解

      上篇文章我们对线程 | 线程介绍线程控制介绍后,本篇文章将会对多线程中的线程互斥与互斥锁的概念进行详解。同时结合实际例子解释了可重入与不被重入函数、临界资源与临界区和原子性的概念。希望本篇文章会对你有所帮助。 文章目录 引入 一、重入与临界 1、1 可重

    2024年02月07日
    浏览(44)
  • Linux从入门到精通 --- 2.基本命令入门

    2.1 Linux的目录结构 Linux的目录结构是一个树型结构,没有盘符概念,只有一个根目录/,所有文件都在它下面 2.1.1 路径描述方式 Linux系统中,路径之间的层级关系用:/来表示 Linux系统中,路径之间的层级关系用:来表示 2.2 Linux命令入门 命令行:Linux终端,是一种命令提示符

    2024年04月10日
    浏览(53)
  • 【Linux系统基础快速入门详解】Linux核心find命令原理详解和每个命令使用场景以及实例

    鱼弦:CSDN内容合伙人、CSDN新星导师、51CTO(Top红人+专家博主) 、github开源爱好者(go-zero源码二次开发、游戏后端架构 https://github.com/Peakchen) find 命令是在 Linux 操作系统中用于搜索文件和目录的命令行工具。它可以根据不同的条件来搜索特定的文件和目录,这些条件可以是文

    2024年02月07日
    浏览(68)
  • 『Linux从入门到精通』第 ① 期 - Linux环境搭建 | 云服务器购买 | Xshell环境配置

    目录 💐专栏导读 💐文章导读  🌷Linux环境的搭建方式 🌷云服务器购买 🌷Xshell的安装及使用 🌺Xshell安装 🌺Xshell使用 🌷如何进行共享账号? 🌺创建账号 🌺设置密码 🌺如何登录自己的账号 🌺root与普通用户的区别 🌸作者简介: 花想云 ,在读本科生一枚,致力于 C/

    2024年02月01日
    浏览(72)
  • Linux 从入门到精通:Telnet 命令测试服务端口连通性

    1.1 Telnet 基本信息 Telnet 程序命令是基于 TELNET 协议的远程登录客户端程序。Telnet 是 TCP/IP 协议族的成员,是 Internet 远程登录服务的标准协议和主要方式。 Telnet 命令可以用来远程登录或确定远程服务的状态,比如确定远程服务器的某个端口是否能访问。 使用方式: 如果使用

    2024年02月15日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包