首页 > 系统相关 >Linux curl命令详解使用

Linux curl命令详解使用

时间:2024-09-20 10:48:35浏览次数:12  
标签:file -- 详解 https Linux curl com example

curl 是一个非常强大且灵活的工具,支持多种协议(如 HTTP、HTTPS、FTP 等),并通过各种选项支持不同的请求方式、认证机制、代理设置、传输限制等。这些参数可以极大地提高网络请求中的效率和灵活性。

curl 命令的基本语法

curl [options] [URL...]
  • options:指定不同操作的参数。
  • URL:目标资源的地址,可以是一个或多个。

curl 常用参数详解

1. 数据输出相关选项
  • -o [file]:将响应内容保存到指定文件。

    curl -o output.html https://example.com
    
  • -O:将文件下载并保留其原始文件名。

    curl -O https://example.com/file.zip
    
  • -J:根据 Content-Disposition 头部信息保存文件名(与 -O 配合使用)。

    curl -OJ https://example.com/download
    
  • -C -:断点续传。继续从上次中断的位置下载文件。

    curl -C - -O https://example.com/largefile.zip
    
  • -L:跟随重定向(3xx 状态码)。

    curl -L https://short.url/redirect
    
  • -s:静默模式,不输出错误和进度信息。

    curl -s https://example.com
    
  • -S:与 -s 一起使用,在静默模式下显示错误信息。

    curl -sS https://example.com
    
  • -v:详细模式,显示请求和响应的详细信息,用于调试。

    curl -v https://example.com
    
  • -i:显示响应头和响应体。

    curl -i https://example.com
    
  • -I:仅显示响应头。

    curl -I https://example.com
    
  • -k:忽略 SSL 证书验证错误。

    curl -k https://self-signed.badssl.com/
    
2. 数据发送相关选项
  • -d [data]:使用 POST 方法发送数据。数据可以是键值对或 JSON 格式。

    curl -d "key1=value1&key2=value2" https://api.example.com/submit
    curl -d '{"name":"John","age":30}' -H "Content-Type: application/json" https://api.example.com/submit
    
  • -F [name=content]:提交表单数据,可以上传文件。

    curl -F "file=@/path/to/file.jpg" https://api.example.com/upload
    
  • -X [method]:指定 HTTP 请求方法,如 GET、POST、PUT、DELETE 等。

    curl -X DELETE https://api.example.com/resource/1
    
3. 请求头相关选项
  • -H [header]:自定义 HTTP 请求头信息,如 Content-TypeAuthorization

    curl -H "Authorization: Bearer token123" https://api.example.com/data
    
  • -A [user-agent]:设置用户代理(User-Agent),模拟特定浏览器请求。

    curl -A "Mozilla/5.0" https://example.com
    
  • -e [referer]:设置 Referer 请求头,用于模拟从特定页面跳转的请求。

    curl -e https://example.com https://other.example.com
    
  • --compressed:请求压缩内容并自动解压。

    curl --compressed https://example.com
    
  • -b [cookie]:发送带有指定 Cookie 的请求。

    curl -b "name=value" https://example.com
    
  • -c [cookie-file]:将服务器返回的 Cookie 保存到指定文件中。

    curl -c cookies.txt https://example.com
    
4. 认证与安全相关选项
  • -u [user:password]:用于 HTTP 基本认证,发送用户名和密码。

    curl -u user:pass https://example.com/protected
    
  • --proxy-user [user:password]:在使用代理服务器时,指定代理的用户名和密码。

    curl --proxy-user proxyuser:password -x http://proxy.example.com:8080 https://example.com
    
  • --key [key-file]:使用指定的私钥文件(用于 HTTPS)。

    curl --key /path/to/private.key https://example.com
    
  • --cert [cert-file]:使用指定的客户端证书文件。

    curl --cert /path/to/cert.pem https://example.com
    
  • --cacert [CA-cert-file]:使用指定的 CA 证书文件验证服务器证书。

    curl --cacert /path/to/ca.crt https://example.com
    
  • --ssl-reqd:强制使用 SSL/TLS。

    curl --ssl-reqd https://example.com
    
5. 代理相关选项
  • -x [proxy]:使用指定的代理服务器发送请求。

    curl -x http://proxy.example.com:8080 https://example.com
    
  • --proxy-user [user:password]:在使用代理服务器时,指定代理的用户名和密码。

    curl --proxy-user proxyuser:password -x http://proxy.example.com:8080 https://example.com
    
  • --noproxy [no-proxy-list]:对于指定的主机,不使用代理。

    curl --noproxy "example.com" https://example.com
    
6. 限制与超时选项
  • --max-time [seconds]:设置最大请求时间,超过此时间 curl 会自动终止。

    curl --max-time 10 https://example.com
    
  • --connect-timeout [seconds]:设置最大连接时间。

    curl --connect-timeout 5 https://example.com
    
  • --limit-rate [speed]:限制传输速度,可以用 km 表示千字节/秒或兆字节/秒。

    curl --limit-rate 100k https://example.com
    
  • -m [seconds]:设置整个操作的超时时间,与 --max-time 类似。

    curl -m 20 https://example.com
    
7. 多文件与并行处理选项
  • -Z:启用并行处理多个 URL 请求。

    curl -Z https://example.com/page1 https://example.com/page2
    
  • -K [config-file]:从指定的配置文件中读取 curl 参数。

    curl -K config.txt
    
8. 调试与开发选项
  • --trace [file]:记录请求和响应的详细信息到文件。

    curl --trace trace.log https://example.com
    
  • --trace-ascii [file]:以 ASCII 格式记录 trace 信息。

    curl --trace-ascii trace.txt https://example.com
    
  • --stderr [file]:将错误信息重定向到指定文件。

    curl --stderr errors.log https://example.com
    
  • -w [format]:定义如何显示最终状态的格式,如 HTTP 状态码、传输时间等。

    curl -w "HTTP Code: %{http_code}\nTotal Time: %{time_total}\n" https://example.com
    
9. 其他选项
  • -q:禁用 .curlrc 配置文件。

    curl -q https://example.com
    
  • -h:显示帮助信息,列出所有可用选项。

    curl -h
    
  • -V:显示 curl 的版本信息。

    curl -V
    

`

标签:file,--,详解,https,Linux,curl,com,example
From: https://blog.csdn.net/promise524/article/details/141907421

相关文章

  • 国产linux系统(银河麒麟,统信uos)使用 PageOffice 国产版实现前端框架内置对话框在Word中
    PageOffice国产版:支持信创系统,支持银河麒麟V10和统信UOS,支持X86(intel、兆芯、海光等)、ARM(飞腾、鲲鹏、麒麟等)、龙芯(LoogArch)芯片架构。本示例关键代码的编写位置Vue+Springboot注意本文中展示的代码均为关键代码,复制粘贴到您的项目中,按照实际的情况,例如文档路径,用户名等做......
  • 基于Linux系统静默安装Oracle数据库
    基于Linux系统静默安装Oracle数据库a.安装环境准备步骤1:环境准备安装依赖如果服务器能连接网络,直接安装所需的依赖库:yuminstalllibnsllibnsl2-devellibaio-devellibcap-develxorg-x11-utilsxauthgccmakelibstdc++-develsysstatsmartmontoolsglibc-compat......
  • 详解Vue事件总线的原理与应用:EventBus
    Vue事件总线-组件通信的桥梁引言在Vue.js开发中,组件通信是一个重要的话题。Vue提供了多种方式来实现不同组件之间的通信,譬如Props、$emit、Ref实例、Vuex状态管理及事件总线等等,可谓是五花八门,它们之间使用各有优缺点,主要取决于你的使用场景。本篇文章我们主要介绍......
  • Linux | 进程间通信:管道、消息队列、共享内存与信号量
    文章目录《深入理解进程间通信:管道、消息队列、共享内存与信号量》一、进程间通信介绍(一)进程间通信目的(二)进程间通信发展(三)进程间通信分类二、管道(一)什么是管道(二)匿名管道(三)管道特点(四)命名管道三、共享内存(一)共享内存简介(二)共享内存数据结构(三)共享内存函数四、消息队......
  • C++ | 引用详解
    文章目录C++引用详解一、什么是引用二、引用的语法三、引用的特点1.必须初始化2.与原始对象具有相同的内存地址3.没有独立的存储空间4.传递参数高效四、引用的用途1.函数参数传递2.返回值3.用于实现运算符重载五、引用与指针的区别1.语法2.初始化3.空值4.操......
  • ⭐️Linux系统性能调优技巧
    Linux系统性能调优技巧Linux系统性能调优技巧引言1.监控系统性能1.1`top`命令1.2`htop`命令1.3`vmstat`命令1.4`iostat`命令1.5`sar`命令2.优化磁盘性能2.1磁盘分区2.2磁盘阵列2.3固态硬盘(SSD)2.4磁盘调度算法3.优化内存性能3.1内存管理3.2内存分配......
  • Java JNA、JNI、ProcessBuilder、Runtime.getRuntime.exec()详解
     Java提供了几种方式与非Java代码进行交互(比如调用本地库或执行外部程序),其中包括JNA、JNI、ProcessBuilder和Runtime.getRuntime().exec()。下面是对每种方式的详细解释。1.JNA(JavaNativeAccess)简介JNA是Java与本地代码进行交互的一种高层次API,它允许Java程序调......
  • Linux驱动开发之ioctl控制定时器并实现任意整数级秒计时器
    在IO模型中,I和O分别代表系统的输入和输出,在计算机中可以直观地理解为输入设备和输出设备,例如鼠标、键盘、显示器等。由于Linux中运行于用户空间的应用程序不能直接对硬件进行操作,需要应用程序向操作系统内核发起调用,将进程切换到内核空间,才能进行IO操作。IO模型根据功能不同......
  • 基于sqli-labs Less-7 的sql高权读写注入详解
    1.MySQL高权限读写简介1.1前置知识数据库的高权用户对服务器上的文件进行读取写入操作,从而可以进行写入一句话木马来获得服务器权限或者读取服务器上的配置型文件等注入行为。selectload_file('d:/w.txt');#读取w.txtselect'xxx'intooutfile'd:/1.txt';#将xxx写入......
  • Visual Studio 使用GIT详解
    在VisualStudio中使用Git,可以帮助你有效地管理和版本控制代码。下面是详细的步骤和功能概述:1.设置Git仓库打开项目:启动VisualStudio并打开你的项目或解决方案。创建Git仓库:在菜单栏选择“Git”。选择“创建Git仓库”,这会将当前项目初始化为一个Git......