linuxcurl是什么(linux中curl用法)

linuxcurl是什么(linux中curl用法)

浏览次数:
信息来源: 用户投稿
更新日期: 2025-11-22
文章简介

一、最常用的curl命令1、发送GET请求curlURLcurlURL?a=1b=nihao2、发送POST请求curl-XPOST-d'a=1b=nihao'URL3、发送json格式请求

2025阿里云双十一服务器活动

一、最常用的curl命令

1、发送GET请求

curlURL

curlURL?a=1&b=nihao

2、发送POST请求

curl-XPOST-d'a=1&b=nihao'URL

3、发送json格式请求:

curl-H"Content-Type:application/json"-XPOST-d''URLlinuxcurl是什么,linux中curl用法

其中,-H代表header头,-X是指定什么类型请求(POST/GET/HEAD/DELETE/PUT/PATCH),-d代表传输什么数据。这几个是最常用的。查看所有curl命令:mancurl或者curl-h请求头:H,A,e响应头:I,i,Dcookie:b,c,j传输:F(POST),G(GET),T(PUT),X输出:o,O,w断点续传:r调试:v,--trace,--trace-ascii,--trace-time

二、curl命令语法与curl命令参数详解

1、curl命令语法

curl[options][URL...]

2、curl命令参数详解

由于linuxcurl功能十分强大,所以命令参数十分多,下表只是爱E族(aiezu.com)帅选出来的部分参数,更多参数请运行“mancurl”命令查看。

参数组参数描述urlurl需要抓取的一到多个URLs;多个下面通配符的方式:  1、http://{www,ftp,mail}.aiezu.com;  2、http://aiezu.com/images/[001-999].jpg;  3、http://aiezu.com/images/[1-999].html;  4、ftp://aiezu.com/file[a-z].txt请求头-H"name:value"--header"name:value"(HTTP)添加一个httpheader(http请求头);-H"name:"--header"name:"(HTTP)移除一个httpheader(http请求头);-A"string"--user-agent"string"(HTTP)设置Http请求头“User-Agent”,服务器通过“User-Agent”可以判断客户端使用的浏览器名称和操作系统类型,伪造此参数能导致服务器做出错误判断。也可以使用“-H”,“--headeroption”设置此选项;-e<URL>--referer<URL>(HTTP)设置访问时的来源页面,告诉http服务从哪个页面进入到此页面;-e"aiezu.com"相当于“-H"Referer:www.qq.com"”;响应头-I--head(HTTP)只输出HTTP-header,不获取内容(HTTP/FTP/FILE)。用于HTTP服务时,获取页面的http头;(如:curl-Ihttp://aiezu.com)用于FTP/FILE时,将会获取文件大小、最后修改时间;(如:curl-Ifile://test.txt)-i--include(HTTP)输出HTTP头和返回内容;-D<file>--dump-header<file>(HTTP)转储http响应头到指定文件;cookie-bname=data--cookiename=data(HTTP)发送cookie数据到HTTP服务器,数据格式为:"NAME1=VALUE1;NAME2=VALUE2";如果行中没有“=”,将把参数值当作cookie文件名;这个cookie数据可以是由服务器的http响应头“Set-Cookie:”行发送过来的;-cfilename--cookie-jarfilename(HTTP)完成操作后将服务器返回的cookies保存到指定的文件;指定参数值为“-”将定向到标准输出“如控制台”;-j--junk-session-cookies(HTTP)告诉curl放弃所有的"sessioncookies";相当于重启浏览器;代理-xhost:port-x[protocol://[user:pwd@]host[:port]--proxy[protocol://[user:pwd@]host[:port]使用HTTP代理访问;如果未指定端口,默认使用8080端口;protocol默认为http_proxy,其他可能的值包括:http_proxy、HTTPS_PROXY、socks4、socks4a、socks5;如:--proxy8.8.8.8:8080;-x"http_proxy://aiezu:123@aiezu.com:80"-p--proxytunnel将“-x”参数的代理,作为通道的方式去代理非HTTP协议,如ftp;--socks4<host[:port]>--socks4a<host[:port]>--socks5<host[:port]>使用SOCKS4代理;使用SOCKS4A代理;使用SOCKS5代理;此参数会覆盖“-x”参数;--proxy-anyauth--proxy-basic--proxy-diges--proxy-negotiate--proxy-ntlmhttp代理认证方式,参考:--anyauth--basic--diges--negotiate--ntlm-U<user:password>--proxy-user<user:password>设置代理的用户名和密码;数据传输-G--get如果使用了此参数,“-d/”、“--data”、“--data-binary”参数设置的数据,讲附加在url上,以GET的方式请求;-d@file-d"string"--data"string"--data-ascii"string"--data-binary"string"--data-urlencode"string"(HTTP)使用HTTPPOST方式发送“key/value对”数据,相当于浏览器表单属性(method="POST",enctype="application/x-www-form-urlencoded")  -d,--data:HTTP方式POST数据;  --data-ascii:HTTP方式POSTascii数据;  --data-binary:HTTP方式POST二进制数据;  --data-urlencode:HTTP方式POST数据(进行urlencode);如果数据以“@”开头,后紧跟一个文件,将post文件内的内容;-Fname=@file-Fname=<file-Fname=content--formname=content(HTTP)使用HTTPPOST方式发送类似“表单字段”的多类型数据,相当于同时设置浏览器表单属性(method="POST",enctype="multipart/form-data"),可以使用此参数上传二进制文件。如果字段内容以“@”开头,剩下的部分应该是文件名,curl将会上传此文件,如:curl-F"pic=@pic.jpg"http://aiezu.com;curl-F"page=@a.html;type=text/html"http://aiezu.comcurl-F"page=@/tmp/a;filename=a.txt"http://aiezu.com如果字段内容以“<”开头,剩下的部分应该是文件名,curl将从文件中获取作为此字段的值,如:curl-F"text=<text.txt"http://aiezu.com;--form-string<key=value>(HTTP)类似于“--form”,但是“@”、“<”无特殊含义;-Tfile--upload-filefile通过“put”的方式将文件传输到远程网址;选项参数只使用字符"-",将通过stdin读入文件内容;如:cattest.txt|curl"http://aiezu.com/a.php"-T-curl"http://aiezu.com/a.php"-T-<test.txt此参数也可以使用通配符:curl-T"{file1,file2}"http://aiezu.comcurl-T"img[1-1000].png"http://aiezu.com断点续传-C<offset>--continue-at<offset>断点续转,从文件头的指定位置开始继续下载/上传;offset续传开始的位置,如果offset值为“-”,curl会自动从文件中识别起始位置开始传输;-r<range>--range<range>(HTTP/FTP/SFTP/FILE)只传输内容的指定部分:0-499:最前面500字节;-500:最后面500字节;9500-:最前面9500字节;0-0,-1:最前面和最后面的1字节;100-199,500-599:两个100字节;认证--basic(HTTP)告诉curl使用HTTPBasicauthentication(HTTP协议时),这是默认认证方式;--ntlm(HTTP)使用NTLM身份验证方式,用于HTTP协议;一般用于IIS使用NTLM的网站;--digest(HTTP)使用HTTPDigestauthentication加密,用于HTTP协议;配合“-u/--user”选项,防止密码使用明文方式发送;--negotiate(HTTP)使用GSS-Negotiateauthentication方式,用于HTTP协议;它主要目的是为它的主要目的是为kerberos5认证提供支持支持;--anyauth(HTTP)告诉curl自动选择合适的身份认证方法,并选用最安全的方式;-uuser:password--useruser:password使用用户名、密码认证,此参数会覆盖“-n”、“--netrc”和“--netrc-optional”选项;如果你只提供用户名,curl将要求你输入密码;如果你使用“SSPI”开启的curl库做“NTLM”认证,可以使用不含用户名密码的“-u:”选项,强制curl使用当前登录的用户名密码进行认证;此参数相当于设置http头“Authorization:”;证书-E<证书[:密码]>--cert<证书[:密码]>(SSL)指定“PEM”格式的证书文件和证书密码;--cert-type<type>(SSL)告诉curl所提供证书的类型:PEM、DER、ENG等;默认为“PEM”;--cacert<CA证书>(SSL)告诉curl所以指定的CA证书文件,必须是“PEM”格式;--capath<CA证书路径>(SSL)告诉curl所以指定目录下的CA证书用来验证;这些证书必须是“PEM”格式;--crlfile<file>(HTTPS/FTPS)提供一个PEM格式的文件,用于指定被吊销的证书列表;-k--insecure(SSL)设置此选项将允许使用无证书的不安全SSL进行连接和传输。SSL其他--ciphers<listofciphers>(SSL)指定SSL要使用的加密方式;如:“aes_256_sha_256”;--engine<name>设置一个OpenSSL加密引擎用于加密操作;使用“curl--enginelist”查看支持的加密引擎列表;--random-file(SSL)指定包含随机数据的文件路径名;数据是用来为SSL连接产生随机种子为;--egd-file<file>(SSL)为随机种子生成器EGD(EntropyGatheringDaemonsocket)指定的路径名;-1/--tlsv1--tlsv1.0--tlsv1.1--tlsv1.2-2/--sslv2-3/--sslv3(SSL)使用TLS版本2与远程服务器通讯;(SSL)使用TLS1.0版本与远程服务器通讯;(SSL)使用TLS1.1版本与远程服务器通讯;(SSL)使用TLS1.2版本与远程服务器通讯;(SSL)使用SSL版本2与远程服务器通讯;(SSL)使用SSL版本3与远程服务器通讯;私钥公钥--key<key>(SSL/SSH)指定一个私钥文件名;为指定时自动尝试使用下面文件:“~/.ssh/id_rsa”、“~/.ssh/id_dsa”、“https://www.fruan.com/post/id_rsa'”、“https://www.fruan.com/post/id_dsa”;--key-type<type>(SSL)指定私钥文件类型,支持:DER、PEM、ENG,默认是PEM;--pass<phrase>(SSL/SSH)指定私钥文件的密码;--pubkey<key>(SSH)使用指定文件提供的您公钥;FTP-P--ftp-port<接口>(FTP)FTP主动模式时,设置一个地址等待服务器的连接,如:网卡:eth1IP:8.8.8.8主机名:aiezu.com可以加端口号:eth1:20000-21000;--crlf(FTP)上传时将换行符(LF)转换为回车换行(CRLF);--ftp-account[data](FTP)ftp帐号信息;--ftp-method[method](FTP)可选值:multicwd/nocwd/singlecwd;--ftp-pasv(FTP)使用使用PASV(被动)/EPSV模式;--ftp-skip-pasv-ip(FTP)使用PASV的时,跳过指定IP;--ftp-create-dirs(FTP)上传时自动创建远程目录;-l--list-only(FTP)列出ftp文件列表;-B--use-ascii(FTP/LDAP)使用Ascii传输模式,用于FTP、LDAP;在ftp中相当与使用了“type=A;”模式。--disable-epsv(FTP)告诉curl在PASV(被动模式)时不要使用EPSV;--disable-eprt(FTP)告诉curl在主动模式时禁用EPRT和LPRT;限速--limit-rate<speed>限制curl使用的最大带宽;如果未指定单位,默认单位为“bytes/秒”,你也可以指定单位为“K”、“M”、“G”等单位,如:“--limit-rate1m”为限制最大使用带宽为“1m字节/秒”;-y--speed-time<time>Ifadownloadisslowerthanspeed-limitbytespersecondduringaspeed-timeperiod,thedownloadgetsaborted.Ifspeed-timeisused,thedefaultspeed-limitwillbe1unlesssetwith-Y.Thisoptioncontrolstransfersandthuswillnotaffectslowconnectsetc.Ifthisisaconcernforyou,trythe--connect-timeoutoption.-Y--speed-limit<speed>Ifadownloadisslowerthanthisgivenspeed(inbytespersecond)forspeed-timesecondsitgetsaborted.speed-timeissetwith-yandis30ifnotset.其他选项-0/--http1.0(HTTP)强制curl使用HTTP1.0而不是使用默认的HTTP1.1;--interface<name>使用指定的网卡接口访问;curl--interfaceeth0http://aiezu.comcurl--interface10.0.0.101http://aiezu.com-X<command>--request<command>(HTTP)指定与服务器通信使用的请求方法,如:GET、PUT、POST、DELETE等,默认GET;--keepalive-time<seconds>设置keepalive时间--no-keepalive关闭keepalive功能;--no-buffer禁用对输出流缓冲;--buffer启用输出流缓冲;-L--location(HTTP/HTTPS)追随http响应头“Location:”定向到跳转后的页面;(在http响应码为3XX时使用,如301跳转、302跳转)--location-trusted(HTTP/HTTPS)同“--location”,但跳转后会发送跳转前的用户名和密码;--compressed(HTTP)请求对返回内容使用压缩算法进行压缩;curl支持对gzip压缩进行解压;--connect-timeout<seconds>指定最大连接超时,单位“秒”;-mseconds--max-timeseconds限制整个curl操作的最长时间,单位为秒;-s--silent安静模式。不要显示进度表或错误消息;-”后跟“数字序号”,curl会自动将它替换对应的关键词,如:  curl"http://aiezu.com/{a,b}.txt"-o"1#2.txt";  将保存为:a1.txt、a2.txt、a3.txt、b1.txt、b2.txt、b3.txt  如果要根据规则创建保存目录,参考:“--create-dirs”指定“-”将定向到标准输出“如控制台”;-O--remote-name将返回内容输出到当前目录下,和url中文件名相同的文件中(不含目录);--create-dirs与“-o”参数配合使用,创建必要的本地目录层次结构-w--write-outformat操作完成后在返回信息尾部追加指定的内容;要追加的内容可以是一个字符串“string”、从文件中获取“@filename”、从标准输入中获取“@-”格式参数中可以用%{variable_name}方式使用响应信息的相关变量,如:%{content_type}、%{http_code}、%{local_ip}...,更多变量参考“mancurl”获取;格式参数可以使用“

”、“\r”、“ ”等转义字符;调试--trace<file>转储所有传入和传出的数据到文件,包括描述信息;使用“-”作为文件名将输出发送到标准输出。--trace-asciifile转储所有传入和传出的数据到文件,包括描述信息,只转储ASCII部分,更容易阅读;使用“-”作为文件名将输出发送到标准输出。这个选项会覆盖之前使用的-v、--verbose、--trace-ascii选项;--trace-time转储文件中添加时间信息;-K--config<configfile>从配置文件中读取参数,参考:http://curl.haxx.se/docs/-v--verbose显示更详细的信息,调试时使用;帮助-M--manual显示完整的帮助手册;-h--helplinuxcurl用法帮助;

举例:有需求每5分钟请求一次http://www.test.com/a/b生成一个日志文件。希望一月的日志(正确的和错误的)能写入一个日志文件day=`date+%F`logfile='/var/logs/www.test.com_'`date+%Y%m`'.log'/usr/bin/echo-e"

">>${logfile}/bin/curl-v"http://www.test.com/a/b"-d"ccccc"1>>${logfile}2>>${logfile}--trace-time/usr/bin/echo-e"

以上就是linuxcurl是什么的详细内容,更多请关注主机测评网其它相关文章!

标签:
Kamatera教程注册购买和使用(收不到kakaotalk验证码)
« 上一篇
返回列表
下一篇 »

如本文对您有帮助,就请抽根烟吧!