当前位置: 首页 > news >正文

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

在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

相关文章:

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

在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具&#xff0c;可以说是一款很强大的http命令行工具。它支持文件的上传和下载&#xff0c;是综合传输工具。 curl选项比较多&#xff0c;使用man curl或者curl -h获取帮助信息。 -a/--append …...

物联网硬件安全与整改梳理(1)

物联网安全工作梳理(0)_luozhonghua2000的博客-CSDN博客 上篇讲了物联网总体安全知识框架和工作梳理,这篇单独讲下硬件安全方面的问题和整改知识技能点。硬件安全主要分5个方面来讲:硬件安全现状,硬件安全技术分析,典型案例,安全架构整改,安全整改措施。 智能硬件安全总…...

【大数据学习篇3】HDFS命令操作与MR单词统计

1. HDFS命令使用 [rootmaster bin]# su hd[hdmaster bin]$ #查看/目录[hdmaster bin]$ hdfs dfs -ls / 5 #在/目录创建一个为test名字的文件夹[hdmaster bin]$ hdfs dfs -mkdir /test#查看/目录[hdmaster bin]$ hdfs dfs -ls Found 1 itemsdrwxr-xr-x - hd supergroup …...

java中设计模式总结

设计模式是实际工作中写的各种代码进行高层次抽象的总结&#xff0c;其中最出名的当属 Gang of Four (GoF) 的分类了&#xff0c;他们将设计模式分类为 23 种经典的模式&#xff0c;根据用途又可以分为三大类&#xff0c;分别为创建型模式、结构型模式和行为型模式。 有一些重…...

ChatGPT不到1分钟生成全部代码,你就说慌不慌吧?

生成过程视频&#xff1a; 如何使用ChatGPT快速生成代码 (qq.com) 如何使用ChatGPT快速生成SpringBoot集成Dubbo的完整案例 1、Dubbo最新版本有哪些新特性 Dubbo最新版本是2.7.9&#xff0c;于2021年6月发布。以下是该版本的一些新特性&#xff1a; 1&#xff09;增加Dubbo-go…...

Python进阶知识(1)—— 什么是爬虫?爬文档,爬图片,万物皆可爬,文末附模板

文章目录 01 | &#x1f352; 什么是 P y t h o n 爬虫&#xff1f; \color{red}{什么是Python爬虫&#xff1f;} 什么是Python爬虫&#xff1f;&#x1f352;02 | &#x1f34a; 怎么发起网络请求&#xff1f; \color{orange}{怎么发起网络请求&#xff1f;} 怎么发起网络请求…...

如何在andorid native layer中加log function.【转】

在开发Android一些应用或是链接库, 在程序代码中埋一些log是一定有需要的, 因为谁也无法保证自己所写出来的程序一定没有问题, 而log机制正是用来追踪bug途径的一种常用的方法. 在andorid中提供了logcat的机制来作log的目的, 在javalayer有logcat class可以用,哪在nativelayer呢…...

FreeRTOS 空闲任务

文章目录 一、空闲任务详解1. 空闲任务简介2. 空闲任务的创建3. 空闲任务函数 二、空闲任务钩子函数详解1. 钩子函数2. 空闲任务钩子函数 三、空闲任务钩子函数实验 一、空闲任务详解 1. 空闲任务简介 当 FreeRTOS 的调度器启动以后就会自动的创建一个空闲任务&#xff0c;这…...

快速生成HTML结构语法、快速生成CSS样式语法以及emmet

快速生成HTML结构语法 1、生成标签直接输入标签名按Tab键即可 比如 div 然后tab键 2、如果要生成多个相同标签&#xff0c;加上就可以了&#xff0c;比如 div3就可以快捷生成三个div 3、如果有父子级关系的标签&#xff0c;可以用 > 比如 ul>li 就可以了 4、如果有兄弟关…...

企业直播该如何做?硬件设备、网络环境、设备连接和观看权限等整个直播流程教程

这是一份面向直播新手的企业直播说明教程&#xff0c;字数较多&#xff0c;完整看完&#xff0c;可能会需要求10分钟&#xff0c;建议您可以【收藏】&#xff0c;如果本文章对您有帮助&#xff0c;就帮助【点个赞】吧~~~ 阿酷TONY / 2023-5-12 / 原创文章 / 长沙 / 文章…...

第4章 静态网站部署

第4章 静态网站部署 Nginx是一个HTTP的web服务器&#xff0c;可以将服务器上的静态文件&#xff08;如HTML、图片等&#xff09;通过HTTP协议返回给浏览器客户端 4.1 案例&#xff1a;将ace-master这个静态网站部署到Nginx服务器上 4.1.1 通过Xftp将ace-master到linux服务器…...

免费版的mp3格式转换器有哪些?这三款软件帮你实现!

在娱乐文化越来越丰富的今天&#xff0c;人们越来越追求音乐、视频等娱乐方式&#xff0c;其中音乐作为一种能够治愈心灵的艺术形式备受欢迎。但要欣赏一首美妙的音乐&#xff0c;就需要我们自己去制作、编辑并转换其格式&#xff0c;以适应各种软件如MP3、MP4等格式。 方法一…...

版本控制器git

目录 一、版本控制系统 二、工作流程和使用命令 &#xff08;1&#xff09;工作流程 &#xff08;2&#xff09;一次完整流程的相关命令 1.初始化1个空的本地仓库 2.克隆方式1个远程仓库到本地仓库 3.新文件添加到暂存区 4.查看仓库状态&#xff0c;显示有变更的文件 5…...

接口自动化测试 vs. UI自动化测试:为什么前者更快,更省力,更稳定?

从入门到精通&#xff01;企业级接口自动化测试实战&#xff0c;详细教学&#xff01;&#xff08;自学必备视频&#xff09; 目录 前言&#xff1a; 一、什么是接口自动化测试和 UI 自动化测试 二、为什么接口自动化测试效率比 UI 自动化测试高 1.执行速度 2.维护成本 3.…...

看Chat GPT解答《情报学基础教程》课后思考和习题

情报学基础教程课后思考题 情报学经验规律 (一)按照布拉德福定律,设布拉德福常数为5, 当核心期刊数量为20时,外围一区和外围二区期刊数量各是多少? 答: 核心期刊数和外围期刊比例关系:nc: n1: n2 = 1: a : a2 (a称为布拉德福常数) 外围一区期刊数量为20*5=100,…...

线程同步、生产者消费模型和POSIX信号量

gitee仓库&#xff1a; 1.阻塞队列代码&#xff1a;https://gitee.com/WangZihao64/linux/tree/master/BlockQueue 2.环形队列代码&#xff1a;https://gitee.com/WangZihao64/linux/tree/master/ringqueue 条件变量 概念 概念&#xff1a; 利用线程间共享的全局变量进行同…...

(六)实现好友管理:教你如何在即时通信系统中添加好友

文章目录 一、引言1.1 即时通信系统中用户增加好友功能的重要性和应用场景1.2 TCP连接传输用户增加好友请求的基本原理 二、实现用户增加好友功能2.1 实现用户好友列表的展示和管理2.1.1 使用QListWidgetItem控件展示好友列表客户端关键代码展示服务端关键代码展示 三、效果展示…...

使用循环数组和环形链表实现双端队列

本文主要介绍了两种实现双端队列的数据结构 —— 基于环形链表和循环数组。两种实现方式的基本原理和特点&#xff0c;以及详细的Java代码实现和分析。 引言 双端队列(Deque, Double-ended queue)是一种具有队列和栈的性质的数据结构。它允许在两端插入和删除元素&#xff0c…...

谁想和我一起做低代码平台!一个可以提升技术,让简历装x的项目

序言 正如文章标题所述&#xff0c;最近一段时间低代码这个概念非常的火&#xff0c;但其实在不了解这个东西的时候觉得它真的很炫酷&#xff0c;从那时就萌生了做一个低代码平台的想法。 但随着时间的变化&#xff0c;现在市面上低代码各个业务方向的平台都有了&#xff0c;可…...

知识推理——CNN模型总结(一)

记录一下我看过的利用CNN实现知识推理的论文。 最后修改时间&#xff1a;2023.05.12 目录 1.ConvE 1.1.解决的问题 1.2.优势 1.3.贡献与创新点 1.4.方法 1.4.1 为什么用二维卷积&#xff0c;而不是一维卷积&#xff1f; 1.4.2.ConvE具体实现 1.4.3.1-N scoring 1.5.…...

OpengES中 GLSL优化要点

本文整理一些日常积累的可以优化的方向 一.延迟vector计算 在进行float与vector计算的时候&#xff0c;可以先确定float再计算&#xff0c;不要多个float一起计算 如&#xff1a; highp float f0,f1;highp vec4 v0,v1;v0 (v1 * f0) * f1;优化为 highp float f0,f1;highp vec…...

项目集角色定义

一、项目集经理的角色 项目集经理是由执行组织授权、领导团队实现项目集目标的人员。项目集经理对项目集的领导、 实施和绩效负责&#xff0c;并负责组建一支能够实现项目集目标和预期项目集效益的项目集团队。项目集经 理的角色与项目经理的角色不同。二者之间的差异是基于项…...

Unreal Engine11:触发器和计时器的使用

写在前面 主要是介绍一下触发器和计时器的使用&#xff1b; 一、在Actor中使用触发器 1. 新建一个C类 创建的C类也是放在Source文件夹中的Public和Private文件夹中&#xff1b;选择Actor作为继承的父类&#xff1b;头文件包括一个触发器和两个静态网格&#xff0c;它们共同…...

Qt之信号槽原理

Qt之信号槽原理 一.概述 所谓信号槽&#xff0c;实际就是观察者模式。当某个事件发生之后&#xff0c;比如&#xff0c;按钮检测到自己被点击了一下&#xff0c;它就会发出一个信号&#xff08;signal&#xff09;。这种发出是没有目的的&#xff0c;类似广播。如果有对象对这…...

【MySqL】 表的创建,查看,删除

目录 一.使用Cmd命令执行操作 1.使用&#xff08; mysql -uroot -p)命令进入数据库 2.创建表之前先要使用数据库 3.创建表之前要先确定表的名称&#xff0c;列名&#xff0c;以及每一列的数据类型及属性 4.创建表 注意&#xff1a; 5.查看所有已创建的表 6.查看单表 …...

Python 字典修改对应的键值

将 key ‘1’ 的值 ‘1’, ‘3’, ‘5’ 字符&#xff0c;修改为 ‘2’, ‘4’, ‘5’ 。 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free&#xff1a;大咖免费“圣经”教程《 python 完全自学教程》&#xff0c;不仅仅是基础那么简单………...

【JFace】ComboViewer 设置了默认值,但没有效果

问题 在数据回显时&#xff0c;明明在代码中通过comboViewer.setSelection设置了默认值&#xff0c;但没有生效&#xff08;回显&#xff09;&#xff0c;是怎么回事呢 &#xff1f; 分析 如果comboViewer.setSelection(new StructuredSelection(items[1]))不起作用&#xf…...

基于Redis的Stream结构作为消息队列,实现异步秒杀下单

文章目录 1 认识消息队列2 基于List实现消息队列3 基于PubSub的消息队列4 基于Stream的消息队列5 基于Stream的消息队列-消费者组6 基于Redis的Stream结构作为消息队列&#xff0c;实现异步秒杀下单 1 认识消息队列 什么是消息队列&#xff1a;字面意思就是存放消息的队列。最…...

ePWM模块-时基模块(2)

ePWM模块(2) 时基模块的使用 TBPRD:周期寄存器 (设置的时钟周期存入此,可通过阴影寄存器缓冲后写入,也可通过活动寄存器立即写入) TBCTR:时基计数变值寄存器 (时基当前所计数的值存入,用于和所设定周期值比较) TBPHS:时基相位寄存器 TBSTS:时基状态寄存器 …...

让GPT对话写小说

## 来自你的消息: 写个小说 ## 来自ChatAI的消息: 很好&#xff0c;我可以为您编写一个小故事。以下是一个短小精干的故事&#xff1a; 《夜行者》 夜&#xff0c;是个寂静而神秘的时间&#xff0c;很多人都选择睡眠。但在这个城市&#xff0c;有一群人——夜行者&#xff0c;他…...