菜鸟科技网

Linux下载命令有哪些?

在Linux系统中,下载文件是日常运维和开发中的常见需求,掌握多种下载命令的使用方法能高效完成不同场景下的文件传输任务,Linux提供了丰富的下载工具,如wget、curl、axel、aria2等,它们各具特点,支持HTTP、HTTPS、FTP、FTPS等多种协议,并具备断点续传、多线程下载、代理设置等高级功能,以下将详细介绍这些命令的使用方法、参数选项及实际应用场景。

Linux下载命令有哪些?-图1
(图片来源网络,侵删)

wget:经典多功能下载工具

wget是Linux中最常用的下载命令之一,以其稳定性和丰富的功能著称,它支持递归下载、镜像网站、后台下载等操作,适用于从HTTP、HTTPS、FTP服务器获取文件,基本语法为wget [选项] URL,常用参数包括:

  • -r:递归下载,可获取指定目录下的所有文件。
  • -np:不下载父目录,避免递归时超出目标范围。
  • -nd:不创建目录,将文件直接下载到当前目录。
  • -c:断点续传,若下载中断可从断点继续。
  • -b:后台下载,适合大文件下载时不阻塞终端。
  • -P:指定下载目录,如wget -P /path/to/dir URL
  • --limit-rate:限制下载速度,如wget --limit-rate=100k URL
  • --user/--password:认证用户名和密码,适用于需要权限的FTP服务器。

下载整个网站并限制带宽:wget -r -np -nd --limit-rate=200k http://example.com/files/,wget的递归功能在镜像网站时尤为实用,但需注意遵守网站的robots.txt规则,避免对服务器造成过大压力。

curl:灵活的网络传输工具

curl最初并非专为下载设计,但其强大的URL传输能力使其成为下载工具的佼佼者,curl支持多种协议,可同时上传下载,适合需要精细控制的场景,基本语法为curl [选项] URL,常用参数包括:

  • -O:保留远程文件名,如curl -O http://example.com/file.zip
  • -o:指定本地文件名,如curl -o localfile.txt URL
  • -C -:断点续传,与wget的-c类似。
  • -L:跟随重定向,处理URL跳转。
  • -u:设置认证信息,如curl -u username:password URL
  • -x:指定代理服务器,如curl -x proxy.com:8080 URL
  • 显示进度条,提升用户体验。

curl的强大之处在于其与脚本的结合能力,例如通过curl -s URL | grep keyword可远程获取并解析网页内容,curl支持JSON、SOAP等协议,适合API接口调试和数据获取。

Linux下载命令有哪些?-图2
(图片来源网络,侵删)

axel:多线程加速下载工具

axel通过多线程技术显著提升下载速度,尤其适合高带宽服务器和大文件下载,其基本语法为axel [选项] URL,常用参数包括:

  • -n:设置线程数,默认为4,如axel -n 10 URL
  • -s:限制每线程速度,如axel -s 10240 URL(单位为字节)。
  • -o:指定输出文件名。
  • -c:断点续传。
  • -q:静默模式,不显示进度信息。

使用10线程下载并限制总速度为1MB/s:axel -n 10 -s 100k URL,axel在下载ISO镜像、大型安装包时效率突出,但部分服务器可能限制多线程连接,需根据实际情况调整线程数。

aria2:全能型下载工具

aria2被誉为“终极下载工具”,它支持HTTP、HTTPS、FTP、BitTorrent、Metalink等多种协议,并整合了多线程、断点续传、种子下载等功能,基本语法为aria2c [选项] URL,常用参数包括:

  • -x:单线程最大连接数,默认为16。
  • -s:最大并发线程数,如aria2c -s 10 URL
  • -c:启用断点续传。
  • -d:指定下载目录。
  • -i:从文件中批量下载URL列表。
  • --seed-time:做种时间(用于BT下载),如--seed-time=60

aria2的强大之处在于其协议兼容性,例如同时支持HTTP和BT下载:aria2c -s 10 http://example.com/file.torrent,通过RPC接口可远程控制下载任务,适合构建自动化下载系统。

Linux下载命令有哪些?-图3
(图片来源网络,侵删)

其他工具及场景选择

  1. scp/rsync:适用于服务器间文件传输,基于SSH协议,安全性高,例如scp user@remote:/path/to/file ./
  2. lftp:交互式文件传输工具,支持FTP/SFTP/HTTP,适合批量操作和脚本控制。
  3. uget:图形化下载工具,适合桌面环境用户,支持多线程、插件扩展。

选择工具时需考虑场景:若需简单下载,wget或curl足够;追求速度选axel或aria2;服务器间传输用scp/rsync;批量任务可选lftp脚本化处理。

下载命令对比表

工具 支持协议 多线程 断点续传 后台下载 特色功能
wget HTTP/HTTPS/FTP 支持 支持 递归下载、镜像网站
curl 多协议 支持 需配合& 脚本集成、API调试
axel HTTP/HTTPS/FTP 支持 支持 支持 多线程加速、速度限制
aria2 多协议+BT 支持 支持 支持 协议兼容、RPC控制

相关问答FAQs

Q1: 如何在Linux中下载一个需要用户名密码的FTP文件?
A: 使用wget或curl均可实现,wget命令示例:wget --ftp-user=username --ftp-password=password ftp://example.com/file.zip;curl命令示例:curl -u username:password ftp://example.com/file.zip -O,若需安全传输,建议使用SFTP协议并通过scp命令:scp username@host:/path/to/file ./

Q2: 下载大文件时如何避免因网络中断导致任务失败?
A: 可使用支持断点续传的工具,如wget加-c参数:wget -c http://example.com/largefile.iso;或使用aria2:aria2c -c URL,可通过nohup命令配合后台下载(如nohup wget URL &)确保终端关闭后任务继续,若服务器支持,也可使用下载管理工具(如uget)的自动恢复功能。

分享:
扫描分享到社交APP
上一篇
下一篇