菜鸟科技网

命令行工具下载如何操作?

打开命令行工具下载是许多开发者和高级用户在日常操作中经常需要掌握的技能,通过命令行可以更高效、灵活地管理文件和软件,尤其适合批量操作或自动化任务,以下将详细介绍在不同操作系统(Windows、macOS、Linux)下如何使用命令行工具进行下载,包括常用命令、参数说明及实际应用场景。

命令行工具下载如何操作?-图1
(图片来源网络,侵删)

Windows系统下的命令行下载

在Windows系统中,默认的命令行工具是CMD和PowerShell,两者均可用于下载文件,但功能和语法有所不同。

使用CMD(命令提示符)

CMD是Windows的传统命令行工具,可通过内置的certutilbitsadmin命令实现下载。

  • certutil命令
    certutil主要用于证书管理,但也可用于下载文件,语法简单:

    certutil -urlcache -split -f "下载链接" 保存路径

    下载一个图片到桌面:

    命令行工具下载如何操作?-图2
    (图片来源网络,侵删)
    certutil -urlcache -split -f "https://example.com/image.jpg" %USERPROFILE%\Desktop\image.jpg

    参数说明

    • -urlcache:缓存下载内容;
    • -split:分块下载;
    • -f:强制覆盖已存在文件。
  • bitsadmin命令
    bitsadmin是Windows后台智能传输服务的命令行工具,支持断点续传:

    bitsadmin /transfer myDownloadJob "下载链接" 保存路径
    bitsadmin /transfer myDownloadJob "https://example.com/file.zip" %USERPROFILE%\Downloads\file.zip

    优势:适合大文件下载,即使命令行关闭,下载任务也会在后台继续。

使用PowerShell

PowerShell功能更强大,支持HTTP/HTTPS协议下载,推荐使用Invoke-WebRequestInvoke-RestMethod命令。

命令行工具下载如何操作?-图3
(图片来源网络,侵删)
  • Invoke-WebRequest

    Invoke-WebRequest -Uri "下载链接" -OutFile "保存路径"
    Invoke-WebRequest -Uri "https://example.com/file.zip" -OutFile "$env:USERPROFILE\Downloads\file.zip"

    参数说明

    • -Uri:指定下载链接;
    • -OutFile:指定保存路径及文件名。
  • Invoke-RestMethod
    Invoke-WebRequest类似,但更适合处理返回JSON数据的API接口:

    Invoke-RestMethod -Uri "https://api.example.com/data" -OutFile "$env:USERPROFILE\Downloads\data.json"

macOS/Linux系统下的命令行下载

macOS和Linux系统通常默认安装curlwget工具,两者均支持HTTP/HTTPS/FTP等多种协议,功能强大。

使用curl

curl是一个多功能工具,支持上传下载、代理设置等,语法灵活:

curl -O "下载链接"          # 保留原文件名下载
curl -o "保存路径" "下载链接"  # 指定保存路径及文件名
curl -C - -O "下载链接"      # 支持断点续传

常用参数

  • -L:跟随重定向;
  • 显示进度条;
  • -H:添加请求头(如-H "Authorization: Bearer token")。

示例

curl -L -o ~/downloads/file.zip "https://example.com/file.zip"

使用wget

wget专注于下载,支持递归下载、镜像站点等高级功能:

wget "下载链接"              # 保留原文件名下载
wget -O "保存路径" "下载链接"  # 指定保存路径及文件名
wget -c "下载链接"            # 断点续传

常用参数

  • --limit-rate:限速下载(如--limit-rate=100k);
  • -b:后台下载;
  • -r:递归下载(用于整站爬取)。

示例

wget -b -O ~/downloads/file.zip "https://example.com/file.zip"

不同工具对比

工具 支持系统 优势 适用场景
certutil Windows 系统内置,无需安装 简单文件下载
bitsadmin Windows 支持断点续传,后台下载 大文件或网络不稳定环境
PowerShell Windows 支持脚本化处理,功能丰富 复杂下载任务或集成到自动化脚本
curl macOS/Linux/Windows 协议支持广,参数灵活 开发调试、API交互
wget macOS/Linux 支持递归下载,镜像站点 批量下载、整站爬取

实际应用场景

  1. 批量下载文件
    使用wget的递归下载功能,可以获取整个网站的资源:

    wget -r -np -nH --cut-dirs=1 -R "index.html*" "https://example.com/files/"

    参数说明:

    • -r:递归下载;
    • -np:不向上遍历父目录;
    • -nH:不创建主机目录;
    • --cut-dirs:忽略目录层级。
  2. 自动化脚本下载
    在Linux中,结合cron定时任务,可实现定期下载文件:

    # 编辑crontab
    0 2 * * * wget -O /backup/data_$(date +\%Y\%m\%d).zip "https://example.com/daily_backup"

    该命令将在每天凌晨2点下载备份文件,并以日期命名。

常见问题与解决

  1. 下载速度慢
    原因:可能是服务器限速或网络波动。
    解决

    • 使用wget--limit-rate参数限速避免占用过多带宽;
    • 通过curl的多线程工具(如axel)加速下载。
  2. 下载失败(证书错误)
    原因:SSL证书验证失败,常见于自签名证书网站。
    解决

    • curl添加-k参数跳过证书验证:curl -k -O "https://example.com/file"
    • wget添加--no-check-certificate参数。

相关问答FAQs

Q1:如何通过命令行下载并解压压缩文件?
A:以Linux为例,可使用wget下载后结合unzip解压:

wget -O temp.zip "https://example.com/archive.zip" && unzip temp.zip -d ./target_dir

Windows下可使用PowerShell:

Invoke-WebRequest -Uri "https://example.com/archive.zip" -OutFile temp.zip; Expand-Archive -Path temp.zip -DestinationPath ./target_dir

Q2:如何验证下载文件的完整性?
A:通过校验和(如MD5、SHA256)验证文件是否损坏,以Linux为例:

wget "https://example.com/file.zip"
sha256sum file.zip  # 查看校验和

将输出的校验和与官方提供的值对比,一致则文件完整,Windows下可使用certutil -hashfile file.zip SHA256

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