返回顶部
首页 > 资讯 > 精选 >如何使用curl从命令行访问互联网
  • 863
分享到

如何使用curl从命令行访问互联网

2023-06-15 19:06:51 863人浏览 八月长安
摘要

这篇文章主要介绍“如何使用curl从命令行访问互联网”,在日常操作中,相信很多人在如何使用curl从命令行访问互联网问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用curl从命令行访问互联网”的疑惑有所

这篇文章主要介绍“如何使用curl从命令行访问互联网”,在日常操作中,相信很多人在如何使用curl从命令行访问互联网问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用curl从命令行访问互联网”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

下载我们整理的 curl 备忘录。要在不使用图形界面的情况下从互联网上获取所需的信息,curl 是一种快速有效的方法。

curl 通常被视作一款非交互式 WEB 浏览器,这意味着它能够从互联网上获取信息,并在你的终端中显示,或将其保存到文件中。从表面看,这是 Web 浏览器,类似 Firefox 或 Chromium 所做的工作,只是它们默认情况下会渲染信息,而 curl 会下载并显示原始信息。实际上,curl 命令可以做更多的事情,并且能够使用多种协议与服务器进行双向传输数据,这些协议包括  Http、FTP、SFTP、IMAP、POP3、LDAP、SMB、SMTP  等。对于普通终端用户来说,这是一个有用的工具;而对于系统管理员,这非常便捷;对于微服务和云开发人员来说,它是一个质量保证工具。

curl 被设计为在没有用户交互的情况下工作,因此与 Firefox  不同,你必须从头到尾考虑与在线数据的交互。例如,如果想要在 Firefox 中查看网页,你需要启动 Firefox 窗口。打开 Firefox  后,在地址栏或搜索引擎中输入要访问的网站。然后,导航到网站,然后单击要查看的页面。

对于 curl 来说也是如此,不同之处在于你需要一次执行所有操作:在启动 curl 的同时提供需要访问的互联网地址,并告诉它是否要将数据保存在终端或文件中。当你必须与需要身份验证的网站或 api 进行交互时,会变得有点复杂,但是一旦你学习了 curl 命令语法,它就会变得自然而然。为了帮助你掌握它,我们在一个方便的备忘录中收集了相关的语法信息。

使用 curl 下载文件

你可以通过提供指向特定 URL 的链接来使用 curl 命令下载文件。如果你提供的 URL 默认为 index.html,那么将下载此页面,并将下载的文件显示在终端屏幕上。你可以将数据通过管道传递到 lesstail 或任何其它命令:

$ curl "http://example.com" | tail -n 4    <h2>Example Domain</h2>    <p>This domain is for use in illustrative examples in documents. You may use this domain in literature without prior coordination or asking for permission.</p>    <p><a href="https://www.iana.org/domains/example">More infORMation...</a></p></div></body></html>

由于某些 URL 包含特殊字符,shell 通常会将其解释,因此最安全的做法用引号将 URL 包起来。

某些文件无法很好的在终端中转换显示。你可以使用 --remote-name 选项使文件根据服务器上的命名进行保存:

$ curl --remote-name "https://example.com/linux-distro.iso"$ lslinux-distro.iso

或者,你可以使用 --output 选项来命名你想要下载的内容:

curl "http://example.com/foo.html" --output bar.html

使用 curl 列出带有远程目录的内容

因为 curl 不是交互式的,所以很难浏览页面上的可下载元素。如果你要连接的远程服务器允许,可以使用 curl 来列出目录的内容:

$ curl --list-only "https://example.com/foo/"

继续中断下载

如果你正在下载一个非常大的文件,你可能会发现有时候必须中断下载。curl 非常智能,可以确定下载从何处中断并继续下载。这意味着,下一次当你下载一个 4GB 的 Linux 发行版的 ISO 出现问题时,就不必重新开始了。--continue-at 的语法有点不寻常:如果你知道下载中断时的字节数,你可以提供给 curl;否则,你可以使用单独的一个破折号(-)指示 curl 自动检测:

$ curl --remote-name --continue-at - "https://example.com/linux-distro.iso"

下载文件序列

如果你需要下载多个文件而不是一个大文件,那么 curl 可以帮助你解决这个问题。假设你知道要下载的文件的位置和文件名模式,则可以使用 curl 的序列标记:中括号里是整数范围的起点和终点。对于输出文件名,使用 #1 表示第一个变量:

$ curl "https://example.com/file_[1-4].webp" --output "file_#1.webp"

如果你需要使用其它变量来表示另一个序列,按照每个变量在命令中出现的顺序表示它们。例如,在这个命令中,#1 指目录 images_000 到 images_009,而 #2 指目录 file_1.webp 至 file_4.webp

$ curl "https://example.com/images_00[0-9]/file_[1-4].webp" --output "file_#1-#2.webp"

从站点下载所有 PNG 文件

你也可以仅使用 curl 和 grep 进行一些基本的 Web 抓取操作,以找到想要下载的内容。例如,假设你需要下载与正在归档网页关联的所有图像,首先,下载引用了图像的页面。将页面内通过管道传输到 grep,搜索所需的图片类型(在此示例中为 PNG)。最后,创建一个 while 循环来构造下载 URL,并将文件保存到你的计算机:

$ curl https://example.com |\grep --only-matching 'src="[^"]*.[png]"' |\cut -d\" -f2 |\while read i; do \curl https://example.com/"${i}" -o "${i##*/}"; \done

这只是一个示例,但它展示了 curl 与 Unix 管道和一些基本而巧妙的解析结合使用时是多么的灵活。

获取 HTML 头

用于数据交换的协议在计算机发送通信的数据包中嵌入了大量元数据。HTTP 头是数据初始部分的组件。在连接一个网站出现问题时,查看这些报文头(尤其是响应码)会有所帮助:

curl --head "https://example.com"HTTP/2 200accept-ranges: bytesage: 485487cache-control: max-age=604800content-type: text/html; charset=UTF-8date: Sun, 26 Apr 2020 09:02:09 GMTetag: "3147526947"expires: Sun, 03 May 2020 09:02:09 GMTlast-modified: Thu, 17 Oct 2019 07:18:26 GMTserver: ECS (sjc/4E76)x-cache: HITcontent-length: 1256

快速失败

响应 200 通常是 HTTP 成功指示符,这是你与服务器连接时通常期望的结果。著名的 404 响应表示找不到页面,而 500 则表示服务器在处理请求时出现了错误。

要查看协商过程中发生了什么错误,添加 --show-error 选项:

$ curl --head --show-error "http://opensource.ga"

除非你可以访问要连接的服务器,否则这些问题将很难解决,但是 curl 通常会尽力连接你指定的地址。有时在网络上进行测试时,无休止的重试似乎只会浪费时间,因此你可以使用 --fail-early 选项来强制 curl 在失败时迅速退出:

curl --fail-early "http://opensource.ga"

由 3xx 响应指定的重定向查询

300 这个系列的响应更加灵活。具体来说,301 响应意味着一个 URL 已被永久移动到其它位置。对于网站管理员来说,重新定位内容并留下“痕迹”是一种常见的方式,这样访问旧地址的人们仍然可以找到它。默认情况下,curl 不会进行 301 重定向,但你可以使用 --localtion 选项使其继续进入 301 响应指向的目标:

$ curl "https://iana.org" | grep title<title>301 Moved Permanently</title>$ curl --location "https://iana.org"<title>Internet Assigned Numbers Authority</title>

展开短网址

如果你想要在访问短网址之前先查看它们,那么 --location 选项非常有用。短网址对于有字符限制的社交网络(当然,如果你使用现代和开源的社交网络的话,这可能不是问题),或者对于用户不能复制粘贴长地址的印刷媒体来说是有用处的。但是,它们也可能存在风险,因为其目的地址本质上是隐藏的。通过结合使用 --head 选项仅查看 HTTP 头,--location 选项可以查看一个 URL 的最终地址,你可以查看一个短网址而无需加载其完整的资源:

$ curl --head --location "<https://bit.ly/2yDyS4T>"

下载我们的 curl 备忘录

一旦你开始考虑了将探索 web 由一条命令来完成,那么 curl 就成为一种快速有效的方式,可以从互联网上获取所需的信息,而无需麻烦图形界面。为了帮助你适应到工作流中,我们创建了一个 curl 备忘录,它包含常见的 curl 用法和语法,包括使用它查询 API 的概述。

到此,关于“如何使用curl从命令行访问互联网”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: 如何使用curl从命令行访问互联网

本文链接: https://lsjlt.com/news/281325.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何使用curl从命令行访问互联网
    这篇文章主要介绍“如何使用curl从命令行访问互联网”,在日常操作中,相信很多人在如何使用curl从命令行访问互联网问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用curl从命令行访问互联网”的疑惑有所...
    99+
    2023-06-15
  • 如何用命令行访问局域网其他mysql
    用命令行访问局域网其他mysql的操作方法:快捷键win+r,输入CMD,打开命令提示符窗口。输入格式:“mysql -u 用户名 -p密码 -h服务器IP地址 -P服务器端MySQL端口号 -D 数据库名”连接即可,例如:mysql -u...
    99+
    2024-04-02
  • linux命令行下如何使用curl命令查看自己机器的外网ip
    本篇内容介绍了“linux命令行下如何使用curl命令查看自己机器的外网ip”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!代码如下:curl...
    99+
    2023-06-09
  • 如何从Vim中访问shell或者运行外部命令
    这篇文章给大家分享的是有关如何从Vim中访问shell或者运行外部命令的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在 Vim 中执行外部命令有的时候,你可能需要在 Vim 编辑窗口中执行外部的命令。例如,想象一...
    99+
    2023-06-12
  • Linux系统中如何使用curl命令
    这篇文章主要介绍了Linux系统中如何使用curl命令,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。curl是一个非常实用的、用来与服务器之间传输数据的工具;支持的协议包括 ...
    99+
    2023-06-27
  • linux命令行下使用curl命令查看自己机器的外网ip
    Linux命令行下如何查看自己机器的外网ip可以在命令行下使用curl命令实现这个功能,试一下下面的命令吧 curl ifconfig.me 输入此条命令,就可以获取到本机的外网ip。 ...
    99+
    2022-06-04
    命令行 命令 机器
  • Unix 命令行教程:如何在 HTTP 请求中使用 curl?
    在网络世界中,HTTP 请求是非常常见的操作。curl 是一款命令行工具,它可以帮助我们在 Unix 系统下发送 HTTP 请求。本文将介绍如何在 HTTP 请求中使用 curl,并提供实用的示例代码。 一、安装 curl 首先,我们需要...
    99+
    2023-08-30
    javascript unix http
  • 如何使用holer从外网访问本地Tomcat
    这篇文章主要介绍“如何使用holer从外网访问本地Tomcat”,在日常操作中,相信很多人在如何使用holer从外网访问本地Tomcat问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用holer从外网访...
    99+
    2023-06-04
  • grpcurl如何通过命令行访问gRPC服务
    本篇内容主要讲解“grpcurl如何通过命令行访问gRPC服务”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“grpcurl如何通过命令行访问gRPC服务”吧!gRPC Server首先来写一个简...
    99+
    2023-07-02
  • Docker如何使用exec命令从外部运行容器内的命令
    这篇文章将为大家详细讲解有关Docker如何使用exec命令从外部运行容器内的命令,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。使用exec命令从外部运行容器内的命令do...
    99+
    2024-04-02
  • Ubuntu如何用命令行连网
    Ubuntu用命令行连网的操作方法:使用ifconfig命令查看当前无线对应的接口名是什么。ifconfig再根据无线接口名用iwlist命令去扫描有哪些wifi。#例如接口名:wlp2s0iwlist wlp2s0 scanning | ...
    99+
    2024-04-02
  • 如何使用PHP进行互联网金融和智能企业?
    随着互联网技术和人工智能的发展,互联网金融和智能企业已经成为不可忽视的趋势。PHP作为一种非常流行的编程语言,也在这个领域发挥了重要作用。本文将介绍如何使用PHP进行互联网金融和智能企业的开发。一、互联网金融的核心技术1.1 金融数据的处理...
    99+
    2023-05-21
    PHP 互联网金融 智能企业
  • Linux下如何使用Stratis从命令行管理Linux存储
    小编给大家分享一下Linux下如何使用Stratis从命令行管理Linux存储,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Stratis 是一个卷管理文件系统v...
    99+
    2023-06-28
  • MySQL如何从5.5升级到8.0(使用命令行升级)
    目录准备1、下载要安装的mysql版本2、配置环境变量3、添加配置文件安装1、卸载MySQL5.52、安装新的MySQL8.0总结谁没事想重装数据库啊 学到了数据库原理,实验作业里面有新建角色的SQL语句,但是我打上去运...
    99+
    2023-03-06
    mysql5.0升级到8.0 mysql版本升级 如何升级mysql
  • 如何在Windows中使用cmd命令访问MySQL数据库
    本篇文章给大家分享的是有关如何在Windows中使用cmd命令访问MySQL数据库,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。win + R 键入cmd,进入dos窗口。切换...
    99+
    2023-06-06
  • SQLite3 sql命令行如何使用
    小编给大家分享一下SQLite3 sql命令行如何使用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!SQLite是一个轻量级的S...
    99+
    2024-04-02
  • 如何使用curl命令分析请求的耗时情况
    本篇文章为大家展示了如何使用curl命令分析请求的耗时情况,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。最近工作中遇到一个问题,某个请求的响应特别慢,因此我就希望有...
    99+
    2024-04-02
  • Linux中使用curl命令访问https站点的4种常见错误和解决方法
    这篇文章主要讲解了“Linux中使用curl命令访问https站点的4种常见错误和解决方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux中使用curl命令访问https站点的4种常...
    99+
    2023-06-13
  • Windows下使用net use命令变更网络连接访问用户
    复制代码代码如下: net use * /delete net use \\{YOUR-SERVER-IP}\{YOUR-FOLDER} /user:{YOUR-USER-NA编程客栈ME} "{YOUR-PASSWOR...
    99+
    2023-06-04
    Windows 网络连接 访问用户 net use 命令 访问 用户
  • Linux命令行下如何使用Evernote
    这篇文章的内容主要围绕Linux命令行下如何使用Evernote进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!Evernote就是我们所说的印象笔记...
    99+
    2023-06-28
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作