首页 运维 linux运维 linux curl命令参数有哪些及怎么使用

linux curl命令参数有哪些及怎么使用

May 12, 2023 pm 06:46 PM
linux curl

linux curl是一个利用url规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称url为下载工具。

  一,curl命令参数

  -a/--append 上传文件时,附加到目标文件

  -a/--user-agent   设置用户代理发送给服务器

  - anyauth   可以使用“任何”身份验证方法

  -b/--cookie cookie字符串或文件读取位置

  - basic 使用http基本验证

  -b/--use-ascii 使用ascii /文本传输

  -c/--cookie-jar 操作结束后把cookie写入到这个文件中

  -c/--continue-at   断点续转

  -d/--data    http post方式传送数据

  --data-ascii   以ascii的方式post数据

  --data-binary 以二进制的方式post数据

  --negotiate     使用http身份验证

  --digest        使用数字身份验证

  --disable-eprt  禁止使用eprt或lprt

  --disable-epsv  禁止使用epsv

  -d/--dump-header 把header信息写入到该文件中

  --egd-file 为随机数据(ssl)设置egd socket路径

  --tcp-nodelay   使用tcp_nodelay选项

  -e/--referer 来源网址

  -e/--cert 客户端证书文件和密码 (ssl)

  --cert-type 证书文件类型 (der/pem/eng) (ssl)

  --key      私钥文件名 (ssl)

  --key-type 私钥文件类型 (der/pem/eng) (ssl)

  --pass    私钥密码 (ssl)

  --engine   加密引擎使用 (ssl). "--engine list" for list

  --cacert ca证书 (ssl)

  --capath ca目录 (made using c_rehash) to verify peer against (ssl)

  --ciphers   ssl密码

  --compressed    要求返回是压缩的形势 (using deflate or gzip)

  --connect-timeout 设置最大请求时间

  --create-dirs   建立本地目录的目录层次结构

  --crlf          上传是把lf转变成crlf

  -f/--fail          连接失败时不显示http错误

  --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 模拟http表单提交数据

  -form-string 模拟http表单提交数据

  -g/--globoff 禁用网址序列和范围使用{}和[]

  -g/--get 以get的方式来发送数据

  -h/--help 帮助

  -h/--header 自定义头信息传递给服务器

  --ignore-content-length  忽略的http头信息的长度

  -i/--include 输出时包括protocol头信息

  -i/--head  只显示文档信息

  从文件中读取-j/--junk-session-cookies忽略会话cookie

  - 界面指定网络接口/地址使用

  - krb4 <级别>启用与指定的安全级别krb4

  -j/--junk-session-cookies 读取文件进忽略session cookie

  --interface 使用指定网络接口/地址

  --krb4   使用指定安全级别的krb4

  -k/--insecure 允许不使用证书到ssl站点

  -k/--config  指定的配置文件读取

  -l/--list-only 列出ftp目录下的文件名称

  --limit-rate 设置传输速度

  --local-port 强制使用本地端口号

  -m/--max-time 设置最大传输时间

  --max-redirs 设置最大读取的目录数

  --max-filesize 设置最大下载的文件总量

  -m/--manual  显示全手动

  -n/--netrc 从netrc文件中读取用户名和密码

  --netrc-optional 使用 .netrc 或者 url来覆盖-n

  --ntlm          使用 http ntlm 身份验证

  -n/--no-buffer 禁用缓冲输出

  -o/--output 把输出写到该文件中

  -o/--remote-name 把输出写到该文件中,保留远程文件的文件名

  -p/--proxytunnel   使用http代理

  --proxy-anyauth 选择任一代理身份验证方法

  --proxy-basic   在代理上使用基本身份验证

  --proxy-digest  在代理上使用数字身份验证

  --proxy-ntlm    在代理上使用ntlm身份验证

  -p/--ftp-port

使用端口地址,而不是使用pasv

  -q/--quote 文件传输前,发送命令到服务器

  -r/--range 检索来自http/1.1或ftp服务器字节范围

  --range-file 读取(ssl)的随机文件

  -r/--remote-time   在本地生成文件时,保留远程文件时间

  --retry    传输出现问题时,重试的次数

  --retry-delay   传输出现问题时,设置重试间隔时间

  --retry-max-time 传输出现问题时,设置最大重试时间

  -s/--silent静音模式。不输出任何东西

  -s/--show-error   显示错误

  --socks4 用socks4代理给定主机和端口

  --socks5 用socks5代理给定主机和端口

  --stderr
-t/--telnet-option telnet选项设置

  --trace   对指定文件进行debug

  --trace-ascii like --跟踪但没有hex输出

  --trace-time    跟踪/详细输出时,添加时间戳

  -t/--upload-file 上传文件

  --url      spet url to work with

  -u/--user 设置服务器的用户和密码

  -u/--proxy-user 设置代理用户名和密码

  -v/--verbose

  -v/--version 显示版本信息

  -w/--write-out [format]什么输出完成后

  -x/--proxy 在给定的端口上使用http代理

  -x/--request 指定什么命令

  -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

  -#/--progress-bar 用进度条显示当前的传送状态

  -a/--append 上传文件时,附加到目标文件

  -a/--user-agent   设置用户代理发送给服务器

  - anyauth   可以使用“任何”身份验证方法

  -b/--cookie cookie字符串或文件读取位置

  - basic 使用http基本验证

  -b/--use-ascii 使用ascii /文本传输

  -c/--cookie-jar 操作结束后把cookie写入到这个文件中

  -c/--continue-at   断点续转

  -d/--data    http post方式传送数据

  --data-ascii   以ascii的方式post数据

  --data-binary 以二进制的方式post数据

  --negotiate     使用http身份验证

  --digest        使用数字身份验证

  --disable-eprt  禁止使用eprt或lprt

  --disable-epsv  禁止使用epsv

  -d/--dump-header 把header信息写入到该文件中

  --egd-file 为随机数据(ssl)设置egd socket路径

  --tcp-nodelay   使用tcp_nodelay选项

  -e/--referer 来源网址

  -e/--cert 客户端证书文件和密码 (ssl)

  --cert-type 证书文件类型 (der/pem/eng) (ssl)

  --key      私钥文件名 (ssl)

  --key-type 私钥文件类型 (der/pem/eng) (ssl)

  --pass    私钥密码 (ssl)

  --engine   加密引擎使用 (ssl). "--engine list" for list

  --cacert ca证书 (ssl)

  --capath ca目录 (made using c_rehash) to verify peer against (ssl)

  --ciphers   ssl密码

  --compressed    要求返回是压缩的形势 (using deflate or gzip)

  --connect-timeout 设置最大请求时间

  --create-dirs   建立本地目录的目录层次结构

  --crlf          上传是把lf转变成crlf

  -f/--fail          连接失败时不显示http错误

  --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 模拟http表单提交数据

  -form-string 模拟http表单提交数据

  -g/--globoff 禁用网址序列和范围使用{}和[]

  -g/--get 以get的方式来发送数据

  -h/--help 帮助

  -h/--header 自定义头信息传递给服务器

  --ignore-content-length  忽略的http头信息的长度

  -i/--include 输出时包括protocol头信息

  -i/--head  只显示文档信息

  从文件中读取-j/--junk-session-cookies忽略会话cookie

  - 界面指定网络接口/地址使用

  - krb4 <级别>启用与指定的安全级别krb4

  -j/--junk-session-cookies 读取文件进忽略session cookie

  --interface 使用指定网络接口/地址

  --krb4   使用指定安全级别的krb4

  -k/--insecure 允许不使用证书到ssl站点

  -k/--config  指定的配置文件读取

  -l/--list-only 列出ftp目录下的文件名称

  --limit-rate 设置传输速度

  --local-port 强制使用本地端口号

  -m/--max-time 设置最大传输时间

  --max-redirs 设置最大读取的目录数

  --max-filesize 设置最大下载的文件总量
-m/--manual  显示全手动

  -n/--netrc 从netrc文件中读取用户名和密码

  --netrc-optional 使用 .netrc 或者 url来覆盖-n

  --ntlm          使用 http ntlm 身份验证

  -n/--no-buffer 禁用缓冲输出

  -o/--output 把输出写到该文件中

  -o/--remote-name 把输出写到该文件中,保留远程文件的文件名

  -p/--proxytunnel   使用http代理

  --proxy-anyauth 选择任一代理身份验证方法

  --proxy-basic   在代理上使用基本身份验证

  --proxy-digest  在代理上使用数字身份验证

  --proxy-ntlm    在代理上使用ntlm身份验证

  -p/--ftp-port

使用端口地址,而不是使用pasv

  -q/--quote 文件传输前,发送命令到服务器

  -r/--range 检索来自http/1.1或ftp服务器字节范围

  --range-file 读取(ssl)的随机文件

  -r/--remote-time   在本地生成文件时,保留远程文件时间

  --retry    传输出现问题时,重试的次数

  --retry-delay   传输出现问题时,设置重试间隔时间

  --retry-max-time 传输出现问题时,设置最大重试时间

  -s/--silent静音模式。不输出任何东西

  -s/--show-error   显示错误

  --socks4 用socks4代理给定主机和端口

  --socks5 用socks5代理给定主机和端口

  --stderr

  -t/--telnet-option telnet选项设置

  --trace   对指定文件进行debug

  --trace-ascii like --跟踪但没有hex输出

  --trace-time    跟踪/详细输出时,添加时间戳

  -t/--upload-file 上传文件

  --url      spet url to work with

  -u/--user 设置服务器的用户和密码

  -u/--proxy-user 设置代理用户名和密码

  -v/--verbose

  -v/--version 显示版本信息

  -w/--write-out [format]什么输出完成后

  -x/--proxy 在给定的端口上使用http代理

  -x/--request 指定什么命令

  -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

  -#/--progress-bar 用进度条显示当前的传送状态

  二,常用curl实例

  1,抓取页面内容到一个文件中

  [root@krlcgcms01 mytest]# curl -o home.html 

  [root@krlcgcms01 mytest]# curl -o home.html 

  2,用-o(大写的),后面的url要具体到某个文件,不然抓不下来。我们还可以用正则来抓取东西

  [root@krlcgcms01 mytest]# curl -o

  [root@krlcgcms01 mytest]# curl -o

  3,模拟表单信息,模拟登录,保存cookie信息

  [root@krlcgcms01 mytest]# curl -c ./cookie_c.txt -f log=aaaa -f pwd=******

  [root@krlcgcms01 mytest]# curl -c ./cookie_c.txt -f log=aaaa -f pwd=******

  4,模拟表单信息,模拟登录,保存头信息

  [root@krlcgcms01 mytest]# curl -d ./cookie_d.txt -f log=aaaa -f pwd=******

  [root@krlcgcms01 mytest]# curl -d ./cookie_d.txt -f log=aaaa -f pwd=******

  -c(小写)产生的cookie和-d里面的cookie是不一样的。

  5,使用cookie文件

  [root@krlcgcms01 mytest]# curl -b ./cookie_c.txt 

  [root@krlcgcms01 mytest]# curl -b ./cookie_c.txt 

  6,断点续传,-c(大写的)

  [root@krlcgcms01 mytest]# curl -c -o

  7,传送数据,最好用登录页面测试,因为你传值过去后,curl回抓数据,你可以看到你传值有没有成功

  [root@krlcgcms01 mytest]# curl -d log=aaaa 

  [root@krlcgcms01 mytest]# curl -d log=aaaa 

  8,显示抓取错误,下面这个例子,很清楚的表明了。

  [root@krlcgcms01 mytest]# curl -f

  curl: (22) the requested url returned error: 404

  [root@krlcgcms01 mytest]# curl

  404,not found

  。。。。。。。。。。。。

  [root@krlcgcms01 mytest]# curl -f

  curl: (22) the requested url returned error: 404

  [root@krlcgcms01 mytest]# curl

  404,not found

  。。。。。。。。。。。。

  9,伪造来源地址,有的网站会判断,请求来源地址。

  [root@krlcgcms01 mytest]# curl -e

  [root@krlcgcms01 mytest]# curl -e

  10,当我们经常用curl去搞人家东西的时候,人家会把你的ip给屏蔽掉的,这个时候,我们可以用代理

  [root@krlcgcms01 mytest]# curl -x 24.10.28.84:32779 -o home.html

  [root@krlcgcms01 mytest]# curl -x 24.10.28.84:32779 -o home.html
11,比较大的东西,我们可以分段下载

  [root@krlcgcms01 mytest]# curl -r 0-100 -o img.part1 -

  content/uploads/2010/09/compare_varnish.jpg

  % total    % received % xferd  average speed   time    time     time  current

  dload  upload   total   spent    left  speed

  100   101  100   101    0     0    105      0 --:--:-- --:--:-- --:--:--     0

  [root@krlcgcms01 mytest]# curl -r 100-200 -o img.part2 -

  content/uploads/2010/09/compare_varnish.jpg

  % total    % received % xferd  average speed   time    time     time  current

  dload  upload   total   spent    left  speed

  100   101  100   101    0     0     57      0  0:00:01  0:00:01 --:--:--     0

  [root@krlcgcms01 mytest]# curl -r 200- -o img.part3 -

  content/uploads/2010/09/compare_varnish.jpg

  % total    % received % xferd  average speed   time    time     time  current

  dload  upload   total   spent    left  speed

  100  104k  100  104k    0     0  52793      0  0:00:02  0:00:02 --:--:-- 88961

  [root@krlcgcms01 mytest]# ls |grep part | xargs du -sh

  4.0k    one.part1

  112k    three.part3

  4.0k    two.part2

  [root@krlcgcms01 mytest]# curl -r 0-100 -o img.part1 -

  content/uploads/2010/09/compare_varnish.jpg

  % total    % received % xferd  average speed   time    time     time  current

  dload  upload   total   spent    left  speed

  100   101  100   101    0     0    105      0 --:--:-- --:--:-- --:--:--     0

  [root@krlcgcms01 mytest]# curl -r 100-200 -o img.part2 -

  content/uploads/2010/09/compare_varnish.jpg

  % total    % received % xferd  average speed   time    time     time  current

  dload  upload   total   spent    left  speed

  100   101  100   101    0     0     57      0  0:00:01  0:00:01 --:--:--     0

  [root@krlcgcms01 mytest]# curl -r 200- -o img.part3 -

  content/uploads/2010/09/compare_varnish.jpg

  % total    % received % xferd  average speed   time    time     time  current

  dload  upload   total   spent    left  speed

  100  104k  100  104k    0     0  52793      0  0:00:02  0:00:02 --:--:-- 88961

  [root@krlcgcms01 mytest]# ls |grep part | xargs du -sh

  4.0k    one.part1

  112k    three.part3

  4.0k    two.part2

  用的时候,把他们cat一下就ok了,cat img.part* >img.jpg

  12,不会显示下载进度信息

  [root@krlcgcms01 mytest]# curl -s -o aaa.jpg

  13,显示下载进度条

  [root@krlcgcms01 mytest]# curl -# -o

  ######################################################################## 100.0%

  14,通过ftp下载文件

  [zhangy@blackghost ~]$ curl -u 用户名:密码 -o

  % total    % received % xferd  average speed   time    time     time  current

  dload  upload   total   spent    left  speed

  101  1934  101  1934    0     0   3184      0 --:--:-- --:--:-- --:--:--  7136

  [zhangy@blackghost ~]$ curl -u 用户名:密码 -o

  % total    % received % xferd  average speed   time    time     time  current

  dload  upload   total   spent    left  speed

  101  1934  101  1934    0     0   3184      0 --:--:-- --:--:-- --:--:--  7136

  或者用下面的方式

  [zhangy@blackghost ~]$ curl -o ftp://用户名:密码@ip:port/demo/curtain/bbstudy_files/style.css

  [zhangy@blackghost ~]$ curl -o ftp://用户名:密码@ip:port/demo/curtain/bbstudy_files/style.css

  15,通过ftp上传

  [zhangy@blackghost ~]$ curl -t test.sql ftp://用户名:密码@ip:port/demo/curtain/bbstudy_files/

  [zhangy@blackghost ~]$ curl -t test.sql ftp://用户名:密码@ip:port/demo/curtain/bbstudy_files/

以上是linux curl命令参数有哪些及怎么使用的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

centos和ubuntu的区别 centos和ubuntu的区别 Apr 14, 2025 pm 09:09 PM

CentOS 和 Ubuntu 的关键差异在于:起源(CentOS 源自 Red Hat,面向企业;Ubuntu 源自 Debian,面向个人)、包管理(CentOS 使用 yum,注重稳定;Ubuntu 使用 apt,更新频率高)、支持周期(CentOS 提供 10 年支持,Ubuntu 提供 5 年 LTS 支持)、社区支持(CentOS 侧重稳定,Ubuntu 提供广泛教程和文档)、用途(CentOS 偏向服务器,Ubuntu 适用于服务器和桌面),其他差异包括安装精简度(CentOS 精

docker desktop怎么用 docker desktop怎么用 Apr 15, 2025 am 11:45 AM

如何使用 Docker Desktop?Docker Desktop 是一款工具,用于在本地机器上运行 Docker 容器。其使用步骤包括:1. 安装 Docker Desktop;2. 启动 Docker Desktop;3. 创建 Docker 镜像(使用 Dockerfile);4. 构建 Docker 镜像(使用 docker build);5. 运行 Docker 容器(使用 docker run)。

centos如何安装 centos如何安装 Apr 14, 2025 pm 09:03 PM

CentOS 安装步骤:下载 ISO 映像并刻录可引导媒体;启动并选择安装源;选择语言和键盘布局;配置网络;分区硬盘;设置系统时钟;创建 root 用户;选择软件包;开始安装;安装完成后重启并从硬盘启动。

docker镜像失败怎么办 docker镜像失败怎么办 Apr 15, 2025 am 11:21 AM

Docker镜像构建失败的故障排除步骤:检查Dockerfile语法和依赖项版本。检查构建上下文中是否包含所需源代码和依赖项。查看构建日志以获取错误详细信息。使用--target选项构建分层阶段以识别失败点。确保使用最新版本的Docker引擎。使用--t [image-name]:debug模式构建镜像以调试问题。检查磁盘空间并确保足够。禁用SELinux以防止干扰构建过程。向社区平台寻求帮助,提供Dockerfile和构建日志描述以获得更具体的建议。

怎么看docker进程 怎么看docker进程 Apr 15, 2025 am 11:48 AM

Docker 进程查看方法:1. Docker CLI 命令:docker ps;2. Systemd CLI 命令:systemctl status docker;3. Docker Compose CLI 命令:docker-compose ps;4. Process Explorer(Windows);5. /proc 目录(Linux)。

docker原理详解 docker原理详解 Apr 14, 2025 pm 11:57 PM

Docker利用Linux内核特性,提供高效、隔离的应用运行环境。其工作原理如下:1. 镜像作为只读模板,包含运行应用所需的一切;2. 联合文件系统(UnionFS)层叠多个文件系统,只存储差异部分,节省空间并加快速度;3. 守护进程管理镜像和容器,客户端用于交互;4. Namespaces和cgroups实现容器隔离和资源限制;5. 多种网络模式支持容器互联。理解这些核心概念,才能更好地利用Docker。

vscode需要什么电脑配置 vscode需要什么电脑配置 Apr 15, 2025 pm 09:48 PM

VS Code 系统要求:操作系统:Windows 10 及以上、macOS 10.12 及以上、Linux 发行版处理器:最低 1.6 GHz,推荐 2.0 GHz 及以上内存:最低 512 MB,推荐 4 GB 及以上存储空间:最低 250 MB,推荐 1 GB 及以上其他要求:稳定网络连接,Xorg/Wayland(Linux)

vscode怎么切换中文模式 vscode怎么切换中文模式 Apr 15, 2025 pm 11:39 PM

VS Code 切换中文模式的操作步骤:打开设置界面(Windows/Linux:Ctrl ,,macOS:Cmd ,)搜索 "Editor: Language" 设置在下拉菜单中选择 "中文"保存设置重启 VS Code

See all articles