Linux 终端作为 Linux 系统的核心交互工具,提供了高效、灵活的文件下载能力,无论是下载单个文件、整个目录,还是通过包管理器安装软件,终端都能通过命令行快速完成,本文将详细介绍 Linux 终端中常用的下载方法,涵盖通用工具、包管理器及源码下载等场景,帮助用户根据需求选择合适的下载方式。

通用下载工具:wget 与 curl
对于普通文件的下载,wget 和 curl 是终端中最常用的两款工具,二者功能相似但各有侧重,支持 HTTP、HTTPS、FTP 等多种协议,且具备断点续传、代理设置等高级功能。
wget:非交互式下载利器
wget 是一款免费的开源命令行下载工具,特点是“后台运行、断点续传、递归下载”,适合脚本自动化和批量下载。
基础用法:
- 下载单个文件:
wget https://example.com/file.zip,默认将文件保存到当前目录,文件名与 URL 最后一部分一致。 - 指定保存目录和文件名:
wget -O /path/to/targetname.zip https://example.com/file.zip,-O参数可覆盖默认文件名。 - 断点续传:
wget -c https://example.com/largefile.iso,-c参数可在下载中断后从断点继续,避免重新下载。 - 后台下载:
wget -b https://example.com/bigfile.tar.gz,-b参数让 wget 在后台运行,日志保存在wget-log文件中。 - 递归下载整个目录:
wget -r -np -nH -R index.html https://example.com/files/,参数说明:-r递归下载,-np不遍历父目录,-nH不创建以主机名命名的目录,-R过滤指定文件(如避免下载无用的 index.html)。
高级选项:
- 限速下载:
wget --limit-rate=100k https://example.com/file.zip,限制下载速度为 100KB/s,避免占用过多带宽。 - 匹配文件名下载:
wget -r -A "*.jpg" https://example.com/images/,-A参数仅下载指定扩展名的文件(如 jpg 图片)。
curl:灵活的传输工具
curl 支持更多协议(如 SMTP、SCP、SFTP),且具备显示进度条、调试请求等交互式功能,适合需要精细控制的下载场景。
基础用法:
- 下载并显示进度:
curl -O https://example.com/file.zip,-O参数保存文件时保持原文件名,默认显示进度条。 - 指定保存路径:
curl -o /tmp/target.zip https://example.com/file.zip,-o参数自定义保存路径和文件名。 - 跟随重定向:
curl -L -O https://example.com/short-link,-L参数自动跟随 HTTP 302 重定向,获取最终文件。 - 仅获取响应头:
curl -I https://example.com/file.zip,-I参数查看文件信息(如大小、修改时间),判断是否需要下载。
高级选项:
- 代理设置:
curl -x http://proxy:port -O https://example.com/file.zip,-x指定 HTTP 代理。 - 自定义请求头:
curl -H "User-Agent: Mozilla/5.0" -O https://example.com/file.zip,模拟浏览器访问,避免被某些服务器拦截。
wget 与 curl 对比
| 特性 | wget | curl |
|---|---|---|
| 协议支持 | HTTP、HTTPS、FTP | HTTP、HTTPS、FTP、SMTP、SCP 等 |
| 核心优势 | 递归下载、后台运行、脚本友好 | 交互式调试、协议丰富、进度显示 |
| 适用场景 | 批量下载、网站镜像、自动化脚本 | 单文件精细下载、API 测试、代理调试 |
包管理器下载:系统软件的“官方渠道”
Linux 发行版通常通过包管理器管理软件,包管理器会从官方仓库下载软件包(含依赖自动安装),适合系统工具和桌面应用。

Debian/Ubuntu 系列(apt)
apt 是 Debian/Ubuntu 的核心包管理器,支持在线下载并安装软件包。
常用命令:
- 更新软件源:
sudo apt update,从服务器获取最新的软件包列表。 - 下载安装软件:
sudo apt install nginx,自动下载 nginx 及其依赖并安装。 - 仅下载不安装:
sudo apt download nginx,下载.deb包到当前目录,适合离线安装。 - 下载源码包:
apt source nginx,下载 nginx 的源代码(需安装build-essential等编译工具)。
RedHat/CentOS 系列(yum/dnf)
yum(CentOS 7 及以下)和 dnf(CentOS 8+、Fedora)是 RedHat 系的包管理器,支持 RPM 包管理。
常用命令:
- 安装软件:
sudo yum install httpd(CentOS 7)或sudo dnf install httpd(CentOS 8+)。 - 下载 RPM 包:
sudo yumdownloader httpd(需安装yum-utils),或sudo dnf download httpd(dnf 原生支持)。 - 查看软件仓库信息:
sudo yum repolist,列出可用的软件源(包括第三方仓库如 EPEL)。
Snap 与 Flatpak:跨发行版应用下载
Snap(Ubuntu 主推)和 Flatpak(社区通用)是跨发行版的应用打包格式,支持一键下载安装应用,自动解决依赖。
Snap:
- 安装应用:
sudo snap install spotify,从 Snap 仓库下载安装 Spotify。 - 下载 Snap 包:
snap download spotify,下载.snap文件(位于/snap/download/目录)。
Flatpak:
- 添加仓库(如 Flathub):
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo。 - 安装应用:
flatpak install flathub org.gimp.GIMP,下载安装 GIMP 图像编辑器。 - 下载 Flatpak 包:
flatpak install --app --bundle https://flathub.org/repo/appstream/org.gimp.GIMP.flatpakref,下载.flatpakref安装包。
源码与仓库下载:开发者必备场景
对于开发者,经常需要从代码仓库(如 Git)或源码包(如 tar.gz)下载源代码,编译安装或二次开发。

Git 克隆代码仓库
git 是分布式版本控制工具,可从 GitHub、Gitee 等平台克隆代码仓库。
基础用法:
- 克隆整个仓库:
git clone https://github.com/user/repo.git,在当前目录创建repo文件夹,包含完整历史记录。 - 浅克隆(仅最近一次提交):
git clone --depth 1 https://github.com/user/repo.git,减少下载量,适合快速获取最新代码。 - 指定分支:
git clone -b branch-name https://github.com/user/repo.git,克隆指定分支的代码。
下载并编译源码包
许多开源软件提供源码包(如 .tar.gz),需通过 wget 或 curl 下载后手动编译。
步骤示例(以下载 Nginx 为例):
# 1. 下载源码包 wget http://nginx.org/download/nginx-1.25.3.tar.gz # 2. 解压 tar -xzf nginx-1.25.3.tar.gz cd nginx-1.25.3 # 3. 配置编译选项(如指定安装路径) ./configure --prefix=/usr/local/nginx # 4. 编译安装 make && sudo make install
高级技巧:提升下载效率
- 多线程下载:
axel工具支持多线程加速,安装后使用axel -n 5 https://example.com/largefile.iso(-n指定线程数)。 - 定时下载:结合
at命令实现定时下载,如echo "wget https://example.com/file" | at 02:00(凌晨 2 点下载)。 - 代理配置:若通过代理上网,可临时设置代理:
export http_proxy=http://proxy:port; export https_proxy=http://proxy:port,或写入~/.wgetrc/~/.curlrc永久生效。
相关问答 FAQs
Q1:为什么使用 wget 下载文件时提示 “certificate verify failed”?
A:通常是由于目标网站的 SSL 证书无效或过期(如自签名证书),可通过 wget --no-check-certificate https://example.com/file 忽略证书验证,但需注意安全性风险(确保可信来源),长期解决方案是更新系统证书库:sudo apt install ca-certificates(Debian/Ubuntu)或 sudo yum install ca-certificates(RedHat/CentOS)。
Q2:如何通过终端下载整个网站并保留其目录结构?
A:使用 wget 的递归下载参数,完整命令为:wget -r -p -k -np --no-parent https://example.com/dir/,参数说明:-r 递归下载,-p 下载必要资源(如图片、CSS),-k 转换链接为本地路径(确保离线可访问),-np 不遍历父目录,--no-parent 限制只下载指定目录及其子目录,避免下载无关内容。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/26227.html