zoukankan      html  css  js  c++  java
  • Linux--curl命令

    curl:是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具

    语法定义:curl [option] url

    常见参数:

    -A/--user-agent <string> :设置用户代理发送给服务器
    -b/--cookie <name=string/file> :cookie字符串或文件读取位置
    -c/--cookie-jar <file> :操作结束后把cookie写入到这个文件中
    -C/--continue-at <offset> :断点续转
    -D/--dump-header <file> :把header信息写入到该文件中
    -e/--referer :来源网址
    -f/--fail :连接失败时不显示http错误
    -o/--output :把输出写到该文件中
    -O/--remote-name :把输出写到该文件中,保留远程文件的文件名
    -r/--range <range> :检索来自HTTP/1.1或FTP服务器字节范围
    -s/--silent :静音模式,不输出任何东西
    -T/--upload-file <file> 上传文件
    -u/--user <user[:password]> :设置服务器的用户和密码
    -w/--write-out [format] :什么输出完成后
    -x/--proxy <host[:port]> :在给定的端口上使用HTTP代理
    -#/--progress-bar :进度条显示当前的传送状态

    -I/--head :仅返回头部信息,使用HEAD请求

    -v/--verbose :小写的v参数,用于打印更多信息,包括发送的请求信息,这在调试脚本是特别有用

    -m/--max-time <seconds> 指定处理的最大时长

    -H/--header <header>: 指定请求头参数

    --connect-timeout <seconds> :指定尝试连接的最大时长

    -d/--data/--data-ascii <data> :指定POST的内容

    --retry <num> :指定重试次数

    常见实例:

    #基本用法
    curl https://www.cnblogs.com/fqfanqi/
    
    #只显示头部信息
    [13052348957@izuf60jasqavbxb9efockpz ~]$ curl -I https://www.cnblogs.com/fqfanqi/
    HTTP/1.1 200 OK
    Date: Sun, 16 Dec 2018 16:36:56 GMT
    Content-Type: text/html; charset=utf-8
    Content-Length: 13746
    Connection: keep-alive
    Vary: Accept-Encoding
    Cache-Control: private, max-age=10
    Expires: Sun, 16 Dec 2018 16:37:06 GMT
    Last-Modified: Sun, 16 Dec 2018 16:36:56 GMT
    X-UA-Compatible: IE=10
    X-Frame-Options: SAMEORIGIN
    
    #测试网页是否正常
    [13052348957@izuf60jasqavbxb9efockpz ~]$ curl -o /dev/null -s -w %{http_code} https://www.cnblogs.com/fqfanqi/ | awk '{print $1}'
    200
    
    #设置代理访问
    curl -x 192.168.100.100:1080 https://www.cnblogs.com/fqfanqi/
    
    #保存http的response里面的cookie信息
    curl -c cookie.txt https://www.cnblogs.com/fqfanqi/
    
    #使用cookie登录
    curl -b cookie.txt https://www.cnblogs.com/fqfanqi/
    
    #保存返回的head信息
    curl -D head.txt https://www.cnblogs.com/fqfanqi/
    
    #模仿浏览器访问
    curl -A "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.0)"  head.txt https://www.cnblogs.com/fqfanqi/
    
    #通过ftp下载文件
    curl -O -u 用户名:密码 ftp://www.linux.com/dodo1.JPG
    curl -O ftp://用户名:密码@www.linux.com/dodo1.JPG
    
    #上传文件
    curl -T dodo1.JPG -u 用户名:密码 ftp://www.linux.com/img/
    
    #断点续传
    curl -C -O http://www.linux.com/dodo1.JPG
     1 其他:
     2 -a/--append                        上传文件时,附加到目标文件
     3 --anyauth                            可以使用“任何”身份验证方法
     4 --basic                                使用HTTP基本验证
     5 -B/--use-ascii                      使用ASCII文本传输
     6 -d/--data <data>                  HTTP POST方式传送数据
     7 --data-ascii <data>            以ascii的方式post数据
     8 --data-binary <data>          以二进制的方式post数据
     9 --negotiate                          使用HTTP身份验证
    10 --digest                        使用数字身份验证
    11 --disable-eprt                  禁止使用EPRT或LPRT
    12 --disable-epsv                  禁止使用EPSV
    13 --egd-file <file>              为随机数据(SSL)设置EGD socket路径
    14 --tcp-nodelay                  使用TCP_NODELAY选项
    15 -E/--cert <cert[:passwd]>      客户端证书文件和密码 (SSL)
    16 --cert-type <type>              证书文件类型 (DER/PEM/ENG) (SSL)
    17 --key <key>                    私钥文件名 (SSL)
    18 --key-type <type>              私钥文件类型 (DER/PEM/ENG) (SSL)
    19 --pass  <pass>                  私钥密码 (SSL)
    20 --engine <eng>                  加密引擎使用 (SSL). "--engine list" for list
    21 --cacert <file>                CA证书 (SSL)
    22 --capath <directory>            CA目   (made using c_rehash) to verify peer against (SSL)
    23 --ciphers <list>                SSL密码
    24 --compressed                    要求返回是压缩的形势 (using deflate or gzip)
    25 --connect-timeout <seconds>    设置最大请求时间
    26 --create-dirs                  建立本地目录的目录层次结构
    27 --crlf                          上传是把LF转变成CRLF
    28 --ftp-create-dirs              如果远程目录不存在,创建远程目录
    29 --ftp-method [multicwd/nocwd/singlecwd]    控制CWD的使用
    30 --ftp-pasv                      使用 PASV/EPSV 代替端口
    31 --ftp-skip-pasv-ip              使用PASV的时候,忽略该IP地址
    32 --ftp-ssl                      尝试用 SSL/TLS 来进行ftp数据传输
    33 --ftp-ssl-reqd                  要求用 SSL/TLS 来进行ftp数据传输
    34 -F/--form <name=content>        模拟http表单提交数据
    35 -form-string <name=string>      模拟http表单提交数据
    36 -g/--globoff                    禁用网址序列和范围使用{}和[]
    37 -G/--get                        以get的方式来发送数据
    38 -h/--help                      帮助
    39 -H/--header <line>              自定义头信息传递给服务器
    40 --ignore-content-length        忽略的HTTP头信息的长度
    41 -i/--include                    输出时包括protocol头信息
    42 -I/--head                      只显示文档信息
    43 -j/--junk-session-cookies      读取文件时忽略session cookie
    44 --interface <interface>        使用指定网络接口/地址
    45 --krb4 <level>                  使用指定安全级别的krb4
    46 -k/--insecure                  允许不使用证书到SSL站点
    47 -K/--config                    指定的配置文件读取
    48 -l/--list-only                  列出ftp目录下的文件名称
    49 --limit-rate <rate>            设置传输速度
    50 --local-port<NUM>              强制使用本地端口号
    51 -m/--max-time <seconds>        设置最大传输时间
    52 --max-redirs <num>              设置最大读取的目录数
    53 --max-filesize <bytes>          设置最大下载的文件总量
    54 -M/--manual                    显示全手动
    55 -n/--netrc                      从netrc文件中读取用户名和密码
    56 --netrc-optional                使用 .netrc 或者 URL来覆盖-n
    57 --ntlm                          使用 HTTP NTLM 身份验证
    58 -N/--no-buffer                  禁用缓冲输出
    59 -p/--proxytunnel                使用HTTP代理
    60 --proxy-anyauth                选择任一代理身份验证方法
    61 --proxy-basic                  在代理上使用基本身份验证
    62 --proxy-digest                  在代理上使用数字身份验证
    63 --proxy-ntlm                    在代理上使用ntlm身份验证
    64 -P/--ftp-port <address>        使用端口地址,而不是使用PASV
    65 -Q/--quote <cmd>                文件传输前,发送命令到服务器
    66 --range-file                    读取(SSL)的随机文件
    67 -R/--remote-time                在本地生成文件时,保留远程文件时间
    68 --retry <num>                  传输出现问题时,重试的次数
    69 --retry-delay <seconds>        传输出现问题时,设置重试间隔时间
    70 --retry-max-time <seconds>      传输出现问题时,设置最大重试时间
    71 -S/--show-error                显示错误
    72 --socks4 <host[:port]>          用socks4代理给定主机和端口
    73 --socks5 <host[:port]>          用socks5代理给定主机和端口
    74 -t/--telnet-option <OPT=val>    Telnet选项设置
    75 --trace <file>                  对指定文件进行debug
    76 --trace-ascii <file>            Like --跟踪但没有hex输出
    77 --trace-time                    跟踪/详细输出时,添加时间戳
    78 --url <URL>                    Spet URL to work with
    79 -U/--proxy-user <user[:password]>  设置代理用户名和密码
    80 -V/--version                    显示版本信息
    81 -X/--request <command>          指定什么命令
    82 -y/--speed-time                放弃限速所要的时间。默认为30
    83 -Y/--speed-limit                停止传输速度的限制,速度时间'
    84 -z/--time-cond                  传送时间设置
    85 -0/--http1.0                    使用HTTP 1.0
    86 -1/--tlsv1                      使用TLSv1(SSL)
    87 -2/--sslv2                      使用SSLv2的(SSL)
    88 -3/--sslv3                      使用的SSLv3(SSL)
    89 --3p-quote                      like -Q for the source URL for 3rd party transfer
    90 --3p-url                        使用url,进行第三方传送
    91 --3p-user                      使用用户名和密码,进行第三方传送
    92 -4/--ipv4                      使用IP4
    93 -6/--ipv6                      使用IP6
    View Code
  • 相关阅读:
    二分+RMQ/双端队列/尺取法 HDOJ 5289 Assignment
    思维题 HDOJ 5288 OO’s Sequence
    树形DP Codeforces Round #135 (Div. 2) D. Choosing Capital for Treeland
    最大流增广路(KM算法) HDOJ 1853 Cyclic Tour
    最大流增广路(KM算法) HDOJ 1533 Going Home
    最大流增广路(KM算法) HDOJ 2255 奔小康赚大钱
    Complete the Word CodeForces
    Gadgets for dollars and pounds CodeForces
    Vasya and Basketball CodeForces
    Carries SCU
  • 原文地址:https://www.cnblogs.com/fqfanqi/p/10129301.html
Copyright © 2011-2022 走看看