在Linux操作系统中,下载文件是日常运维和开发中常见的操作,系统提供了多种命令行工具来实现高效下载,这些工具各具特色,支持不同的协议(如HTTP、HTTPS、FTP等),并具备断点续传、后台运行、限速下载等实用功能,以下将详细介绍Linux中常用的下载命令及其使用方法。

wget命令
wget是Linux中最经典的下载工具,以其稳定性和强大的功能著称,它支持HTTP、HTTPS、FTP等多种协议,并能够递归下载整个网站目录,wget的基本语法为wget [选项] URL
,常用选项包括:
-b
:后台下载,将日志输出到当前目录的wget-log
文件中。-c
:断点续传,适用于因网络中断导致的未完成下载。-r
:递归下载,可配合-np
(不下载父目录)和-k
(转换链接)使用,用于镜像网站。-P
:指定下载文件保存的目录,如wget -P /path/to/dir URL
。--limit-rate
:限制下载速度,例如wget --limit-rate=100k URL
限制为100KB/s。-O
:指定输出文件名,如wget -O newname.zip URL
。
下载一个大型文件并启用断点续传:wget -c -O largefile.zip http://example.com/largefile.zip
,若需下载整个网站的前5层目录,可使用wget -r -l 5 -np -k http://example.com
。
curl命令
curl是一个功能强大的网络传输工具,支持HTTP、HTTPS、FTP、SCP等数十种协议,常用于API测试和数据传输,curl的语法为curl [选项] URL
,核心优势在于灵活性和对复杂请求的支持:
-o
或-O
:保存输出到文件,-o
指定文件名,-O
使用URL中的文件名。-L
:跟随重定向,适用于短链接或需要跳转的URL。-C -
:启用断点续传,与wget的-c
类似。-u
:提供用户认证信息,如curl -u username:password ftp://example.com/file
。-d
:发送POST请求的数据,常用于API交互,如curl -d "param1=value1" -X POST URL
。--limit-rate
:限速下载,语法同wget。
通过curl下载文件并显示进度条:curl -L -O -# URL
,若需下载多个文件,可结合-o
指定不同输出名,或通过文件列表批量下载。

aria2命令
aria2是一款轻量级且高速的多协议下载工具,支持HTTP、HTTPS、FTP、BT、磁力链接等协议,尤其适合多线程下载,其核心优势在于高并发和资源占用低,安装后可通过aria2c
命令调用:
-x
:最大并发连接数,默认为16,可设置为aria2c -x 16 URL
。-s
:分片数量,与-x
配合使用提升速度,如aria2c -x 16 -s 16 URL
。-c
:启用断点续传。-d
:指定下载目录,-o
指定文件名。--max-download-limit
:限制下载速度,如aria2c --max-download-limit=100k URL
。-i
:从文件中读取URL列表,支持批量下载。
使用aria2下载BT种子:aria2c -t 32 -x 16 -s 16 file.torrent
,若需通过磁力链接下载,可直接使用aria2c "magnet:?xt=urn:btih:..."
。
其他工具
- axel:多线程下载工具,语法简单,适合快速下载大文件,常用
axel -n 10 URL
(10线程)。 - lftp:支持FTP/SFTP/HTTP的高级客户端,可通过
mirror
命令同步目录,如lftp -u user,pass -e "get file; exit" host
。 - rsync:主要用于文件同步和增量备份,但也可通过
rsync -avz --progress URL local_dir
实现下载。
工具对比
工具 | 支持协议 | 多线程 | 断点续传 | 特色功能 | 适用场景 |
---|---|---|---|---|---|
wget | HTTP/HTTPS/FTP | 否 | 支持 | 递归下载、网站镜像 | 网站爬取、简单下载 |
curl | 多协议 | 否 | 支持 | API交互、自定义请求头 | API测试、复杂请求 |
aria2 | 多协议+BT | 支持 | 支持 | 多协议、资源占用低 | 大文件、BT/磁力链接 |
axel | HTTP/HTTPS | 支持 | 支持 | 简单快速 | 高速HTTP下载 |
lftp | FTP/SFTP/HTTP | 支持 | 支持 | 目录同步、脚本化 | 服务器文件同步 |
使用建议
- 简单下载:优先选择wget或curl,两者预装于多数Linux发行版。
- 大文件/多线程:使用aria2,通过
-x
和-s
参数优化速度。 - 网站镜像:wget的
-r
和-np
组合更高效。 - API交互:curl的
-d
和-H
选项更灵活。 - 批量下载:aria2支持文件列表,wget可通过
-i
读取URL文件。
相关问答FAQs
Q1: 如何在Linux中下载一个需要登录的网站文件?
A1: 可使用curl的-u
参数提供用户名和密码,例如curl -u username:password -O https://example.com/protected/file.zip
,若网站使用Cookie认证,可先通过浏览器获取Cookie,再通过-b
参数传入,如curl -b "cookie=value" -O URL
,wget则可通过--http-user
和--http-password
指定认证信息。
Q2: 下载过程中如何监控实时速度和进度?
A2: wget默认显示进度条,若需实时速度,可结合-v
(详细模式)或使用pv
工具(需安装)管道显示,如wget -q -O - URL | pv > file
,curl的参数可显示进度条,-w
格式化输出速度,例如curl -w "%{speed_download}\n" -O URL
,aria2默认显示实时速度和进度,无需额外参数。
