当前位置: 首页 > 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.…...

React Native 开发环境搭建(全平台详解)

React Native 开发环境搭建&#xff08;全平台详解&#xff09; 在开始使用 React Native 开发移动应用之前&#xff0c;正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南&#xff0c;涵盖 macOS 和 Windows 平台的配置步骤&#xff0c;如何在 Android 和 iOS…...

回溯算法学习

一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...

Netty从入门到进阶(二)

二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架&#xff0c;用于…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解

在 C/C 编程的编译和链接过程中&#xff0c;附加包含目录、附加库目录和附加依赖项是三个至关重要的设置&#xff0c;它们相互配合&#xff0c;确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中&#xff0c;这些概念容易让人混淆&#xff0c;但深入理解它们的作用和联…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程&#xff1f; 2. Java创建对象的过程&#xff1f; 3. 对象的生命周期&#xff1f; 4. 类加载器有哪些&#xff1f; 5. 双亲委派模型的作用&#xff08;好处&#xff09;&#xff1f; 6. 讲一下类的加载和双亲委派原则&#xff1f; 7. 双亲委派模…...

DeepSeek源码深度解析 × 华为仓颉语言编程精粹——从MoE架构到全场景开发生态

前言 在人工智能技术飞速发展的今天&#xff0c;深度学习与大模型技术已成为推动行业变革的核心驱动力&#xff0c;而高效、灵活的开发工具与编程语言则为技术创新提供了重要支撑。本书以两大前沿技术领域为核心&#xff0c;系统性地呈现了两部深度技术著作的精华&#xff1a;…...

水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关

在水泥厂的生产流程中&#xff0c;工业自动化网关起着至关重要的作用&#xff0c;尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关&#xff0c;为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多&#xff0c;其中不少设备采用Devicenet协议。Devicen…...

【Linux】Linux安装并配置RabbitMQ

目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的&#xff0c;需要先安…...

云安全与网络安全:核心区别与协同作用解析

在数字化转型的浪潮中&#xff0c;云安全与网络安全作为信息安全的两大支柱&#xff0c;常被混淆但本质不同。本文将从概念、责任分工、技术手段、威胁类型等维度深入解析两者的差异&#xff0c;并探讨它们的协同作用。 一、核心区别 定义与范围 网络安全&#xff1a;聚焦于保…...

[特殊字符] 手撸 Redis 互斥锁那些坑

&#x1f4d6; 手撸 Redis 互斥锁那些坑 最近搞业务遇到高并发下同一个 key 的互斥操作&#xff0c;想实现分布式环境下的互斥锁。于是私下顺手手撸了个基于 Redis 的简单互斥锁&#xff0c;也顺便跟 Redisson 的 RLock 机制对比了下&#xff0c;记录一波&#xff0c;别踩我踩过…...