curl命令 – 文件传输工具
curl命令来自英文词组“CommandLine URL”的缩写,其功能是用于在Shell终端界面中基于URL规则进行的文件传输工作。curl是一款综合的传输工具,可以上传也可以下载,支持HTTP、HTTPS、FTP等三十余种常见协议。
语法格式:curl [参数] 网址URL [文件名]
常用参数:
-a | 追加写入到指定文件 |
-A | 设置用户代理标头信息 |
-b | 设置用户Cookie信息 |
-B | 使用ASCII文本传输 |
-C | 支持断点续传 |
-d | 以HTTP POST方式传送数据 |
-D | 把头部信息写入到指定文件 |
-e | 设置来源网址URL |
-f | 连接失败时不显示报错 |
-o | 设置新的本地文件名 |
-O | 保留远程文件的原始名 |
-G | 以GET方式传送数据 |
-H | 自定义头信息 |
-I | 只显示请求头信息 |
-K | 读取指定配置文件 |
-N | 禁用缓冲输出 |
-s | 静默执行模式 |
-T | 上传指定文件 |
-u | 设置服务器的用户名和密码 |
-U | 设置代理的用户名和密码 |
--basic | 使用HTTP基本验证 |
--cacert | 设置CA证书文件 |
--capath | 设置CA证书目录 |
--cert-type | 设置客户端证书文件和密码 |
--ciphers | 设置SSL证书密码 |
--connect-timeout | 设置最大请求时间 |
--create-dirs | 创建本地目录的层次结构 |
--digest | 使用数字身份验证 |
--ftp-create-dirs | 自动创建远程目录 |
--ftp-pasv | 使用PASV/EPSV代替端口 |
--ftp-ssl | 使用SSL/TLS来进行数据传输 |
--ftp-ssl-reqd | 使用SSL/TLS来进行数据传输 |
--help | 显示帮助信息 |
--key | 设置私钥文件名 |
--key-type | 设置私钥文件类型 |
--limit-rate | 设置传输速度 |
--max-filesize | 设置最大下载的文件总量 |
--max-redirs | 设置最大重定向次数 |
--pass | 设置密钥密码 |
--progress-bar | 显示进度条 |
--verbose | 显示执行过程详细信息 |
--version | 显示版本信息 |
参考示例
获取指定网站的网页源码:
[root@linux-arae-cc ~]# curl https://linux.arae.cc
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
<meta charset="UTF-8" />
………………省略部分输出信息………………
下载指定网站中的文件:
[root@linux-arae-cc ~]# curl -O https://linux.arae.cc/docs/LinuxProbe.pdf
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 16.8M 100 16.8M 0 0 22.5M 0 --:--:-- --:--:-- --:--:-- 22.5M
打印指定网站的HTTP响应头信息:
[root@linux-arae-cc ~]# curl -I https://linux.arae.cc
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
HTTP/2 200
server: Tengine
content-type: text/html; charset=UTF-8
vary: Accept-Encoding
date: Wed, 04 May 2023 06:44:26 GMT
vary: Accept-Encoding
x-powered-by: PHP/7.4.11
vary: Accept-Encoding, Cookie
cache-control: max-age=3, must-revalidate
ali-swift-global-savetime: 1651646666
via: cache3.l2cn1802[235,234,200-0,M], cache17.l2cn1802[236,0], kunlun10.cn257[403,414,200-0,M], kunlun
2.cn257[417,0]
x-cache: MISS TCP_REFRESH_MISS dirn:0:416601537
x-swift-savetime: Wed, 04 May 2023 06:44:26 GMT
x-swift-cachetime: 3
timing-allow-origin: *
eagleid: ab08f29616516466664417014e
下载指定文件服务器中的文件(用户名:密码):
[root@linuxprobe ~]# curl -u linuxprobe:redhat ftp://linux.arae.cc/LinuxProbe.pdf