Linux必会100个命令(六十)curl

news2024/9/23 11:19:20

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

curl选项比较多,使用man curl或者curl -h获取帮助信息。

 

 

 

 

 

-a/--append                                上传文件时,附加到目标文件
--anyauth                                  可以使用“任何”身份验证方法
--basic                                    使用HTTP基本验证
-B/--use-ascii                             使用ASCII文本传输
-d/--data <data>                           HTTP POST方式传送数据
--data-ascii <data>                        以ascii的方式post数据
--data-binary <data>                       以二进制的方式post数据
--negotiate                                使用HTTP身份验证
--digest                                   使用数字身份验证
--disable-eprt                             禁止使用EPRT或LPRT
--disable-epsv                             禁止使用EPSV
--egd-file <file>                          为随机数据(SSL)设置EGD socket路径
--tcp-nodelay                              使用TCP_NODELAY选项
-E/--cert <cert[:passwd]>                  客户端证书文件和密码 (SSL)
--cert-type <type>                         证书文件类型 (DER/PEM/ENG) (SSL)
--key <key>                                私钥文件名 (SSL)
--key-type <type>                          私钥文件类型 (DER/PEM/ENG) (SSL)
--pass  <pass>                             私钥密码 (SSL)
--engine <eng>                             加密引擎使用 (SSL). "--engine list" for list
--cacert <file>                            CA证书 (SSL)
--capath <directory>                       CA目   (made using c_rehash) to verify peer against (SSL)
--ciphers <list>                           SSL密码
--compressed                               要求返回是压缩的形势 (using deflate or gzip)
--connect-timeout <seconds>                设置最大请求时间
--create-dirs                              建立本地目录的目录层次结构
--crlf                                     上传是把LF转变成CRLF
--ftp-create-dirs                          如果远程目录不存在,创建远程目录
--ftp-method [multicwd/nocwd/singlecwd]    控制CWD的使用
--ftp-pasv                                 使用 PASV/EPSV 代替端口
--ftp-skip-pasv-ip                         使用PASV的时候,忽略该IP地址
--ftp-ssl                                  尝试用 SSL/TLS 来进行ftp数据传输
--ftp-ssl-reqd                             要求用 SSL/TLS 来进行ftp数据传输
-F/--form <name=content>                   模拟http表单提交数据
-form-string <name=string>                 模拟http表单提交数据
-g/--globoff                               禁用网址序列和范围使用{}和[]
-G/--get                                   以get的方式来发送数据
-h/--help                                  帮助
-H/--header <line>                         自定义头信息传递给服务器
--ignore-content-length                    忽略的HTTP头信息的长度
-i/--include                               输出时包括protocol头信息
-I/--head                                  只显示文档信息
-j/--junk-session-cookies                  读取文件时忽略session cookie
--interface <interface>                    使用指定网络接口/地址
--krb4 <level>                             使用指定安全级别的krb4
-k/--insecure                              允许不使用证书到SSL站点
-K/--config                                指定的配置文件读取
-l/--list-only                             列出ftp目录下的文件名称
--limit-rate <rate>                        设置传输速度
--local-port<NUM>                          强制使用本地端口号
-m/--max-time <seconds>                    设置最大传输时间
--max-redirs <num>                         设置最大读取的目录数
--max-filesize <bytes>                     设置最大下载的文件总量
-M/--manual                                显示全手动
-n/--netrc                                 从netrc文件中读取用户名和密码
--netrc-optional                           使用 .netrc 或者 URL来覆盖-n
--ntlm                                     使用 HTTP NTLM 身份验证
-N/--no-buffer                             禁用缓冲输出
-p/--proxytunnel                           使用HTTP代理
--proxy-anyauth                            选择任一代理身份验证方法
--proxy-basic                              在代理上使用基本身份验证
--proxy-digest                             在代理上使用数字身份验证
--proxy-ntlm                               在代理上使用ntlm身份验证
-P/--ftp-port <address>                    使用端口地址,而不是使用PASV
-Q/--quote <cmd>                           文件传输前,发送命令到服务器
--range-file                               读取(SSL)的随机文件
-R/--remote-time                           在本地生成文件时,保留远程文件时间
--retry <num>                              传输出现问题时,重试的次数
--retry-delay <seconds>                    传输出现问题时,设置重试间隔时间
--retry-max-time <seconds>                 传输出现问题时,设置最大重试时间
-S/--show-error                            显示错误
--socks4 <host[:port]>                     用socks4代理给定主机和端口
--socks5 <host[:port]>                     用socks5代理给定主机和端口
-t/--telnet-option <OPT=val>               Telnet选项设置
--trace <file>                             对指定文件进行debug
--trace-ascii <file>                       Like --跟踪但没有hex输出
--trace-time                               跟踪/详细输出时,添加时间戳
--url <URL>                                Spet URL to work with
-U/--proxy-user <user[:password]>          设置代理用户名和密码
-V/--version                       显示版本信息
-X/--request <command>             指定什么命令
-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

 默认情况下,cur使用get方式发送参数

例如:

curl 
https://www.baidu.com/?tn=54093922_hao_pg

使用-d参数让curl使用post方式发送参数

例如:

curl -X POST -d 'tn=54093922_hao_pg' https://www.baidu.com

如果需要发送json格式参数,使用-H,-X,-d参数配合来实现

curl -H "Content-Type: application/json" -X POST -d '{"a1":123,"a2":"456"}' URL

-H代表header头,-X是指定什么类型请求(POST/GET/HEAD/DELETE/PUT/PATCH),-d代表传输什么数据。


使用-o下载文件。

例如:保存www.xxx.com网页到xxx.html

 curl -o xxx.html http://www.xxx.com  或 curl http://www.xxx.com >> xxx.html

测试网页返回值。例如:

 如图返回值200

保存http的response里面的cookie信息。内置option:-c(小写)
 curl -c cookiec.txt  http://www.xxx.com

保存http的response里面的header信息。内置option: -D

curl -D cookied.txt http://www.xxx.com

使用保存的cookie信息。内置option: -b

 curl -b cookiec.txt http://www.xxx.com

内置option:-A可以让我们指定浏览器去访问网站

 curl -A "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.0)" http://www.xxx.com

curl中内置option:-e可以让我们设定referer

curl -e "www.xxx.com" http://www.yyy.com

这样就会让服务器其以为你是从www.xxx.com点击某个链接过来的

有时候下载图片可以能是前面的部分名称是一样的,就最后的尾椎名不一样

 curl -O http://www.yyy.com/xxx[1-5].JPG

有时候下载的东西会比较大,这个时候我们可以分段下载。使用内置option:-r

 curl -r 0-100 -o xxx_part1.zip http://www.linux.com/xxx.zip
 curl -r 100-200 -o xxx_part2.zip http://www.linux.com/xxx.zip
 curl -r 200- -o xxx_part3.zip http://www.linux.com/xxx.zip
 cat xxx_part* > xxx.zipxxx.zip

curl可以通过ftp下载文件,curl提供两种从ftp中下载的语法

 curl -O -u 用户名:密码 ftp://www.xxx.com/xxx.zip
 curl -O ftp://用户名:密码@www.xxx.com/xxx.zip

curl不仅仅可以下载文件,还可以上传文件。通过内置option:-T来实现

 curl -T dodo1.JPG -u 用户名:密码 ftp://www.xxx.com/upload

显示抓取错误

 curl -f http://www.xxx.com/displayerror

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/488717.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ClickHouse学习笔记(五):ClickHouse 副本与分片

文章目录 1、概述2、数据副本2.1、副本的特点2.2、副本的定义形式 3、ReplicatedMergeTree 原理解析3.1、数据结构3.1.1 ZooKeeper 内的节点结构3.1.2 Entry 日志对象的数据结构 3.2、副本协同的核心流程3.2.1、INSERT 的核心执行流程3.2.2、MERGE 的核心执行流程3.2.3、MUTATI…

【LeetCode股票买卖系列:714. 买卖股票的最佳时机含手续费 | 暴力递归=>记忆化搜索=>动态规划】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

【Vue 基础】尚品汇项目-07-动态展示三级联动数据

由于TypeNav是全局组件&#xff0c;因此将“src/pages/Home”中的“TypeNav”文件夹移动到“src/components”文件夹中 在main.js中修改TypeNav的路径 删除测试请求部分代码 当组件挂载完毕&#xff0c;可以向服务器发请求&#xff0c;然后获取数据&#xff0c;显示数据了。在“…

maven从入门到精通 第二章 Maven中运行Java与Web项目

这里写自定义目录标题 一 maven中运行Java项目1.新建项目2. 运行项目2.1查看当前目录2.2 编译项目2.3测试当前项目2.4 生成jar包2.5 迁移数据位置 二 MAVEN中执行Web项目1.配置项目1.1 配置 web.html1.2 配置index.jsp1.3 注册servlet1.4 直接编译运行&#xff0c;发现配置失败…

机器人工程学习和研究的结构性失衡

结论&#xff1a;无解&#xff0c;谁是那屈指可数的幸运者/(ㄒoㄒ)/~~ 供给&#xff1a;培养的机器人工程专业人才 需求&#xff1a;市场企业主体招聘的相关人才 不匹配&#xff0c;错配&#xff0c;导致供给无效。 机器人工程学习和研究的结构性失衡可能是由多种原因导致的…

Java学习-MySQL-备份

Java学习-MySQL-备份 为什么要备份&#xff1a; 1.保证重要的数据不丢失 2.数据转移 MySQL数据库备份的方式&#xff1a; 1.直接拷贝物理文件 2.在Sqlyog 这种可视化工具中导出 3.使用命令行导出&#xff0c;mysqldump&#xff0c;命令行使用 Sqlyog导出表 1.右键表 → 备…

智慧畜牧三维可视化,图扑数字孪生赋能现代农业

前言 "畜牧业是我国重要的农业产业之一&#xff0c;对于国民经济的发展和人民群众的生活具有重要的意义。智慧畜牧作为现代畜牧业的发展方向之一&#xff0c;将信息技术和现代管理相结合&#xff0c;提高养殖效率和品质&#xff0c;为行业的可持续发展注入新的动力。智慧…

PySpark基础入门(5):Spark 内核调度

目录 Spark 内核调度 DAG 内存迭代计算 Spark并行度 Spark任务调度流程 Spark 内核调度 Spark任务调度&#xff1a;如何组织任务去处理RDD中每个分区的数据&#xff0c;根据RDD的依赖关系构建DAG&#xff0c;基于DAG划分Stage&#xff0c;将每个Stage中的任务发到指定节…

盘点那些免费开源、无比精致的图标库,无论是设计还是开发,都很好用

之前分享过很多好看精致的图标库&#xff0c;这对日常设计和开发工作&#xff0c;都很方便&#xff0c;欢迎大家尝试。 css.gg 详细介绍&#xff1a;https://www.thosefree.com/css-gg 一套漂亮的纯 CSS 实现的免费开源图标库&#xff0c;700多个时尚漂亮的 css 图标库&…

本地开发项目删除原有git信息,上传到自己的git仓库

1. 删除原有git信息 进入到项目的目录&#xff0c;右键&#xff0c;选择 git Bash Here 输入 rm -rf .git 查看当前的远程信息&#xff1a;git remote -v 如果有远程信息 使用 git remote rm origin 删除 2.添加自己的远程信息 使用 git remote add origin https://xxxx.git…

分布式事务 --- Seata事务模式、高可用

一、事务模式 1.1、XA模式 XA 规范 是 X/Open 组织定义的分布式事务处理&#xff08;DTP&#xff0c;Distributed Transaction Processing&#xff09;标准&#xff0c;XA 规范 描述了全局的TM与局部的RM之间的接口&#xff0c;几乎所有主流的数据库都对 XA 规范 提供了支持。…

三种常用的以太网端口链路类型:Access、Hybrid和Trunk

以太网是计算机网络中最常用的协议之一&#xff0c;它允许计算机在同一局域网上通信。在以太网中&#xff0c;交换机&#xff08;Switch&#xff09;是一个重要的组件&#xff0c;它们有许多不同的端口&#xff0c;用于连接不同的设备。为了管理和维护这些端口&#xff0c;有三…

Java 数组在内存中的结构是怎样的?数组访问、遍历、复制、扩容、缩容如何编写代码?

Java是一门面向对象的编程语言&#xff0c;数组是其中的重要数据结构之一。在Java中&#xff0c;数组是一种固定长度、有序的数据结构&#xff0c;可以存储一组相同数据类型的元素。在本文中&#xff0c;我们将详细介绍Java数组在内存中的结构。 Java数组的定义 在Java中&…

美国访问学者博士后签证过期后应如何更新?

“美国访问学者类J签证过期后应如何更新&#xff1f;”有读者希望知识人网分享相关经验。今天我们来简单介绍下美国签证免面谈代传递服务&#xff0c;以及其申请条件和相关流程&#xff0c;希望能对大家有所帮助。 首先我们需要明确两个概念&#xff1a; DS2019表的有效期&…

第一章(四):Django框架的模板(DTL):变量、标签、模板过滤器、模板继承、配置模板文件(staticfiles)

系列文章目录 备注&#xff1a;这里是Django系列文章的所有文章的目录 第一章(一) : Django框架如何创建项目、创建应用、创建templates&#xff1b;如何启动django项目&#xff1b; 第一章(二)&#xff1a;Django框架的模式、路由、视图&#xff1b; 第一章(三)&#xff1a;D…

copilot平替tabnine解析

1.copilot 借着最近chatgpt大火的东风&#xff0c;copilot又重新火了一把。 什么是copilot&#xff1f;直接上wiki百科上的解释 GitHub Copilot是GitHub和OpenAI合作开发的一个人工智能工具&#xff0c;用户在使用Visual Studio Code、Microsoft Visual Studio、Vim、Cursor或…

Flask使用Flask-SQLAlchemy对数据库操作详解二(配置、表与表之间一对一、多对一、多对多关系及增删改查参数和代码详细总结)

前面接&#xff1a;Flask使用Flask-SQLAlchemy对数据库操作详解二&#xff08;配置、表与表之间一对一、多对一、多对多关系及增删改查参数和代码详细总结&#xff09; 文章目录 4.增删改查操作4.1添加1. 使用add()方法添加新数据2. 使用create()方法创建新数据 4.2 查询数据1.…

ADAS/AD笔记之特斯拉Autopilot-HW3.0系统

摘要&#xff1a; 目前国内一般直接将高速NOA成为“L2”&#xff1b;因此&#xff0c;复杂度更高的城区NOA&#xff0c;就自然的映射到了“L2”。 一、概述&#xff1a; 特斯拉Autopilot系统首创了NOA这种淡化脱手/脱眼/脱脑&#xff08;驾驶自动化程度&#xff09;逻辑的功能…

电脑系统怎么选?Win?MacOS?Linux?

马上要学编程了&#xff0c;我们要学什么操作系统呢&#xff1f;是MacOS&#xff0c;还是Windows&#xff0c;或者是Linux或者其他&#xff01;那我们今天就来说说MacOS系统和Windows系统的优缺点&#xff0c;也介绍一下其他的系统。让你心里有底&#xff01; 1、Windows 首先当…

OpenShift 4 - 在 CI/CD Pipeline 中创建 KubeVirt 容器虚拟机 - 方法3

《OpenShift / RHEL / DevSecOps 汇总目录》 说明&#xff1a;本文已经在支持 OpenShift 4.12 的 OpenShift 环境中验证 文章目录 创建并运行 CI/CD Pipeline访问 VMPipeline 的 Task 解读 创建并运行 CI/CD Pipeline 执行命令&#xff0c;生成公钥-私钥对。 $ ssh-keygen$ l…