Linux如何用命令下载文件的具体方法有哪些?

在Linux系统中,命令行下载文件是服务器管理、自动化脚本处理及远程文件获取的核心操作,相较于图形界面,命令行下载具有高效、灵活、可编程等优势,尤其适用于无GUI环境(如服务器、容器)或批量任务场景,本文将详细介绍Linux中主流的下载命令,包括其功能、语法、参数及实际应用,帮助用户根据需求选择合适工具。

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

常用参数与示例

  • 下载并显示进度:

    linux如何用命令下载文件

    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等多种协议,同时具备多线程、断点续传、分布式下载等高级功能,适合复杂下载场景。

linux如何用命令下载文件

安装与基本语法

安装命令:

  • 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&params=[["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:下载过程中遇到中断或速度慢,如何排查解决?

解答:

  1. 中断后续传:所有工具均支持断点续传(wget的-c、curl的-C -、aria2的-c),直接重新执行原命令即可。
  2. 速度慢排查:
    • 网络问题:使用ping/traceroute测试目标服务器连通性,或更换镜像源。
    • 线程不足:axel/aria2可通过-n/-x增加线程数(如axel -n 20)。
    • 限速设置:检查是否误用限速参数(如wget的--limit-rate),或关闭防火墙/代理测试。
    • 服务器限制:部分服务器限制单线程速度,可尝试多工具对比(如aria2分片下载)。

通过以上方法,可有效解决下载中断或速度慢的问题。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/18709.html

赞 (0)
酷番叔酷番叔
上一篇 2025年8月28日 07:28
下一篇 2025年8月28日 07:53

相关推荐

  • Linux系统下运行Python文件的具体命令和方法是什么?

    在Linux系统中运行Python文件是开发者和运维人员的基本技能之一,Python作为一种解释型语言,其执行依赖于Python解释器,而Linux作为主流服务器和开发环境,提供了多种灵活的方式来运行Python脚本,本文将详细介绍Linux环境下运行Python文件的多种方法、注意事项及进阶技巧,帮助读者全面……

    2025年8月24日
    26800
  • 如何调试Linux动态库?

    在Linux环境下调试动态库是开发过程中常见的任务,尤其当程序因动态库加载失败、符号未解析、内存泄漏或运行时崩溃时,系统化的调试方法能快速定位问题,以下从调试准备、静态分析、动态调试、问题排查等方面详细说明操作步骤和工具使用,调试前准备:确保调试信息完整动态库调试的前提是程序包含调试符号(通常为.debug节……

    2025年9月26日
    30100
  • Linux如何用命令行操作光驱?

    检查光驱识别状态查看设备节点终端执行:ls /dev/sr*输出类似 /dev/sr0 表示光驱已被识别(sr0 是常见设备名),检查内核识别状态dmesg | grep -i cdrom若输出包含 CD-ROM 和型号信息,说明驱动正常,挂载与访问光盘图形界面(推荐新手)插入光盘后,文件管理器(如Nautil……

    2025年7月25日
    33400
  • Linux中tc命令如何启用网络流量控制?

    Linux内核中的流量控制(Traffic Control,简称tc)工具是网络管理的重要组件,允许管理员对网络接口的带宽分配、延迟模拟、丢包控制等进行精细化配置,启用tc功能通常涉及内核模块加载、工具安装及规则配置,本文将详细说明其启用流程及操作示例,需确认内核是否支持tc所需的队列规则(qdisc)模块,t……

    2025年9月13日
    2.0K00
  • 电脑安装Linux系统具体步骤有哪些?

    安装Linux系统是一个涉及准备、配置和执行的过程,适合有一定电脑操作基础的用户,以下从准备工作到安装完成后的配置,分步骤详细说明如何给电脑安装Linux,安装前的准备工作确认电脑配置与兼容性CPU架构:主流Linux发行版支持x86_64(Intel/AMD)架构,ARM架构设备(如树莓派、部分笔记本)需选择……

    2025年8月21日
    28800

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信