Linux中的curl命令

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

curl是一个用于从服务器传输数据或向服务器传输数据的工具。它 支持这些协议:DICT, FILE, FTP, FTPS, GOPHER, gopers, Http、https、imap、imaps、ldap、ldaps、mqtt、pop3、pop3s、rtmp、 rtmp、rtsp、scp、sftp、smb、smbs、smtp、smtps、telnet、tftp、ws WSS。该命令被设计为无需用户即可工作 交互。
选项:
–abstract-unix-socket

(HTTP)通过抽象Unix域套接字连接, 而不是使用网络

-a, --append

在使用ftp上传文件时,追加内容到目标文件中,而不是覆盖,如果远程文件不存在则创建

-K, --config

指定一个文件,用于curl读取作为选项参数

–connect-timeout

指定curl连接超时时间,单位是秒,可以指定小数

示例:

[root@192 ~]# curl --connect-timeout 20 www.baidu.com

-C, --continue-at

恢复被终止的传输进程,当下载文件时,遇到意外终止的请求,添加此选项可以继续下载,offset可指定从何处偏移下载,单位是k,如果offset不给值,则可以用-C - 让curl自动推断偏移的位置

-c, --cookie-jar

请求完成后保存内存中的cookie

-b, --cookie <data|filename>

请求时,传递cookie到http服务头

–create-dirs

当保存下载的文件时,可以指定保存的目录,如果目录不存在,则自动创建,文件默认的所有者权限是0750

–create-file-mode

使用ftp上传文件时,带上此选项可以指定所有者权限,默认是0644

–data-binary

传输二进制数据到服务器,以@开头的表示是文件

–data-raw

原样传输数据,不解析、不转义

–data-urlencode

请求的数据进行url encode

-d, --data

发送post请求到服务器,并指定请求的参数

示例:

curl -d "name=curl" https://example.com

curl -d "name=curl" -d "tool=cmdline" https://example.com

此处可以合并为:curl -d "name=curl&tool=cmdline" https://example.com

curl -d @filename https://example.com

-D, --dump-header

把请求头信息写入指定的文件中

-F, --form <name=content>

发送http表单请求数据

-G, --get

使用get方法发送http请求,如果命令中使用了-d, --data, --data-binary or --data-urlencode,则请求参数全部放在url后面作为查询字符串

示例:

curl --get https://example.com

curl --get -d "tool=curl" -d "age=old" https://example.com

-g, --globoff

关闭全局解析器,遇到正常需要解析转义的符号会当做普通的字符串

示例:

curl -g "https://example.com/{[]}}}}"

-I, --head

仅输出请求头

示例:

curl -I https://example.com

-H, --header header/@file

指定请求头,可以设置请求头为空来覆盖默认的请求头,例如:-H "Host:"

示例:

curl -H "X-First-Name: Joe" https://example.com

curl -H "User-Agent: yes-please/2000" https://example.com

curl -H "Host:" https://example.com

curl -H @headers.txt https://example.com

–json

指定http json请求,发送json数据
此选项是以下三种选项的组合:

--data [arg]
--header "Content-Type: application/json"
--header "Accept: application/json"

示例:

curl --json '{ "drink": "coffe" }' https://example.com
curl --json @prepared https://example.com
curl --json @- https://example.com < json.txt

–keepalive-time

发送心跳保持连接的时间间隔,单位:秒

示例:

curl --keepalive-time 20 https://example.com

–libcurl

指定一个文件名,然后curl请求的过程会以C源码的方式写入文件

示例:

curl --libcurl client.c https://example.com

–limit-rate

限制传输的速率,默认的单位是K,有K、M、G、T、P可用

示例:

curl --limit-rate 100K https://example.com

curl --limit-rate 1000 https://example.com

curl --limit-rate 10M https://example.com

-l, --list-only

列出ftp的目录

示例:

curl --list-only ftp://example.com/dir/

-L, --location

使curl请求到的页面如果被重定向,会自动跟随请求

示例:

curl -L https://example.com

–max-filesize

最大文件下载大小,可用的单位:K、M、G

示例:

curl --max-filesize 100K https://example.com

–max-redirs

最大重定向次数,与-L相结合使用

示例:

curl -L --max-redirs 3 https://example.com

-:, --next

可以指定多个请求,每个请求可以用不同的请求方法,例如先用post请求,然后用get请求,此选项作用是重置当前的选项

示例:

curl www1.example.com --next -d postthis www2.example.com

-o, --output

下载文件时指定保存的文件名

示例:

一般用法
curl -o aa example.com

#1对应的是{one,two}这个变量,自动取名
curl "http://{one,two}.example.com" -o "file_#1.txt"

#1,#2分别对应{site,host} [1-5]
curl "http://{site,host}.host[1-5].com" -o "#1_#2"

抑制输出,重定向到垃圾桶中
curl example.com -o /dev/null

-#, --progress-bar

显示以#符号的进度条,而不是详细输出

示例:

curl -# -O https://example.com

-x, --proxy [protocol://]host[:port]

使用代理服务器请求,默认是使用http协议,当不指定端口时,默认端口是1080

示例:

curl -x 127.0.0.1:9090 https://example.com

-U, --proxy-user user:password

使用代理服务器时,需要指定用户名和密码

示例:

curl --proxy-user name:pwd -x proxy https://example.com

–rate

限制重试请求的速率,格式为:N/U,N表示请求的次数,U表示单位,可用的单位有:s(second), m(minute), h(hour), d(day),默认的单位是每小时,此选项内部函数是使用毫秒级的方案,如果设置每秒超过1000次,则选项会变为不限制速率

示例:

curl --rate 2/s https://example.com

curl --rate 3/h https://example.com

curl --rate 14/m https://example.com

-e, --referer

指定来源地址,如果指定为:";auto",则curl会自动推断

示例:

curl --referer "https://fake.example" https://example.com

curl --referer "https://fake.example;auto" -L https://example.com

curl --referer ";auto" -L https://example.com

-O, --remote-name

下载文件时,指定此选项,会使用远程文件的名称

示例:

curl -O https://example.com/filename

–retry

指定curl重试的次数

示例:

curl --retry 7 https://example.com

-s, --silent

静默模式,不输出任何信息

示例:

curl -s https://example.com

–trace

打印完整的输入输出、错误等信息,可指定输出的文件

示例:

curl --trace log.txt https://example.com

-T, --upload-file

告诉curl当前是ftp上传文件

示例:

curl -T file https://example.com

curl -T "img[1-1000].png" ftp://ftp.example.com/

-A, --user-agent

指定http请求头的用户代理

示例:

curl -A "Agent 007" https://example.com

-v, --verbose

打印详细的debug信息

示例:

curl -v https://example.com

-V, --version

打印curl版本信息

-w, --write-out

使用curl预定义的变量,打印出输入输出操作过程的有用信息

示例:文章来源地址https://www.toymoban.com/news/detail-741061.html

curl -w '%{response_code}\n' https://example.com

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

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

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

相关文章

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

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

    2024年02月04日
    浏览(28)
  • Linux 从入门到精通:curl 命令使用详解

    curl 命令是一个在 Linux 系统中利用 URL 工作的命令行文件传输工具,常用于服务访问和文件下载。curl 支持 HTTP、HTTPS、FTP 等多种协议(默认是 HTTP 协议),可用于模拟服务请求以及上传和下载文件。 1.1 安装命令 并非所有系统都自带 curl 命令,对于简洁版的 Linux 系统,可以使

    2024年02月07日
    浏览(34)
  • 【Linux】curl 命令 在服务器上测试接口

    业务场景:最近一直在做对外合作的业务,比如对接微信、支付宝、中行等支付相关的接口,引出本篇 的根本原因就是在进行对接中行领取数字红包的接口时,他们会针对我们的服务器IP来开放指定的接口访问权限,本地想通过AirPost之类的工具测试人家的接口是没有权限的,

    2024年02月06日
    浏览(53)
  • linux 服务器执行post请求 curl命令详解

    curl是一个命令行访问URL的计算机逻辑语言的工具,发出网络请求,然后得到数据并提取出,显示在标准输出“stdout”上面,可以用它来构造http request报文,curl(CommandLine Uniform Resource Locator),即在命令行中利用URL进行数据或者文件传输。 基本语法: curl [option] [url] 实际用法 PO

    2024年02月02日
    浏览(33)
  • 将Linux curl命令转换为windows平台的Python代码

      大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作

    2024年03月18日
    浏览(31)
  • Linux 运维常用命令

    先说些废话 因为笔者有着大量运维部署站点的需求,所以之前一直在陆陆续续学习并实践各种 Linux 的 Shell 命令,在此记录一些高频命令的使用的说明,方便自己回顾加深记忆。 后期如果有用到一些新的命令,也会继续保持更新,如果写的有不对的地方,也请各位看官指出,

    2024年02月16日
    浏览(34)
  • linux下下载文件的常用命令wget,curl等使用方法及使用示例

    在 Linux 操作系统中,有许多下载文件的工具可供选择。这些工具包括命令行工具和图形界面工具,每个工具都有其自身的特点和用途。以下是一些常用的下载文件工具: wget :一个功能强大的命令行下载工具,支持 HTTP、HTTPS、FTP 等协议,能够断点续传、递归下载等。 curl :

    2024年04月17日
    浏览(65)
  • Linux运维常用awk命令使用

    awk 是一种文本处理工具,经常用于对 Linux 系统中的文本文件进行处理。 1、awk 查找指定文本 awk \\\'/orange/ {print}\\\' file.txt 这个命令将在 file.txt 文件中查找包含orange 的行,并将这些匹配的内容打印出来。 awk \\\'/pattern/ {print NR \\\":\\\" $0}\\\' file.txt 这个命令将在file.txt 文件中查找包含 patte

    2024年02月04日
    浏览(59)
  • 【运维小知识】(四)——linux常用命令

    运维专栏:运维小知识 目录  1.🍁🍁用mv命令修改文件名 2.🍃🍃创建及删除文件夹即文件夹下所有文件 3.🍂🍂移动文件夹并重命名 4.🌿🌿复制文件 5.🍄🍄统计当前目录下文件的个数(不包含文件夹或子文件夹) 6.🌵🌵统计当前目录下文件的个数(包含子目录中的文件

    2024年02月16日
    浏览(26)
  • 运维人必会:Linux常用命令合集

    切换目录: 查看文件与目录的命令,list 的缩写: 文本查找: 拥有强大的查找功能: 文件复制: 用于移动文件: 删除文件或目录: 查看进程: 用于向某个工作(%jobnumber)或者是某个PID(数字)传送一个信号: signal的常用参数如下: 用于向一个命令启动的进程发送一个信

    2024年01月23日
    浏览(43)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包