Linux终端如何下载文件?

在Linux终端环境中,下载文件是日常运维、开发和服务管理中的常见需求,由于Linux服务器通常不配备图形界面,掌握终端下载命令至关重要,本文将详细介绍Linux终端中主流的文件下载工具及其使用方法,涵盖基础命令、高级功能及适用场景,帮助用户根据实际需求选择合适的下载方式。

linux 终端如何下载文件

基础下载工具:wget与curl

wget和curl是Linux中最基础、最常用的下载工具,二者均支持HTTP、HTTPS、FTP等协议,但各有侧重。

wget:非交互式下载利器

wget是GNU开发的免费工具,以“非交互式”和“断点续传”著称,尤其适合脚本自动化下载,其基本语法为wget [选项] URL,常用参数包括:

  • -c:断点续传,若下载中断可从断点继续;
  • -b:后台下载,适合大文件下载,避免阻塞终端;
  • -P:指定保存目录,如-P /tmp将文件保存到/tmp
  • -r:递归下载,可下载整个网站(需配合-l限制层级);
  • -q:静默模式,不输出下载信息,适合脚本中静默执行;
  • --limit-rate:限速下载,如--limit-rate=100k限制速度为100KB/s。

示例

  • 下载单个文件并保存到/home/userwget -P /home/user https://example.com/file.zip
  • 后台下载并记录日志:wget -b -o download.log https://example.com/large.iso
  • 断点续传下载中断的文件:wget -c https://example.com/incomplete_file.tar.gz

curl:多功能传输工具

curl支持更多协议(如SMTP、SCP、SFTP等),且默认输出到终端,适合需要实时查看下载进度的场景,其语法为curl [选项] URL,常用参数包括:

  • -O:保持远程文件名,如curl -O https://example.com/file.zip
  • -o:指定本地文件名,如curl -o myfile.txt https://example.com/data.txt
  • -L:跟随重定向,若URL跳转可自动跟踪;
  • -u:用户认证,如-u username:password
  • -x:设置代理,如-x http://proxy:port
  • -C -:断点续传,与wget的-c类似。

示例

  • 下载文件并保持原文件名:curl -O https://example.com/image.jpg
  • 通过代理下载文件:curl -x http://192.168.1.100:8080 -o file.pdf https://example.com/report.pdf
  • 带用户名密码下载:curl -u admin:password -O https://example.com/private.zip

高级下载工具:aria2

aria2是一款轻量级、多线程下载工具,支持HTTP、HTTPS、FTP、BT、磁力链接等多种协议,下载速度远超wget和curl,尤其适合大文件和资源密集型下载,其语法为aria2c [选项] URL,核心参数包括:

linux 终端如何下载文件

  • -x:单线程连接数,如-x 16设置16线程;
  • -s:同时下载的文件数,适合多文件下载;
  • -c:启用断点续传;
  • -d:下载目录,如-d /downloads
  • -t:超时时间(秒),默认60秒;
  • --check-certificate:忽略SSL证书错误(测试环境可用)。

示例

  • 多线程下载大文件:aria2c -x 8 -s 8 -c https://example.com/large_file.iso
  • 下载磁力链接:aria2c --bt-metadata-only=true -d /downloads "magnet:?xt=urn:btih:..."
  • 下载种子文件:aria2c -s 2 -d /downloads example.torrent

远程文件传输工具:scp与rsync

若需从远程服务器下载文件(如SSH连接的服务器),scp和rsync是更安全的选择。

scp:基于SSH的安全复制

scp通过SSH协议传输文件,语法为scp [选项] user@host:/remote/path /local/path,常用参数:

  • -P:指定SSH端口(默认22);
  • -r:递归复制目录;
  • -C:启用压缩。

示例

  • 从远程服务器下载文件:scp -P 2222 user@192.168.1.100:/home/user/file.txt /local/path
  • 下载整个目录:scp -r user@remote:/var/www /local/backup

rsync:增量同步工具

rsync支持增量传输(仅同步变化部分),适合大文件或频繁同步场景,语法为rsync [选项] user@host:/remote/path /local/path,常用参数:

  • -a:归档模式,保留权限、时间戳等属性;
  • -v:显示详细过程;
  • -z:压缩传输;
  • -P:显示进度并支持断点续传。

示例

linux 终端如何下载文件

  • 同步远程目录到本地:rsync -avz user@remote:/data/ /local/backup/
  • 仅同步变化文件并显示进度:rsync -avP user@remote:/logs/ /local/logs/

其他下载方式

  • git clone:若需从GitHub、Gitee等代码仓库下载代码,可直接使用git clone <仓库地址>,支持SSH和HTTPS协议。
  • ftp/sftp:传统FTP协议可通过ftp命令连接(交互式),或使用sftp(基于SSH的安全FTP),语法类似scp,如sftp user@remote后用get filename下载。

工具对比与选择

为方便选择,以下是主流下载工具的特性对比:

工具 主要用途 断点续传 多线程 代理支持 认证支持 适用场景
wget 通用下载、脚本自动化 静态资源、网站镜像、后台任务
curl 多协议传输、API测试 动态链接、实时进度、调试接口
aria2 大文件、BT/磁力下载 高速下载、P2P资源、批量任务
scp 远程文件安全传输 是(SSH) 服务器间文件同步、敏感数据
rsync 远程增量同步 是(SSH) 目录备份、频繁同步、数据迁移

注意事项

  1. 代理设置:若通过代理下载,需确保工具支持代理参数(如wget的--proxy、curl的-x),并配置代理服务器地址和端口。
  2. 权限问题:下载前需确保对目标目录有写权限(如mkdir -p /downloads && chmod 755 /downloads)。
  3. URL编码:若URL包含特殊字符(如空格、&),需用引号包裹或进行编码(如%20代替空格)。

相关问答FAQs

问题1:下载大文件时网络中断,如何继续下载?
解答:不同工具支持断点续传的方式不同:

  • wget:使用wget -c URL,若原文件存在会自动从断点继续;
  • curl:使用curl -C - -O URL-C -表示自动检测断点;
  • aria2:使用aria2c -c URL,默认启用断点续传;
  • rsync:使用rsync -avP URL-P参数包含断点续传功能。

问题2:如何通过代理服务器下载文件?
解答:以常见工具为例,代理配置如下:

  • wget:wget --proxy=on -e "http_proxy=http://proxy:port" -e "https_proxy=http://proxy:port" URL
  • curl:curl -x "http://proxy:port" URL(若需HTTPS代理,将协议改为https);
  • aria2:aria2c --http-proxy="http://proxy:port" --https-proxy="http://proxy:port" URL
    注意:代理地址需替换为实际可用的代理服务器(如http://192.168.1.100:8080),并确保代理服务器允许下载流量。

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

(0)
酷番叔酷番叔
上一篇 1小时前
下一篇 1小时前

相关推荐

  • linux如何查看汇编代码

    Linux中,可以使用objdump -d 命令查看汇编代码,或者

    2025年8月9日
    2200
  • hosts文件的作用是什么?位置在哪里?

    在Linux系统中,hosts文件是一个用于本地域名解析的核心配置文件,它允许用户手动指定主机名(域名)与IP地址的映射关系,优先级高于DNS服务器查询,以下从生效机制、操作步骤到注意事项的完整指南,帮助您安全高效地管理hosts文件,核心功能:当系统访问一个域名(如example.com)时,首先查询host……

    2025年6月30日
    3700
  • Linux下JD GUI工具的具体使用方法是什么?

    在Linux环境下使用JD-GUI进行Java文件反编译是开发者常用的操作,尤其当需要分析第三方库、调试或学习Java字节码逻辑时,JD-GUI作为一款图形化反编译工具,能直观地将.class文件、JAR包或WAR包转换为可读的Java源代码,无需依赖命令行操作,适合不同技术背景的用户,以下从安装、配置、基础操……

    2025年8月24日
    1600
  • 为什么90后频繁跳槽

    在Linux系统中,正确关闭已打开的文件是系统管理和编程开发中的关键操作,这不仅涉及资源释放,还关系到数据完整性和系统稳定性,以下从命令行操作和编程实现两个维度详细说明关闭文件的方法,并解释其重要性,为什么必须关闭文件?释放系统资源Linux内核为每个打开的文件分配文件描述符(File Descriptor……

    2025年7月23日
    3200
  • Linux如何以daemon方式运行程序?

    在Linux系统中,守护进程(Daemon)是一种在后台运行、独立于终端的进程,通常用于提供系统服务或周期性执行任务,如Web服务器、数据库服务、日志轮转等,守护进程的创建和管理需要遵循特定规范,以确保其稳定运行且与系统环境兼容,以下是Linux中以daemon方式运行进程的详细方法,涵盖手动创建和system……

    2025年8月25日
    1800

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信