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都提供了多样化的工具和方法,本文将从命令行工具、编程语言实现、系统文件读取三个维度,详细解析Linux环境下获取时间信息的多种方法,并对比不同场景……

    2025年10月5日
    17300
  • Linux如何设置网卡驱动?

    Linux系统下网卡驱动的正确设置是保障网络通信稳定的基础,网卡驱动作为硬件与操作系统内核之间的桥梁,负责控制网卡硬件的数据收发、协议转换等功能,若驱动未正确安装或配置,轻则网络连接不稳定,重则无法识别网卡设备,本文将从网卡型号识别、驱动查找、安装配置到故障排查,详细讲解Linux环境下网卡驱动的完整设置流程……

    2025年9月19日
    27300
  • linux如何修改本机ip地址

    在Linux系统中修改本机IP地址是日常运维和开发中的常见操作,根据不同的Linux发行版和网络管理工具,操作方法略有差异,本文将详细介绍通过命令行、配置文件及图形界面三种主流方式修改IP地址的具体步骤,并对比不同发行版的配置差异,通过命令行临时修改IP地址命令行修改IP地址分为ifconfig(传统工具)和i……

    2025年9月16日
    16200
  • 为什么必须更新软件包列表?

    在Linux系统中安装GCC(GNU Compiler Collection)是开发工作的基础步骤,GCC是一套开源的编程语言编译器,支持C、C++、Fortran等语言,以下提供官方推荐且安全的安装方法,涵盖主流的Linux发行版,所有操作均需终端权限,普通用户请使用sudo提权,通过包管理器安装(推荐)Li……

    2025年6月24日
    26000
  • Linux系统中des3加密文件如何正确解压操作呢?

    在Linux系统中,处理加密压缩文件时,若遇到使用DES3(3DES)加密的tar包,需结合OpenSSL工具与tar命令完成解压,DES3是一种对称加密算法,虽安全性已不如现代加密算法,但在部分遗留场景中仍可能遇到,以下将详细说明解压步骤、参数解析及注意事项,确认文件类型与加密方式在解压前,需先确认文件是否为……

    2025年10月9日
    20000

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信