Linux终端如何下载文件?命令行操作步骤有哪些?

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

linux 终端如何下载

通用下载工具:wget 与 curl

对于普通文件的下载,wgetcurl 是终端中最常用的两款工具,二者功能相似但各有侧重,支持 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 发行版通常通过包管理器管理软件,包管理器会从官方仓库下载软件包(含依赖自动安装),适合系统工具和桌面应用。

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)下载源代码,编译安装或二次开发。

linux 终端如何下载

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),需通过 wgetcurl 下载后手动编译。

步骤示例(以下载 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

(0)
酷番叔酷番叔
上一篇 2025年9月19日 16:32
下一篇 2025年9月19日 16:45

相关推荐

  • 在Linux系统中,如何正确重启网卡设备以恢复网络连接?

    重启Linux网卡是解决网络连接异常、应用配置更新或服务故障的常见操作,不同Linux发行版和场景下操作方式略有差异,以下是详细操作步骤及注意事项,传统方法:使用ifdown/ifup命令这是最基础的网卡重启方式,适用于大多数Linux发行版(如CentOS 6/7、RHEL、Debian等),通过先关闭再启动……

    2025年9月17日
    6200
  • Linux网络配置如何恢复?实用恢复方法与步骤详解

    Linux网络配置恢复是系统维护中常见的需求,通常因配置文件误删、参数错误、服务异常或系统更新导致,恢复过程需根据问题原因和发行版差异采取不同方法,以下是详细步骤和注意事项,确认网络问题状态恢复前需先定位故障类型:是IP配置错误、DNS解析失败、网关不可达,还是网络服务完全失效,可通过基础命令排查:查看网络接口……

    2025年10月2日
    3400
  • Linux下Java开发如何实现高效稳定?

    准备工作:系统与工具Linux发行版选择推荐Ubuntu、Fedora或Debian(社区支持完善,兼容性强),确保系统更新:sudo apt update && sudo apt upgrade # Debian/Ubuntusudo dnf update # Fedora安装必备工具开发工具……

    2025年7月24日
    6900
  • linux如何显示进程id

    Linux中,可以使用ps命令结合grep来显示进程ID,

    2025年8月10日
    6200
  • 如何正确下载官方驱动?

    核心原理:Linux驱动加载机制Linux网卡驱动以内核模块(.ko文件)形式存在,存储于/lib/modules/$(uname -r)/kernel/drivers/net目录,系统通过以下机制加载:自动加载:内核在检测到新硬件时,通过udev服务触发模块加载手动加载:使用modprobe或insmod命令……

    2025年7月6日
    8000

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信