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)
酷番叔酷番叔
上一篇 2025年9月19日 16:26
下一篇 2025年9月19日 16:38

相关推荐

  • linux如何搭建c语言环境变量

    Linux 中,可以通过编辑 /etc/environment 或用户目录下的 `.

    2025年8月13日
    3500
  • Linux如何安全删除目录?

    核心命令与区别rm 命令功能:删除文件及非空目录(含子目录和文件),基本语法: rm -r 目录名-r(或 -R)表示递归删除目录内所有内容,强制删除(慎用): rm -rf 目录名 # -f 强制删除,不提示确认示例:删除 /home/user/docs 及其内容rm -r /home/user/docsrm……

    2025年7月15日
    5400
  • linux如何安装libpng

    Linux中,可以使用包管理器安装libpng,在Debian/Ubuntu系统上运行sudo apt-get install libpng-dev,

    2025年8月14日
    3600
  • 如何安全开启Linux远程访问?

    常用远程访问方式SSH(推荐)加密命令行访问,适用于大多数Linux发行版(Ubuntu/CentOS/Debian等),VNC图形界面远程控制,适合需要桌面环境的场景,RDP(通过xrdp)兼容Windows远程桌面协议,实现图形化登录,SSH远程访问配置(以Ubuntu为例)步骤1:安装SSH服务端sudo……

    2025年7月28日
    3900
  • Linux如何退出根目录?路径or身份

    离开根目录()的路径位置若当前工作目录是根目录(显示为),需切换到其他目录:使用cd命令切换目录cd /home # 进入/home目录cd ~ # 返回当前用户的主目录(如/home/username)cd .. # 返回上级目录(根目录的上级仍是根目录,此命令无效)效果:终端提示符路径会变化(如从变为/ho……

    2025年8月9日
    3400

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信