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下开发应用程序是一个系统性的过程,涉及环境搭建、语言选择、工具链使用、调试测试及部署等多个环节,无论是系统级程序还是应用级软件,遵循规范的流程能显著提升开发效率与代码质量,以下从实际开发角度详细展开说明,开发环境搭建开发环境是应用程序的“工坊”,需确保基础工具链齐全,通过系统包管理器安装核心编译工具……

    2025年9月25日
    6300
  • Linux SVN如何使用?

    在Linux系统中使用SVN(Subversion)进行版本控制,需要从安装配置、仓库管理到客户端操作逐步掌握,以下将详细介绍SVN在Linux环境下的完整使用流程,包括安装、仓库创建、客户端基本操作、分支管理及高级功能等内容,安装SVN服务端和客户端SVN分为服务端(仓库管理)和客户端(用户操作),Linux……

    2025年8月25日
    7300
  • Linux系统下如何进行汇编编程?

    在Linux系统中编写汇编程序通常需要借助汇编器(如NASM或GAS)、链接器(ld)以及调试工具(gdb),不同汇编语法(如Intel语法和AT&T语法)略有差异,本文以常用的NASM(支持Intel语法)为例,介绍完整的开发流程,基础工具与环境准备Linux下编写汇编程序的核心工具包括:汇编器:将汇……

    2025年10月7日
    8300
  • Linux系统下载软件有哪些方法?不同发行版如何操作?

    Linux系统作为开源操作系统,其软件安装方式与Windows、macOS存在显著差异,核心在于依赖管理和软件源机制,不同Linux发行版因包管理工具不同,安装方法也有所区别,总体可分为系统自带包管理器、源码编译、Snap/Flatpak跨平台包、第三方软件中心及二进制包等几类,本文将详细介绍各类方法的操作步骤……

    2025年8月31日
    8000
  • Linux文件权限分配的核心原则与实操方法是什么?

    Linux权限分配是系统管理的核心内容,它通过精细化的控制机制确保系统安全与资源合理使用,Linux中的权限分配围绕“用户”“用户组”“其他用户”三类主体展开,涵盖“读取(r)”“写入(w)”“执行(x)”三种基本权限,并通过一系列命令和配置实现动态管理,Linux权限体系基础Linux系统中的每个文件和目录都……

    2025年9月13日
    8000

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信