打开命令行工具下载是许多开发者和高级用户在日常操作中经常需要掌握的技能,通过命令行可以更高效、灵活地管理文件和软件,尤其适合批量操作或自动化任务,以下将详细介绍在不同操作系统(Windows、macOS、Linux)下如何使用命令行工具进行下载,包括常用命令、参数说明及实际应用场景。

Windows系统下的命令行下载
在Windows系统中,默认的命令行工具是CMD和PowerShell,两者均可用于下载文件,但功能和语法有所不同。
使用CMD(命令提示符)
CMD是Windows的传统命令行工具,可通过内置的certutil
或bitsadmin
命令实现下载。
-
certutil命令
certutil
主要用于证书管理,但也可用于下载文件,语法简单:certutil -urlcache -split -f "下载链接" 保存路径
下载一个图片到桌面:
(图片来源网络,侵删)certutil -urlcache -split -f "https://example.com/image.jpg" %USERPROFILE%\Desktop\image.jpg
参数说明:
-urlcache
:缓存下载内容;-split
:分块下载;-f
:强制覆盖已存在文件。
-
bitsadmin命令
bitsadmin
是Windows后台智能传输服务的命令行工具,支持断点续传:bitsadmin /transfer myDownloadJob "下载链接" 保存路径
bitsadmin /transfer myDownloadJob "https://example.com/file.zip" %USERPROFILE%\Downloads\file.zip
优势:适合大文件下载,即使命令行关闭,下载任务也会在后台继续。
使用PowerShell
PowerShell功能更强大,支持HTTP/HTTPS协议下载,推荐使用Invoke-WebRequest
或Invoke-RestMethod
命令。

-
Invoke-WebRequest
Invoke-WebRequest -Uri "下载链接" -OutFile "保存路径"
Invoke-WebRequest -Uri "https://example.com/file.zip" -OutFile "$env:USERPROFILE\Downloads\file.zip"
参数说明:
-Uri
:指定下载链接;-OutFile
:指定保存路径及文件名。
-
Invoke-RestMethod
与Invoke-WebRequest
类似,但更适合处理返回JSON数据的API接口:Invoke-RestMethod -Uri "https://api.example.com/data" -OutFile "$env:USERPROFILE\Downloads\data.json"
macOS/Linux系统下的命令行下载
macOS和Linux系统通常默认安装curl
和wget
工具,两者均支持HTTP/HTTPS/FTP等多种协议,功能强大。
使用curl
curl
是一个多功能工具,支持上传下载、代理设置等,语法灵活:
curl -O "下载链接" # 保留原文件名下载 curl -o "保存路径" "下载链接" # 指定保存路径及文件名 curl -C - -O "下载链接" # 支持断点续传
常用参数:
-L
:跟随重定向;- 显示进度条;
-H
:添加请求头(如-H "Authorization: Bearer token"
)。
示例:
curl -L -o ~/downloads/file.zip "https://example.com/file.zip"
使用wget
wget
专注于下载,支持递归下载、镜像站点等高级功能:
wget "下载链接" # 保留原文件名下载 wget -O "保存路径" "下载链接" # 指定保存路径及文件名 wget -c "下载链接" # 断点续传
常用参数:
--limit-rate
:限速下载(如--limit-rate=100k
);-b
:后台下载;-r
:递归下载(用于整站爬取)。
示例:
wget -b -O ~/downloads/file.zip "https://example.com/file.zip"
不同工具对比
工具 | 支持系统 | 优势 | 适用场景 |
---|---|---|---|
certutil | Windows | 系统内置,无需安装 | 简单文件下载 |
bitsadmin | Windows | 支持断点续传,后台下载 | 大文件或网络不稳定环境 |
PowerShell | Windows | 支持脚本化处理,功能丰富 | 复杂下载任务或集成到自动化脚本 |
curl | macOS/Linux/Windows | 协议支持广,参数灵活 | 开发调试、API交互 |
wget | macOS/Linux | 支持递归下载,镜像站点 | 批量下载、整站爬取 |
实际应用场景
-
批量下载文件
使用wget
的递归下载功能,可以获取整个网站的资源:wget -r -np -nH --cut-dirs=1 -R "index.html*" "https://example.com/files/"
参数说明:
-r
:递归下载;-np
:不向上遍历父目录;-nH
:不创建主机目录;--cut-dirs
:忽略目录层级。
-
自动化脚本下载
在Linux中,结合cron
定时任务,可实现定期下载文件:# 编辑crontab 0 2 * * * wget -O /backup/data_$(date +\%Y\%m\%d).zip "https://example.com/daily_backup"
该命令将在每天凌晨2点下载备份文件,并以日期命名。
常见问题与解决
-
下载速度慢
原因:可能是服务器限速或网络波动。
解决:- 使用
wget
的--limit-rate
参数限速避免占用过多带宽; - 通过
curl
的多线程工具(如axel
)加速下载。
- 使用
-
下载失败(证书错误)
原因:SSL证书验证失败,常见于自签名证书网站。
解决:- curl添加
-k
参数跳过证书验证:curl -k -O "https://example.com/file"
; - wget添加
--no-check-certificate
参数。
- curl添加
相关问答FAQs
Q1:如何通过命令行下载并解压压缩文件?
A:以Linux为例,可使用wget
下载后结合unzip
解压:
wget -O temp.zip "https://example.com/archive.zip" && unzip temp.zip -d ./target_dir
Windows下可使用PowerShell:
Invoke-WebRequest -Uri "https://example.com/archive.zip" -OutFile temp.zip; Expand-Archive -Path temp.zip -DestinationPath ./target_dir
Q2:如何验证下载文件的完整性?
A:通过校验和(如MD5、SHA256)验证文件是否损坏,以Linux为例:
wget "https://example.com/file.zip" sha256sum file.zip # 查看校验和
将输出的校验和与官方提供的值对比,一致则文件完整,Windows下可使用certutil -hashfile file.zip SHA256
。