已编辑 3 几周前 通过 ExtremeHow 编辑团队
翻译更新 3 几周前
Linux是一种功能强大的操作系统,广泛用于各种任务。通过命令行与网络交互的两种最常用的工具是wget
和curl
。对于需要从终端直接下载文件、发出HTTP请求或与互联网资源交互的人来说,这些工具是必不可少的。本指南将向您介绍wget
和curl
命令的基础知识,讨论它们的区别,并向您展示如何有效地使用它们。
wget
是一个命令行实用程序,允许您从网络下载文件。它支持HTTP、HTTPS和FTP协议,使其成为与网络资源交互的多功能工具。要开始,您首先需要检查wget
是否已安装在您的Linux系统上。打开终端并输入:
wget --version
如果wget
已安装,您将看到其版本号。如果没有安装,您可以使用发行版的包管理器进行安装。例如,在Ubuntu或Debian上,使用:
sudo apt-get install wget
在Fedora上,使用:
sudo dnf install wget
一旦wget
安装完毕,您可以使用它来下载文件。使用wget
的最简单方法是键入命令,后跟您要下载的文件的URL:
wget http://example.com/file.txt
此命令将从http://example.com
下载file.txt
并将其保存到当前目录。wget
使用当前目录作为保存文件的基本目录,除非另有说明。
wget
最有用的功能之一是能够恢复暂停的下载。如果您的下载被中断,您可以使用-c
选项恢复它:
wget -c http://example.com/largefile.zip
如果largefile.zip
已经部分下载,此命令将恢复其下载。
要使用wget
下载多个文件,您可以使用包含所有要下载的URL列表的文本文件。例如,创建一个名为urls.txt
的文件,其中包含文件的URL,然后使用-i
选项将其传递给wget
:
wget -i urls.txt
此命令将下载urls.txt
中列出的每个文件。
wget
还支持递归下载,这在镜像整个网站时非常有用。要使wget
递归下载文件,使用-r
选项:
wget -r http://example.com
此命令将下载指定网页中链接的所有文件,链接深度默认为5。
有时,您可能想限制下载速度以避免消耗过多带宽。您可以使用--limit-rate
选项限制下载速度:
wget --limit-rate=100k http://example.com/file.iso
此命令将以每秒钟最多100千字节的速度下载文件。
curl
是另一种允许您与网络资源交互的命令行工具。它比wget
更灵活,尤其是在执行简单的文件下载之外的请求时。要检查curl
是否已安装,请键入:
curl --version
如果curl
未安装,您可以使用以下命令安装:
对于Ubuntu或Debian:
sudo apt-get install curl
对于Fedora:
sudo dnf install curl
curl
最简单的用法是将URL的内容直接显示在终端中。您可以通过键入以下内容来实现:
curl http://example.com
该命令将从http://example.com
获取内容,并在终端窗口中显示。
与wget
不同,curl
默认不会保存文件。要将输出保存到文件,请使用-o
选项,后跟所需的文件名:
curl -o file.txt http://example.com/file.txt
此命令将下载file.txt
并将其保存为当前目录中的file.txt
。
要使用curl
恢复部分下载的文件,请使用-C -
选项:
curl -C - -o file.txt http://example.com/file.txt
此命令将重新启动下载并从您上次退出的地方继续。
curl
在进行HTTP请求时非常强大,能够处理多种请求类型,例如POST、PUT、DELETE等。要进行GET请求(这是默认的),您可以简单地键入:
curl http://api.example.com/data
对于POST请求,您可以使用-d
选项发送数据:
curl -d "param1=value1¶m2=value2" http://api.example.com/post
这将发送包含参数param1
和param2
的POST请求。
curl
允许您向请求添加自定义头,这在与API交互时非常有用。使用-H
选项包含头:
curl -H "Authorization: Bearer token" http://api.example.com/data
此命令添加一个带有验证令牌的Authorization
头。
在进行请求时,wget
和curl
都可以使用代理服务器。对于wget
,您可以通过配置http_proxy
和https_proxy
环境变量来设置代理:
export http_proxy="http://proxyaddress:port"
wget http://example.com/file.txt
对于curl
,您可以使用-x
选项指定代理:
curl -x http://proxyaddress:port http://example.com/file.txt
在Linux中,通过命令行与网络资源交互,wget
和curl
都是极其有用的工具。wget
非常适合直接下载文件,并支持递归下载等功能,而curl
在与网络服务交互和处理不同类型的HTTP请求时提供更大的灵活性。充分了解如何有效使用这些工具可以大大提升您在处理Linux命令行时的工作流程和生产力。
总之,掌握wget
和curl
命令对于经常与网络交互的用户来说是一种宝贵的资产。无论是下载文件、访问API还是从网站抓取数据,这些工具都提供了从终端直接实现目标的强大机制。
如果你发现文章内容有误, 您可以