在Linux系统中,命令行下载文件是服务器管理、自动化脚本处理及远程文件获取的核心操作,相较于图形界面,命令行下载具有高效、灵活、可编程等优势,尤其适用于无GUI环境(如服务器、容器)或批量任务场景,本文将详细介绍Linux中主流的下载命令,包括其功能、语法、参数及实际应用,帮助用户根据需求选择合适工具。
wget:稳定可靠的通用下载工具
wget是GNU项目开发的下载工具,支持HTTP、HTTPS、FTP及FTPS协议,无需交互式操作即可完成下载,尤其适合脚本自动化和断点续传。
安装与基本语法
大多数Linux发行版默认安装wget,若未安装可通过包管理器补充:
- Debian/Ubuntu:
sudo apt install wget
- CentOS/RHEL:
sudo yum install wget
基本语法:wget [选项] URL
常用参数与示例
-
下载单个文件:
wget http://example.com/file.zip
默认将文件保存到当前目录,文件名与URL中一致。
-
指定保存目录与文件名:
wget -O /path/to/target_name.zip http://example.com/file.zip
-O
参数可覆盖默认文件名,需确保目录存在且有写权限。 -
后台下载:
wget -b http://example.com/large_file.iso
后台运行后,日志会保存在
wget-log
文件中,可通过tail -f wget-log
实时查看进度。 -
断点续传:
wget -c http://example.com/interrupted_file.zip
-c
参数可在网络中断或下载失败时,从断点继续传输,避免重复下载。 -
递归下载整个网站:
wget -r -p -k http://example.com website
-r
启用递归,-p
下载依赖资源(如图片、CSS),-k
将链接转换为本地可访问格式。 -
限速下载:
wget --limit-rate=100k http://example.com/file.zip
限制下载速度为100KB/s,避免占用过多带宽。
优缺点
- 优点:协议支持广、稳定可靠、参数丰富,适合自动化脚本。
- 缺点:多线程支持较弱(默认单线程),大文件下载速度较慢。
curl:多功能网络传输工具
curl不仅支持下载,还可用于上传、模拟HTTP请求等,支持HTTP、HTTPS、FTP、SCP、SFTP等百余种协议,适合需要精细控制下载场景(如带Cookie、Header的请求)。
安装与基本语法
默认多数系统已安装curl,未安装时可通过包管理器安装:
- Debian/Ubuntu:
sudo apt install curl
- CentOS/RHEL:
sudo yum install curl
基本语法:curl [选项] URL
常用参数与示例
-
下载并显示进度:
curl -# http://example.com/file.zip
参数以进度条形式显示下载状态,直观易读。
-
保存到指定文件:
curl -o output.zip http://example.com/file.zip
-o
指定输出文件名,若文件已存在则覆盖(-O
可保留原文件名)。 -
跟随重定向:
curl -L -O http://example.com/redirect_url
-L
参数自动跟随HTTP 301/302重定向,确保下载最终资源。 -
断点续传:
curl -C - -O http://example.com/file.zip
-C -
自动检测断点并续传,与wget的-c
类似。 -
通过代理下载:
curl -x http://proxy:8080 -O http://example.com/file.zip
-x
指定代理服务器地址,适用于内网环境或需要代理的场景。
优缺点
- 优点:协议支持极广、支持复杂请求(如POST、Cookie)、适合脚本集成。
- 缺点:默认不显示进度条(需加),下载完成后无提示(需结合
-o
或-O
)。
axel:多线程高速下载工具
axel专为加速下载设计,支持多线程分割下载,适合大文件或高带宽环境,可显著提升下载速度(尤其对HTTP/FTP协议)。
安装与基本语法
安装命令:
- Debian/Ubuntu:
sudo apt install axel
- CentOS/RHEL:
sudo yum install axel
基本语法:axel [选项] URL
常用参数与示例
-
多线程下载(默认10线程):
axel http://example.com/large_file.iso
自动将文件分割为10个部分并行下载,速度提升明显。
-
指定线程数:
axel -n 20 http://example.com/file.zip
-n
参数将线程数调整为20,适合高带宽服务器。 -
限速与断点续传:
axel -s 10240 -a http://example.com/file.zip
-s
限制速度为10240KB/s(10MB/s),-a
启用断点续传。
优缺点
- 优点:多线程下载速度快、支持断点续传、资源占用低。
- 缺点:协议支持较少(仅HTTP/FTP),无递归下载功能。
aria2:功能强大的全能下载工具
aria2被誉为“终极下载工具”,支持HTTP/HTTPS、FTP、SFTP、BitTorrent、Metalink等多种协议,同时具备多线程、断点续传、分布式下载等高级功能,适合复杂下载场景。
安装与基本语法
安装命令:
- Debian/Ubuntu:
sudo apt install aria2
- CentOS/RHEL:
sudo yum install aria2
基本语法:aria2c [选项] URL
常用参数与示例
-
多线程与分片下载:
aria2c -x 16 -s 16 -c http://example.com/file.zip
-x
设置每线程连接数,-s
设置分片数(通常与-x
一致),-c
启用断点续传。 -
下载BT/磁力链接:
aria2c -d /path/to/download --bt-seed-ratio=1.0 magnet:?xt=urn:btih:...
-d
指定下载目录,--bt-seed-ratio
设置做种比例(1.0表示下载完成后做种至1:1)。 -
通过RPC远程控制:
启动RPC服务:aria2c --enable-rpc --rpc-listen-all
其他终端通过RPC添加下载任务:curl -d "jsonrpc=2.0&id=1&method=aria2.addUri¶ms=[["http://example.com/file.zip"]]" http://localhost:6800/jsonrpc
优缺点
- 优点:协议支持最全、多线程/分片下载高效、支持RPC远程控制、支持BT/磁力链接。
- 缺点:参数复杂,学习成本较高。
lftp:FTP/SFTP高级客户端
lftp是功能强大的FTP/SFTP客户端,支持队列下载、断点续传、镜像同步,适合批量下载FTP/SFTP服务器资源。
安装与基本语法
安装命令:
- Debian/Ubuntu:
sudo apt install lftp
- CentOS/RHEL:
sudo yum install lftp
基本语法:lftp [选项] [用户@]主机
常用操作与示例
-
连接FTP服务器并下载文件:
lftp ftp://user:pass@ftp.example.com lftp ftp.example.com> get file.zip lftp ftp.example.com> exit
-
批量下载文件:
lftp ftp://user:pass@ftp.example.com -e "mget *.zip; exit"
-e
参数直接执行命令,mget
批量下载匹配文件。 -
镜像整个目录:
lftp ftp://user:pass@ftp.example.com -e "mirror -n remote_dir local_dir; exit"
mirror
同步目录,-n
仅下载不存在的文件(避免覆盖)。
优缺点
- 优点:FTP/SFTP功能强大、支持队列与镜像、断点续传稳定。
- 缺点:需交互式操作(可通过
-e
简化),协议支持较少。
主流下载工具对比
工具 | 支持协议 | 断点续传 | 多线程 | 后台下载 | 适用场景 |
---|---|---|---|---|---|
wget | HTTP/HTTPS/FTP/FTPS | 支持 | 单线程 | 支持 | 通用下载、自动化脚本、网站镜像 |
curl | HTTP/HTTPS/FTP/SCP等百余种 | 支持 | 单线程 | 不支持 | 复杂请求、API调用、脚本集成 |
axel | HTTP/FTP | 支持 | 多线程 | 支持 | 大文件高速下载 |
aria2 | HTTP/HTTPS/FTP/SFTP/BT等 | 支持 | 多线程 | 支持 | 全协议下载、BT/磁力链接、RPC控制 |
lftp | FTP/SFTP | 支持 | 多连接 | 支持 | FTP/SFTP批量下载、目录同步 |
相关问答FAQs
问题1:如何根据需求选择合适的下载命令?
解答:选择下载工具需结合场景需求:
- 通用下载/自动化脚本:优先选wget(稳定、参数简单)或curl(协议支持广、适合复杂请求)。
- 大文件高速下载:选axel(轻量多线程)或aria2(功能更强,支持BT)。
- FTP/SFTP批量操作:选lftp(队列、镜像功能完善)。
- 需要远程控制/多协议:选aria2(支持RPC、BT/磁力链接)。
问题2:下载过程中遇到中断或速度慢,如何排查解决?
解答:
- 中断后续传:所有工具均支持断点续传(wget的
-c
、curl的-C -
、aria2的-c
),直接重新执行原命令即可。 - 速度慢排查:
- 网络问题:使用
ping
/traceroute
测试目标服务器连通性,或更换镜像源。 - 线程不足:axel/aria2可通过
-n
/-x
增加线程数(如axel -n 20
)。 - 限速设置:检查是否误用限速参数(如wget的
--limit-rate
),或关闭防火墙/代理测试。 - 服务器限制:部分服务器限制单线程速度,可尝试多工具对比(如aria2分片下载)。
- 网络问题:使用
通过以上方法,可有效解决下载中断或速度慢的问题。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/18709.html