Linux操作系统的curl命令的基本使用

摘要:
否则将追究法律责任。一.curl工具概述  curl是基于URL语法在命令行方式下工作的文件传输工具,它支持FTP,FTPS,HTTP,HTTPS,GOPHER,TELNET,DICT,FILE及LDAP等协议;curl支持HTTPS认证,并且支持HTTP的POST、PUT等方法,FTP上传,kerberos认证,HTTP上传,代理服务器,cookies,用户名/密码认证,下载文件断点续传,上载文件断点续传,http代理服务器管道;curl还支持IPv6,socks5代理服务器,通过http代理服务器上传文件到FTP服务器等,功能十分强大。

Linux操作系统的curl命令的基本使用

作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

一.curl工具概述
  curl是基于URL语法在命令行方式下工作的文件传输工具,它支持FTP,FTPS,HTTP,HTTPS,GOPHER,TELNET,DICT,FILE及LDAP等协议;
curl支持HTTPS认证,并且支持HTTP的POST、PUT等方法, FTP上传, kerberos认证,HTTP上传,代理服务器,cookies,用户名/密码认证, 下载文件断点续传,上载文件断点续传, http代理服务器管道( proxy tunneling);
curl还支持IPv6,socks5代理服务器,通过http代理服务器上传文件到FTP服务器等,功能十分强大。
二.curl工具常用选项高数
语法格式:
  curl [options] [URL...]
常用选项如下所示:
  -A/--user-agent <string>:
    设置用户代理发送给服务器
  -e/--referer <URL>:
    来源网址
  --cacert <file>:
    CA证书 (SSL)
  -k/--insecure:
    允许忽略证书进行 SSL 连接
  --compressed:
    要求返回是压缩的格式
  -H/--header <line>:
    自定义首部信息传递给服务器
  -i:
    显示页面内容,包括报文首部信息
  -I/--head:
    只显示响应报文首部信息
  -D/--dump-header <file>:
    将url的header信息存放在指定文件中
  --basic:
    使用HTTP基本认证

-u/--user
<user[:password]>:     设置服务器的用户和密码
  -L:     如果有3xx响应码,重新发请求到新位置   
-O:     使用URL中默认的文件名保存文件到本地
-o
<file>:     将网络文件保存为指定的文件中
--limit-rate
<rate>:     设置传输速度
-0/--http1.0:     数字0,使用HTTP 1.0
-v/--verbose:     更详细   -C:     选项可对文件使用断点续传功能
-c/--cookie-jar
<file name>:     将url中cookie存放在指定文件中
-x/--proxy
<proxyhost[:port]>:     指定代理服务器地址
-X/--request
<command>:     向服务器发送指定请求方法
-U/--proxy-user
<user:password>:     代理服务器用户和密码
-T:     选项可将指定的本地文件上传到FTP服务器上
--data/-d:     方式指定使用POST方式传递数据
-b name=data:     从服务器响应set-cookie得到值,返回给服务器
三.curl命令测试HTTP协议实战案例

1>."-A/--user-agent <string>"案例

[root@node101.yinzhengjie.org.cn ~]# curl -A 'Chrome/78.0.3904.108 Safari/537.36' http://node107.yinzhengjie.org.cn          #设置用户代理发送给服务器,其实就是封装了请求报文中的"User-Agent"参数,可以结合"-v"选项查看的更详细。
<h1>尹正杰到此一游</h1>
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# curl --user-agent 'Firefox/108 ' http://node107.yinzhengjie.org.cn 
<h1>尹正杰到此一游</h1>
[root@node101.yinzhengjie.org.cn ~]#
Linux操作系统的curl命令的基本使用第1张Linux操作系统的curl命令的基本使用第2张
[root@node107.yizhengjie.org.cn ~]# ss -tnl
State       Recv-Q Send-Q                         Local Address:Port                                        Peer Address:Port              
LISTEN      0      128                                        *:80                                                     *:*
LISTEN      0      128                                        *:22                                                     *:*
LISTEN      0      128                                       :::22                                                    :::*
[root@node107.yizhengjie.org.cn ~]# 
[root@node107.yizhengjie.org.cn ~]# ll /var/www/html/index.html 
-rw-r--r-- 1 root root 31 Dec 10 22:17 /var/www/html/index.html
[root@node107.yizhengjie.org.cn ~]# 
[root@node107.yizhengjie.org.cn ~]# cat /var/www/html/index.html 
<h1>尹正杰到此一游</h1>
[root@node107.yizhengjie.org.cn ~]# 
[root@node107.yizhengjie.org.cn ~]# tail -10f /var/log/httpd/access_log               #查看服务端日志,观察请求日志信息
......
172.30.1.101 - - [10/Dec/2019:22:22:42 +0800] "GET / HTTP/1.1" 200 31 "-" "Chrome/78.0.3904.108 Safari/537.36"
172.30.1.101 - - [10/Dec/2019:22:27:59 +0800] "GET / HTTP/1.1" 200 31 "-" "Firefox/108"
[root@node107.yizhengjie.org.cn ~]# tail -10f /var/log/httpd/access_log               #查看服务端日志,观察请求日志信息,观察服务端是否有上面记录中的User-Agent参数记录。

2>."-v/--verbose"案例显示一次的http请求的通信过程

[root@node101.yinzhengjie.org.cn ~]# curl -A 'Chrome/78.0.3904.108 Safari/537.36' http://node107.yinzhengjie.org.cn -v      #显示http请求的通信过程,包括request,response,以及正文。
* About to connect() to node107.yinzhengjie.org.cn port 80 (#0)
*   Trying 172.30.1.107...
* Connected to node107.yinzhengjie.org.cn (172.30.1.107) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: Chrome/78.0.3904.108 Safari/537.36
> Host: node107.yinzhengjie.org.cn
> Accept: */*
> 
<HTTP/1.1 200 OK
< Date: Tue, 10 Dec 2019 14:18:12 GMT
< Server: Apache/2.4.6 (CentOS) PHP/5.4.16
< Last-Modified: Tue, 10 Dec 2019 14:17:04 GMT
< ETag: "1f-5995a2a997640"
< Accept-Ranges: bytes
< Content-Length: 31
< Content-Type: text/html; charset=UTF-8
< 
<h1>尹正杰到此一游</h1>
* Connection #0 to host node107.yinzhengjie.org.cn left intact
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# 

3>."-e/--referer <URL>"案例

[root@node101.yinzhengjie.org.cn ~]# curl -e "www.baidu.com" http://node107.yinzhengjie.org.cn -v             #指定来源网址为"www.baidu.com"
* About to connect() to node107.yinzhengjie.org.cn port 80 (#0)
*   Trying 172.30.1.107...
* Connected to node107.yinzhengjie.org.cn (172.30.1.107) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
>Host: node107.yinzhengjie.org.cn
> Accept: */*
> Referer: www.baidu.com
> 
< HTTP/1.1 200 OK
< Date: Tue, 10 Dec 2019 14:45:15 GMT
< Server: Apache/2.4.6 (CentOS) PHP/5.4.16
< Last-Modified: Tue, 10 Dec 2019 14:17:04 GMT
< ETag: "1f-5995a2a997640"
< Accept-Ranges: bytes
< Content-Length: 31
< Content-Type: text/html; charset=UTF-8
< 
<h1>尹正杰到此一游</h1>
* Connection #0 to host node107.yinzhengjie.org.cn left intact
[root@node101.yinzhengjie.org.cn ~]# 
Linux操作系统的curl命令的基本使用第1张Linux操作系统的curl命令的基本使用第4张
[root@node107.yizhengjie.org.cn ~]# ss -tnl
State       Recv-Q Send-Q                         Local Address:Port                                        Peer Address:Port              
LISTEN      0      128                                        *:80                                                     *:*
LISTEN      0      128                                        *:22                                                     *:*
LISTEN      0      128                                       :::22                                                    :::*
[root@node107.yizhengjie.org.cn ~]# 
[root@node107.yizhengjie.org.cn ~]# ll /var/www/html/index.html 
-rw-r--r-- 1 root root 31 Dec 10 22:17 /var/www/html/index.html
[root@node107.yizhengjie.org.cn ~]# 
[root@node107.yizhengjie.org.cn ~]# cat /var/www/html/index.html 
<h1>尹正杰到此一游</h1>
[root@node107.yizhengjie.org.cn ~]# 
[root@node107.yizhengjie.org.cn ~]# tail -10f /var/log/httpd/access_log               #查看服务端日志,观察请求日志信息
......
172.30.1.101 - - [10/Dec/2019:22:45:15 +0800] "GET / HTTP/1.1" 200 31 "www.baidu.com" "curl/7.29.0"
[root@node107.yizhengjie.org.cn ~]# tail -10f /var/log/httpd/access_log               #查看服务端日志,观察请求日志信息,观察服务端是否有上面记录中的User-Agent参数记录。

4>."-I/--head"案例

[root@node101.yinzhengjie.org.cn ~]# curl -I http://node107.yinzhengjie.org.cn           #只显示响应报文首部信息
HTTP/1.1 200OK
Date: Tue, 10 Dec 2019 14:52:36GMT
Server: Apache/2.4.6 (CentOS) PHP/5.4.16
Last-Modified: Tue, 10 Dec 2019 14:17:04GMT
ETag: "1f-5995a2a997640"
Accept-Ranges: bytes
Content-Length: 31
Content-Type: text/html; charset=UTF-8
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# curl --head http://node107.yinzhengjie.org.cn 
HTTP/1.1 200OK
Date: Tue, 10 Dec 2019 14:52:45GMT
Server: Apache/2.4.6 (CentOS) PHP/5.4.16
Last-Modified: Tue, 10 Dec 2019 14:17:04GMT
ETag: "1f-5995a2a997640"
Accept-Ranges: bytes
Content-Length: 31
Content-Type: text/html; charset=UTF-8
[root@node101.yinzhengjie.org.cn ~]# 
Linux操作系统的curl命令的基本使用第1张Linux操作系统的curl命令的基本使用第6张
[root@node107.yizhengjie.org.cn ~]# ss -tnl
State       Recv-Q Send-Q                         Local Address:Port                                        Peer Address:Port              
LISTEN      0      128                                        *:80                                                     *:*
LISTEN      0      128                                        *:22                                                     *:*
LISTEN      0      128                                       :::22                                                    :::*
[root@node107.yizhengjie.org.cn ~]# 
[root@node107.yizhengjie.org.cn ~]# ll /var/www/html/index.html 
-rw-r--r-- 1 root root 31 Dec 10 22:17 /var/www/html/index.html
[root@node107.yizhengjie.org.cn ~]# 
[root@node107.yizhengjie.org.cn ~]# cat /var/www/html/index.html 
<h1>尹正杰到此一游</h1>
[root@node107.yizhengjie.org.cn ~]# 
[root@node107.yizhengjie.org.cn ~]# tail -10f /var/log/httpd/access_log               #查看服务端日志,观察请求日志信息
......
172.30.1.101 - - [10/Dec/2019:22:52:36 +0800] "HEAD / HTTP/1.1" 200 - "-" "curl/7.29.0"
172.30.1.101 - - [10/Dec/2019:22:52:45 +0800] "HEAD / HTTP/1.1" 200 - "-" "curl/7.29.0"
[root@node107.yizhengjie.org.cn ~]# tail -10f /var/log/httpd/access_log               #查看服务端日志,观察请求日志信息,观察服务端是否有上面记录中的User-Agent参数记录。

5>."-i"案例

[root@node101.yinzhengjie.org.cn ~]# curl -i http://node107.yinzhengjie.org.cn               #显示页面内容,包括报文首部信息
HTTP/1.1 200OK
Date: Tue, 10 Dec 2019 14:54:52GMT
Server: Apache/2.4.6 (CentOS) PHP/5.4.16
Last-Modified: Tue, 10 Dec 2019 14:17:04GMT
ETag: "1f-5995a2a997640"
Accept-Ranges: bytes
Content-Length: 31
Content-Type: text/html; charset=UTF-8
<h1>尹正杰到此一游</h1>
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# 
Linux操作系统的curl命令的基本使用第1张Linux操作系统的curl命令的基本使用第8张
[root@node107.yizhengjie.org.cn ~]# ss -tnl
State       Recv-Q Send-Q                         Local Address:Port                                        Peer Address:Port              
LISTEN      0      128                                        *:80                                                     *:*
LISTEN      0      128                                        *:22                                                     *:*
LISTEN      0      128                                       :::22                                                    :::*
[root@node107.yizhengjie.org.cn ~]# 
[root@node107.yizhengjie.org.cn ~]# ll /var/www/html/index.html 
-rw-r--r-- 1 root root 31 Dec 10 22:17 /var/www/html/index.html
[root@node107.yizhengjie.org.cn ~]# 
[root@node107.yizhengjie.org.cn ~]# cat /var/www/html/index.html 
<h1>尹正杰到此一游</h1>
[root@node107.yizhengjie.org.cn ~]# 
[root@node107.yizhengjie.org.cn ~]# tail -10f /var/log/httpd/access_log               #查看服务端日志,观察请求日志信息
......
172.30.1.101 - - [10/Dec/2019:22:54:52 +0800] "GET / HTTP/1.1" 200 31 "-" "curl/7.29.0"
[root@node107.yizhengjie.org.cn ~]# tail -10f /var/log/httpd/access_log               #查看服务端日志,观察请求日志信息,观察服务端是否有上面记录中的User-Agent参数记录。

6>."--cacert <file>"案例

[root@node101.yinzhengjie.org.cn ~]# curl https://www.yinzhengjie.org.cn --cacert /etc/httpd/conf.d/ssl/cacert.pem         #使用证书检查访问网页
<h1>尹正杰到此一游</h1>
[root@node101.yinzhengjie.org.cn ~]# 

7>."-k/--insecure"案例

[root@node101.yinzhengjie.org.cn ~]# curl -k https://www.yinzhengjie.org.cn --cacert /etc/httpd/conf.d/ssl/cacert.pem       #忽略证书检查访问网页
<h1>尹正杰到此一游</h1>
[root@node101.yinzhengjie.org.cn ~]# 

8>."-c/--cookie-jar <file name>"案例

[root@node101.yinzhengjie.org.cn ~]# curl -c /root/cookie.txt http://node107.yinzhengjie.org.cn/setcookie.php         # 将url中cookie存放在指定文件中
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# cat /root/cookie.txt 
# Netscape HTTP Cookie File
# http://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl!Edit at your own risk.
node107.yinzhengjie.org.cn    FALSE    /    FALSE    0department    IT
node107.yinzhengjie.org.cn    FALSE    /    FALSE    1575993782user    Jason
[root@node101.yinzhengjie.org.cn ~]# 

9>."-X/--request <command>"案例

[root@node101.yinzhengjie.org.cn ~]# curl -X PUT www.baidu.com          #向服务端发送指定请求的方法,此处我们指定的方法是PUT,下面依次提交的方法是GET,DELETE以及POST方法。
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# curl -X GET www.baidu.com
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# curl -X DELETE www.baidu.com
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# curl -X POST www.baidu.com
[root@node101.yinzhengjie.org.cn ~]# 

10>."-D/--dump-header <file>"案例

[root@node101.yinzhengjie.org.cn ~]# ll
total 0
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# curl -D yinzhengjie.html http://node107.yinzhengjie.org.cn               #显示整个网页数据,并将响应头信息存入yinzhengjie.html
<h1>尹正杰到此一游</h1>
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# ll
total 4
-rw-r--r-- 1 root root 252 Dec 10 23:35yinzhengjie.html
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# catyinzhengjie.html 
HTTP/1.1 200OK
Date: Tue, 10 Dec 2019 15:35:18GMT
Server: Apache/2.4.6 (CentOS) PHP/5.4.16
Last-Modified: Tue, 10 Dec 2019 14:17:04GMT
ETag: "1f-5995a2a997640"
Accept-Ranges: bytes
Content-Length: 31
Content-Type: text/html; charset=UTF-8
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# 

11>."-u/--user <user[:password]>"案例

  如下图所示,我用自己的用户名登陆我们公司的OA账号信息。

Linux操作系统的curl命令的基本使用第9张

12>.查看帮助

Linux操作系统的curl命令的基本使用第1张Linux操作系统的curl命令的基本使用第11张
[root@node101.yinzhengjie.org.cn ~]# curl --help
Usage: curl [options...] <url>
Options: (H) means HTTP/HTTPS only, (F) means FTP only
     --anyauth       Pick "any"authentication method (H)
 -a, --append        Append to target file when uploading (F/SFTP)
     --basic         Use HTTP Basic Authentication (H)
     --cacert FILE   CA certificate to verify peer against (SSL)
     --capath DIR    CA directory to verify peer against (SSL)
 -E, --cert CERT[:PASSWD] Client certificate fileand password (SSL)
     --cert-type TYPE Certificate file type (DER/PEM/ENG) (SSL)
     --ciphers LIST  SSL ciphers to use (SSL)
     --compressed    Request compressed response (using deflate or gzip)
 -K, --config FILE   Specify which config fileto read
     --connect-timeout SECONDS  Maximum time allowed forconnection
 -C, --continue-at OFFSET  Resumed transfer offset
 -b, --cookie STRING/FILE  String or fileto read cookies from (H)
 -c, --cookie-jar FILE  Write cookies to this fileafter operation (H)
     --create-dirs   Create necessary local directory hierarchy
     --crlf          Convert LF to CRLF inupload
     --crlfile FILE  Get a CRL list in PEM format from the given file
 -d, --data DATA     HTTP POST data (H)
     --data-ascii DATA  HTTP POST ASCII data (H)
     --data-binary DATA  HTTP POST binary data (H)
     --data-urlencode DATA  HTTP POST data url encoded (H)
     --delegation STRING GSS-API delegation permission
     --digest        Use HTTP Digest Authentication (H)
     --disable-eprt  Inhibit using EPRT or LPRT (F)
     --disable-epsv  Inhibit using EPSV (F)
 -D, --dump-header FILE  Write the headers to this file
     --egd-file FILE  EGD socket path forrandom data (SSL)
     --engine ENGINGE  Crypto engine (SSL). "--engine list" forlist
 -f, --fail          Fail silently (no output at all) on HTTP errors (H)
 -F, --form CONTENT  Specify HTTP multipart POST data (H)
     --form-stringSTRING  Specify HTTP multipart POST data (H)
     --ftp-account DATA  Account data string(F)
     --ftp-alternative-to-user COMMAND  String to replace "USER [name]"(F)
     --ftp-create-dirs  Create the remote dirs ifnot present (F)
     --ftp-method [MULTICWD/NOCWD/SINGLECWD] Control CWD usage (F)
     --ftp-pasv      Use PASV/EPSV instead of PORT (F)
 -P, --ftp-port ADR  Use PORT with given address instead of PASV (F)
     --ftp-skip-pasv-ip Skip the IP address forPASV (F)
     --ftp-pret      Send PRET before PASV (fordrftpd) (F)
     --ftp-ssl-ccc   Send CCC after authenticating (F)
     --ftp-ssl-ccc-mode ACTIVE/PASSIVE  Set CCC mode (F)
     --ftp-ssl-control Require SSL/TLS for ftp login, clear fortransfer (F)
 -G, --get           Send the -d data with a HTTP GET (H)
 -g, --globoff       Disable URL sequences and ranges using {} and []
 -H, --header LINE   Custom header to pass to server (H)
 -I, --head          Show document infoonly
 -h, --help          This help text
     --hostpubmd5 MD5  Hex encoded MD5 stringof the host public key. (SSH)
 -0, --http1.0       Use HTTP 1.0(H)
     --ignore-content-length  Ignore the HTTP Content-Length header
 -i, --include       Include protocol headers in the output (H/F)
 -k, --insecure      Allow connections to SSL sites without certs (H)
     --interface INTERFACE  Specify network interface/address to use
 -4, --ipv4          Resolve name to IPv4 address
 -6, --ipv6          Resolve name to IPv6 address
 -j, --junk-session-cookies Ignore session cookies read from file(H)
     --keepalive-timeSECONDS  Interval between keepalive probes
     --key KEY       Private key file name (SSL/SSH)
     --key-type TYPE Private key file type (DER/PEM/ENG) (SSL)
     --krb LEVEL     Enable Kerberos with specified security level (F)
     --libcurl FILE  Dump libcurl equivalent code of this command line
     --limit-rate RATE  Limit transfer speed to this rate
 -l, --list-only     List only names of an FTP directory (F)
     --local-port RANGE  Force use of these local port numbers
 -L, --location      Follow redirects (H)
     --location-trusted like --location and send auth to other hosts (H)
 -M, --manual        Display the full manual
     --mail-from FROM  Mail from this address
     --mail-rcpt TO  Mail to this receiver(s)
     --mail-auth AUTH  Originator address of the original email
     --max-filesize BYTES  Maximum file size to download (H/F)
     --max-redirs NUM  Maximum number of redirects allowed (H)
 -m, --max-time SECONDS  Maximum time allowed forthe transfer
     --metalink      Process given URLs as metalink XML file
     --negotiate     Use HTTP Negotiate Authentication (H)
 -n, --netrc         Must read .netrc foruser name and password
     --netrc-optional Use either .netrc or URL; overrides -n
     --netrc-fileFILE  Set up the netrc filename to use
 -N, --no-buffer     Disable buffering of the output stream
     --no-keepalive  Disable keepalive use on the connection
     --no-sessionid  Disable SSL session-ID reusing (SSL)
     --noproxy       List of hosts which donot use proxy
     --ntlm          Use HTTP NTLM authentication (H)
 -o, --output FILE   Write output to <file>instead of stdout
     --pass PASS     Pass phrase for the private key (SSL/SSH)
     --post301       Do not switch to GET after following a 301redirect (H)
     --post302       Do not switch to GET after following a 302redirect (H)
     --post303       Do not switch to GET after following a 303redirect (H)
 -#, --progress-bar  Display transfer progress as a progress bar
     --proto PROTOCOLS  Enable/disable specified protocols
     --proto-redir PROTOCOLS  Enable/disable specified protocols on redirect
 -x, --proxy [PROTOCOL://]HOST[:PORT] Use proxy on given port
     --proxy-anyauth Pick "any"proxy authentication method (H)
     --proxy-basic   Use Basic authentication on the proxy (H)
     --proxy-digest  Use Digest authentication on the proxy (H)
     --proxy-negotiate Use Negotiate authentication on the proxy (H)
     --proxy-ntlm    Use NTLM authentication on the proxy (H)
 -U, --proxy-user USER[:PASSWORD]  Proxy user and password
     --proxy1.0 HOST[:PORT]  Use HTTP/1.0proxy on given port
 -p, --proxytunnel   Operate through a HTTP proxy tunnel (using CONNECT)
     --pubkey KEY    Public key filename (SSH)
 -Q, --quote CMD     Send command(s) to server before transfer (F/SFTP)
     --random-file FILE  File forreading random data from (SSL)
 -r, --range RANGE   Retrieve only the bytes within a range
     --raw           Do HTTP "raw", without any transfer decoding (H)
 -e, --referer       Referer URL (H)
 -J, --remote-header-name Use the header-provided filename (H)
 -O, --remote-name   Write output to a file named as the remote file
     --remote-name-all Use the remote file name forall URLs
 -R, --remote-time   Set the remote file's time on the local output
 -X, --request COMMAND  Specify request command to use
     --resolve HOST:PORT:ADDRESS  Force resolve of HOST:PORT to ADDRESS
     --retry NUM   Retry request NUM times iftransient problems occur
     --retry-delay SECONDS When retrying, waitthis many seconds between each
     --retry-max-timeSECONDS  Retry only within this period
 -S, --show-error    Show error. With -s, makecurl show errors when they occur
 -s, --silent        Silent mode. Don't output anything
     --socks4 HOST[:PORT]  SOCKS4 proxy on given host +port
     --socks4a HOST[:PORT]  SOCKS4a proxy on given host +port
     --socks5 HOST[:PORT]  SOCKS5 proxy on given host +port
     --socks5-basic  Enable username/password auth forSOCKS5 proxies
     --socks5-gssapi Enable GSS-API auth forSOCKS5 proxies
     --socks5-hostnameHOST[:PORT] SOCKS5 proxy, pass host name to proxy
     --socks5-gssapi-service NAME  SOCKS5 proxy service name forgssapi
     --socks5-gssapi-nec  Compatibility with NEC SOCKS5 server
 -Y, --speed-limit RATE  Stop transfers below speed-limit for 'speed-time'secs
 -y, --speed-time SECONDS  Time for trig speed-limit abort. Defaults to 30
     --ssl           Try SSL/TLS (FTP, IMAP, POP3, SMTP)
     --ssl-reqd      Require SSL/TLS (FTP, IMAP, POP3, SMTP)
 -2, --sslv2         Use SSLv2 (SSL)
 -3, --sslv3         Use SSLv3 (SSL)
     --ssl-allow-beast Allow security flaw to improve interop (SSL)
     --stderr FILE   Where to redirect stderr. -means stdout
     --tcp-nodelay   Use the TCP_NODELAY option
 -t, --telnet-option OPT=VAL  Set telnet option
     --tftp-blksize VALUE  Set TFTP BLKSIZE option (must be >512)
 -z, --time-cond TIME  Transfer based on a timecondition
 -1, --tlsv1         Use =>TLSv1 (SSL)
     --tlsv1.0       Use TLSv1.0(SSL)
     --tlsv1.1       Use TLSv1.1(SSL)
     --tlsv1.2       Use TLSv1.2(SSL)
     --trace FILE    Write a debug trace to the given file
     --trace-ascii FILE  Like --trace but without the hex output
     --trace-time    Add time stamps to trace/verbose output
     --tr-encoding   Request compressed transfer encoding (H)
 -T, --upload-fileFILE  Transfer FILE to destination
     --url URL       URL to work with
 -B, --use-ascii     Use ASCII/text transfer
 -u, --user USER[:PASSWORD]  Server user and password
     --tlsuser USER  TLS username
     --tlspassword STRING TLS password
     --tlsauthtype STRING  TLS authentication type (default SRP)
     --unix-socket FILE    Connect through this UNIX domain socket
 -A, --user-agent STRING  User-Agent to send to server (H)
 -v, --verbose       Make the operation moretalkative
 -V, --version       Show version number and quit
 -w, --write-out FORMAT  What to output after completion
     --xattr        Store metadata in extended fileattributes
 -q                 If used as the first parameter disables .curlrc
[root@node101.yinzhengjie.org.cn ~]# re
[root@node101.yinzhengjie.org.cn ~]# curl --help

四.elinks工具

1>.安装elinks工具

Linux操作系统的curl命令的基本使用第1张Linux操作系统的curl命令的基本使用第13张
[root@node101.yinzhengjie.org.cn ~]# yum -y installelinks
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
epel/x86_64/metalink                                                                                                  | 8.6 kB  00:00:00     
 *base: mirrors.huaweicloud.com
 *epel: mirrors.tuna.tsinghua.edu.cn
 *extras: mirrors.huaweicloud.com
 *updates: mirrors.huaweicloud.com
base                                                                                                                  | 3.6 kB  00:00:00
epel                                                                                                                  | 5.3 kB  00:00:00
extras                                                                                                                | 2.9 kB  00:00:00
updates                                                                                                               | 2.9 kB  00:00:00
(1/2): epel/x86_64/primary_db                                                                                         | 6.9 MB  00:00:02
(2/2): epel/x86_64/updateinfo                                                                                         | 1.0 MB  00:00:05
Resolving Dependencies
-->Running transaction check
---> Package elinks.x86_64 0:0.12-0.37.pre6.el7.0.1will be installed
--> Processing Dependency: libnss_compat_ossl.so.0()(64bit) for package: elinks-0.12-0.37.pre6.el7.0.1.x86_64
--> Processing Dependency: libmozjs185.so.1.0()(64bit) for package: elinks-0.12-0.37.pre6.el7.0.1.x86_64
-->Running transaction check
---> Package js.x86_64 1:1.8.5-20.el7 will be installed
---> Package nss_compat_ossl.x86_64 0:0.9.6-8.el7 will be installed
-->Finished Dependency Resolution
Dependencies Resolved
=============================================================================================================================================
 Package                             Arch                       Version                                       Repository                Size
=============================================================================================================================================
Installing:
 elinks                              x86_64                     0.12-0.37.pre6.el7.0.1                        base                     882k
Installing fordependencies:
 js                                  x86_64                     1:1.8.5-20.el7                                base                     2.3M
 nss_compat_ossl                     x86_64                     0.9.6-8.el7                                   base                      37k
Transaction Summary
=============================================================================================================================================
Install  1 Package (+2Dependent packages)
Total download size: 3.2M
Installed size: 9.6M
Downloading packages:
(1/3): elinks-0.12-0.37.pre6.el7.0.1.x86_64.rpm                                                                       | 882 kB  00:00:00
(2/3): js-1.8.5-20.el7.x86_64.rpm                                                                                     | 2.3 MB  00:00:00
(3/3): nss_compat_ossl-0.9.6-8.el7.x86_64.rpm                                                                         |  37 kB  00:00:00     
---------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                        5.4 MB/s | 3.2 MB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : nss_compat_ossl-0.9.6-8.el7.x86_64                                                                                        1/3
  Installing : 1:js-1.8.5-20.el7.x86_64                                                                                                  2/3
  Installing : elinks-0.12-0.37.pre6.el7.0.1.x86_64                                                                                      3/3
  Verifying  : elinks-0.12-0.37.pre6.el7.0.1.x86_64                                                                                      1/3
  Verifying  : 1:js-1.8.5-20.el7.x86_64                                                                                                  2/3
  Verifying  : nss_compat_ossl-0.9.6-8.el7.x86_64                                                                                        3/3
Installed:
  elinks.x86_64 0:0.12-0.37.pre6.el7.0.1
Dependency Installed:
  js.x86_64 1:1.8.5-20.el7                                        nss_compat_ossl.x86_64 0:0.9.6-8.el7                                       
Complete!
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# yum -y install elinks

2>.使用elinks访问网页

[root@node101.yinzhengjie.org.cn ~]# elinks http://node107.yinzhengjie.org.cn          #执行该命令后会弹出一个字符界面的对话框。

Linux操作系统的curl命令的基本使用第14张

3>.使用"-source"选项

[root@node101.yinzhengjie.org.cn ~]# elinks -source http://node107.yinzhengjie.org.cn        #可以打印网页源码
<h1>尹正杰到此一游</h1>
[root@node101.yinzhengjie.org.cn ~]# 

4>.使用"-dump:"选项案例

[root@node101.yinzhengjie.org.cn ~]# elinks -dump http://node107.yinzhengjie.org.cn          #非交互式模式,将URL的内容输出至标准输出
尹正杰到此一游
[root@node101.yinzhengjie.org.cn ~]# 

免责声明:文章转载自《Linux操作系统的curl命令的基本使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇揭开SAP Fiori编程模型规范里注解的神秘面纱c/c++ 数组传参下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

JavaScript 模块体系

CommonJS 用于服务器 AMD 用于浏览器 ES6 Module 的语法 太长不看版:ES6 Module export命令 和 import命令 ES6 的模块自动采用严格模式,不管你有没有在模块头部加上"use strict";。 ES6 模块之中,顶层的this指向undefined,即不应该在顶层代码使用this。 export 命令 ex...

docker原理(转)

转自:https://zhuanlan.zhihu.com/p/22382728      https://zhuanlan.zhihu.com/p/22403015 在学习docker的过程中,我发现目前docker学习最大的障碍,不是网上的资源太少,而是网上的资源太多,资源太多带来的噪声让学习效率降低不少。而在讲解docker原理上,所有的讲解都是关于...

WPS for linux 中不能切换到中文输入法

转载自:http://blog.sciencenet.cn/blog-200199-1032795.html 尽管安装有中文输入法,wps有时仍然不能切换到中文输入法,此问题解决方案如下: 根账户下打开wps文件:gedit /usr/bin/wps 在#!/bin/bash下面添加: export XMODIFIERS="@im=fcitx"export...

Linux C/C++编程之(十七)进程间通信

文章目录 一、概述 二、进程间通信概念及方法 1. 管道的概念 2. pipe 3. 管道的读写行为 4. 管道缓冲区大小 5. 管道优劣 6. FIFO 7. 共享存储映射 8. mmap函数 9. munmap函数 10. mmap九问 11. mmap父子进程间通信 12. 匿名映射 13. mmap无血缘关系进程间通信 3. 练习...

Ubuntu Linux系统下aptget命令详解

常用的APT命令参数:apt-cache search package 搜索包apt-cache show package 获取包的相关信息,如说明、大小、版本等sudo apt-get install package 安装包sudo apt-get install package - - reinstall 重新安装包sudo apt-get -f in...

linux中apt-get使用

apt-get简介 在Ubuntu系统中,经常要用到apt-get install指令来安装软件,由于常常需要root权限来操作,所以搭配sudo食用口感更佳,apt-get指令对于安装、卸载、升级软件提供一条龙服务,对比于源码安装,实在是业界良心。 源码安装 源码安装的流程一般是三部曲: ./configure make make install...