菜鸟科技网

Debian下载命令有哪些?如何正确使用?

wget - 非常流行,专为下载而设计

wget 是一个非交互式的命令行下载工具,它的名字来源于 "web get",它的最大特点是支持断点续传,并且在网络不稳定时非常可靠。

Debian下载命令有哪些?如何正确使用?-图1
(图片来源网络,侵删)

安装 wget

如果你的 Debian 系统默认没有安装 wget,可以使用 apt 来安装:

sudo apt update
sudo apt install wget

常用 wget 命令示例

基本下载 直接下载一个 URL 指定的文件,文件名会自动识别。

wget https://www.debian.org/logos/openlogo-2.0-50.png

下载并重命名 使用 -O (大写) 选项来指定保存的文件名。

wget -O my_logo.png https://www.debian.org/logos/openlogo-2.0-50.png

后台下载 使用 -b 选项,wget 会在后台运行,并将日志输出到 wget-log 文件中,这对于下载大文件非常有用。

Debian下载命令有哪些?如何正确使用?-图2
(图片来源网络,侵删)
wget -b https://example.com/large-file.iso
# 你可以继续使用终端,或者在后台查看进度
tail -f wget-log

断点续传 如果下载因网络中断,可以重新执行相同的命令,wget 会自动从上次中断的地方继续下载。

wget https://example.com/large-file.iso
# ... 如果中断了 ...
wget https://example.com/large-file.iso # 再次执行即可

限制下载速度 使用 --limit-rate 选项来限制下载速度,避免占用过多带宽,单位可以是 k (KB/s) 或 m (MB/s)。

# 限制下载速度为 500KB/s
wget --limit-rate=500k https://example.com/large-file.iso

递归下载整个网站 这是一个非常强大的功能,可以下载整个网站(包括所有页面和资源),请谨慎使用,避免对目标服务器造成过大压力。

# -r: 递归
# -np: 不下载父目录
# -k: 将下载的页面中的链接转换为本地链接
# -p: 下载所有必要的文件来显示一个HTML页面
wget -r -np -k -p http://example.com/some_directory/

curl - 功能全面的工具,支持多种协议

curl 不仅仅是一个下载工具,它是一个功能强大的传输工具,支持 FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE, POP3, IMAP, SMTP, RTSP 和 RTMP 等多种协议,它的默认行为是将输出打印到标准输出(即你的终端)。

Debian下载命令有哪些?如何正确使用?-图3
(图片来源网络,侵删)

安装 curl

同样,如果系统中没有 curl

sudo apt update
sudo apt install curl

常用 curl 命令示例

基本下载(打印到终端) 默认情况下,curl 会将文件内容打印到终端,对于文本文件(如 txt, json, html)可以直接查看。

curl https://example.com/api/data.json

下载到文件 使用 -o (小写) 选项来将输出保存到文件。

curl -o data.json https://example.com/api/data.json

使用服务器提供的文件名下载 使用 -O (大写) 选项,curl 会使用服务器上 Content-Disposition 头中指定的文件名来保存文件。

curl -O https://www.debian.org/logos/openlogo-2.0-50.png

显示下载进度 使用 或 --progress-bar 选项可以显示一个进度条。

curl -# -o large-file.iso https://example.com/large-file.iso

断点续传 使用 -C - 选项,curl 会自动检测并继续未完成的下载。

curl -C - -o large-file.iso https://example.com/large-file.iso

限制下载速度 使用 --limit-rate 选项。

curl --limit-rate=500k -o large-file.iso https://example.com/large-file.iso

apt - 下载 Debian 软件包

如果你想下载的是某个软件的安装包(.deb 文件)而不是普通的文件,那么应该使用 apt 命令。

下载 .deb 安装包但不安装 使用 download 子命令。

# 下载 nginx 的最新稳定版安装包
apt download nginx

这个命令会将 .deb 文件下载到当前目录。

下载源码包 如果你想下载软件的源代码,可以使用 source 子命令。

# 下载 nginx 的源码包
apt source nginx

这会下载一个 .dsc 文件、.orig.tar.xz 文件和 .debian.tar.xz 文件,包含了原始源码和 Debian 的修改补丁。


总结与对比

特性 wget curl apt
主要用途 专为下载网页和文件设计 通用的数据传输工具 Debian/Ubuntu 的软件包管理器
默认行为 直接下载文件到本地 将输出打印到终端 管理和安装软件
断点续传 内置支持,非常简单 内置支持,非常简单 不适用
后台下载 支持 (-b) 不支持(需配合 nohup 等) 不适用
协议支持 HTTP, HTTPS, FTP 极其广泛 (HTTP, FTP, SMTP, 等) 专门用于软件仓库
递归下载 非常强大和简单 需要配合更复杂的选项或脚本 不适用
下载软件包 不适用 不适用 专用功能 (apt download)**

如何选择?

  • 只想下载一个文件或网页?

    • wget 通常是首选,因为它更专注于下载,命令更直观。
    • curl 也可以,特别是在需要显示进度或与管道结合使用时(curl ... | jq)。
  • 需要从各种协议(不仅仅是 HTTP/FTP)传输数据?

    • 必须选择 curl
  • 需要下载 Debian 系统的软件安装包?

    • 必须使用 apt download
  • 在 Shell 脚本中需要下载文件?

    • 两者都非常流行。curl 的输出到终端的特性有时在脚本中更方便处理,而 wget 的下载行为则更“安静”,两者都有足够的灵活性来完成脚本任务。

对于绝大多数日常下载文件的需求,wgetcurl 都能满足,你可以根据自己的习惯选择一个并熟练使用它。

分享:
扫描分享到社交APP
上一篇
下一篇