一、命令简介
curl 命令使用 HTTP、HTTPS、FTP、FTPS、SCP、SFTP、TFTP、DICT、TELNET、LDAP或FILE支持的协议之一,将数据传输到网络服务器或从网络服务器传输数据。它非常适合在 Shell 脚本中使用。
curl 命令提供代理支持,用户身份验证,FTP 上传,HTTP 发布,SSL 连接,cookie,文件传输恢复,metalink 和其他功能。
二、语法格式
curl [options] [URL...]
三、选项说明
-A #用户代理
-b #发送 Cookie 信息
-c #将 Cookie 写入文件
-d #发送 POST 请求的数据体
-e #设置 HTTP 的标头 Referer 字段
-F #向服务器上传文件
-G #构造 URL 的查询字符串
-H #添加 HTTP 请求的标头
-i #打印服务器回应的 HTTP 标头
-I 打印服务器回应的 HEAD 标头
-k #跳过 SSL 检测
-L #跟随服务器的重定向
–limit-rate #限制请求和回应的带宽
-o #将服务器的回应保存成文件(下载文件,然后重新命名)
-O #将服务器的回应保存成文件(下载多个文件)
-s #不输出错误和进度信息
-S #只输出错误信息
-u #设置认证的用户名和密码
-v #打印调试信息
-x #设置请求代理
-X #指定请求的方法
四、应用举例
1、打印版本信息
$ curl --version
curl 7.29.0 (x86_64-redhat-linux-gnu) libcurl/7.29.0 NSS/3.36 zlib/1.2.7 libidn/1.28 libssh2/1.4.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp
Features: AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz unix-sockets
2、下载文件
$ curl -O http://nginx.org/download/nginx-1.18.0.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1015k 100 1015k 0 0 177k 0 0:00:05 0:00:05 --:--:-- 237k
$ ll nginx-1.18.0.tar.gz
-rw-r--r-- 1 root root 1039530 3月 24 23:05 nginx-1.18.0.tar.gz
$ curl -o $(date +%F)_download_nginx.tar.gz http://nginx.org/download/nginx-1.18.0.tar.gz
# 将下载下来的文件重新改名成新的指定的文件名
$ ll *nginx*
-rw-r--r-- 1 root root 1039530 3月 24 23:08 2021-03-24_download_nginx.tar.gz
-rw-r--r-- 1 root root 1039530 3月 24 23:05 nginx-1.18.0.tar.gz
3、POST请求举例
$ curl http://www.baidu.com
$ curl -i http://www.baidu.com
# 显示全部信息
$ curl -l http://www.baidu.com
# 只显示头部信息
$ curl -v http://www.baidu.com
# 只显示get请求全过程解析信息
4、登录服务器
$ curl -u mingongge:passwdPassWd https://github.com/mingongge/
$ curl -u mingongge https://github.com/mingongge/
Enter host password for user 'mingongge':
5、上传文件(如上传文件到文件服务器)
$ curl -T user1.png ftp://username:password@ip:port/www/web/user_download/
6、打印下载进度条
$ curl -# -O http://nginx.org/download/nginx-1.18.0.tar.gz