Linux wget和curl进阶

这篇具有很好参考价值的文章主要介绍了Linux wget和curl进阶。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

wget

wget是一个流行的、免费的、非交互式的命令行工具,主要用于从网络上下载文件。支持通过HTTP、HTTPS和FTP协议下载,并且它是递归下载的,这意味着它可以镜像网站或获取完整的FTP目录结构。

下载单个文件

使用wget时,只指定了url地址,表示从网络中下载单个文件到当前目录,这是wget最基础的用法。

如果没有指定下载的文件名是什么,默认会使用URL的最后一部分作为默认的文件名,如果知道下载的这个文件叫什么名字,可以用 -O(大写)参数来指定下载的文件名。

使用wget下载文件时,它会默认在屏幕上显示下载的进度和其他相关消息,可以使用 -o(小写) 参数并指定一个文件名,那么这些输出消息会被重定向到该文件,而不是显示在屏幕上。

wget的 -O和 -o的区别:

  • -o:将输出到屏幕上的日志信息保存在一个文件中

  • -O:指定下载文件的文件名

wget -O file_name url_path

说明:

  • wget支持断点续传功能,如果一个大文件的下载被中断,你可以使用 wget 的 -c 参数来 继续从中断点开始下载

例如:

# 将文件保存为名为 CentOS-Base.repo 的文件。即使原始文件的名称是不同的,它仍将被保存为 CentOS-Base.repo。
wget -O CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.rep

# 下载的文件会被保存为原始文件的名称  CentOS-Base.repo这个文件只会包含该下载过程中生成的所有日志信息
wget -o  CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
Linux wget和curl进阶

检查http/https连通性

使用wget检查URL的连通性时,实际上是在进行两个层面的检查

  • 传输层(TCP): 首先检查是否可以建立到指定IP和端口的TCP连接。这实质上是检查传输层的连通性。

  • 应用层(HTTP/HTTPS): 一旦TCP连接建立,wget会发送HTTP请求(例如HEAD请求,当使用--spider选项时)到服务器,并等待响应。服务器的响应告诉你是否该URL在应用层上是可访问


检查http/https连通性的时候,通过 --spider 选项告诉 wget 不要下载任何内容,使用 -S 参数 来查看服务器响应头。这样就可以通过响应头来检查http的连通性了。

如果检查某个http/https的url连通性时,需要指定端口的话,只需在URL中添加:[端口号]就行了

wget --spider -S url_path

wget --spider -S http://www.example.com:5000/

例如: 检查这个url的连通性

wget  --spider -S   http://www.forthink.xyz:5000/sharing/OmbrfIbc4
Linux wget和curl进阶

例如: 检查指定url的连通性,并指定端口号

wget  --sipder -S http://192.168.0.104:80
Linux wget和curl进阶

curl

url 是一个命令行工具,用于从服务器或到服务器传输数据。这个工具非常强大,支持各种协议,包括 HTTP、HTTPS、FTP、FTPS、SCP、SFTP、LDAP、DAP等。在Web开发中,curl 主要用于进行HTTP请求。

这里我们主要介绍curl和http/https的交互

显示url内容

如果使用curl命令的时候,后面只提供了一个url地址,那么默认curl执行的是 HTTP 的 GET 请求

curl http://example.com

指定指定请求

默认执行的是http的GET请求,但是通过 —X(大写)参数。可以指定curl发起的请求类型。

  • -X POST : 发起POST请求

  • —X PUT : 发起PUT请求

例如:

 curl -X POST http://192.168.0.102

说明:当指定curl指定POST请求时,如果要给服务器传递参数,可以使用 -d 或者 --data来实现。可以指定多个参数

curl -X PSOT -d "key=value" -d "key=vale" url_path

例如:

curl -X POST -d "username=admin" -d "password=c93ccd78b2076528346216b3b2f701e6" -d "http_api_version=4.27" http://192.168.13.255/EHCommon/admin/user/login
Linux wget和curl进阶

如果是传递json数据的话,还需要使用 -H 来指定请求头的信息,指定 Content-Type 为 application/json

curl -X POST -H "Content-Type: application/json" -d '{"key1":"value1", "key2":"value2"}' url_path

显示请求头信息

如果想要显示http/https的请求头信息,可以使用 -i(小写) 参数来实现,但是通过也会把url中的内容给显示出来,如果只想要显示请求头信息,通过 -I(大写)参数指定即可。

使用 curl 或 wget 等工具并且没有指定协议时,它们默认使用的是 HTTP 协议

curl -I 192.168.0.102

下载单个文件

curl可以和wget一样下载单个文件,通过 -o(小写)和 -O(大写)来指定文件名进行下载。

  • -o:需要指定下载文件的文件名

  • -O: 会根据远程文件的URL来确定本地保存的文件名

curl -O http://example.com/index.html

curl -o http://example.com/index.html

例如:

Linux wget和curl进阶

忽略证书验证

使用curl的 -k 参数可以在访问https的时候,忽略证书的验证。

因为使用curl命令访问一个使用SSL/TLS加密的网站(例如:https网址)时,curl默认会尝试验证服务器的SSL证书。如果服务器使用一个自签名证书,或者使用的证书由一个不被curl默认信任的证书颁发机构(CA)颁发。在这种情况下,curl会拒绝建立连接,并给出一个SSL证书错误。使用了 -k或者--insecure 参数后,即使证书是自签名的,或者不是由受信任的CA签发的,curl也会与服务器建立连接。

例如:

Linux wget和curl进阶

静默模式输出

默认情况下,使用curl的时候,会显示进度信息或错误消息,如果不希望命令的标准输出中混入不必要的进度或其他消息。使用 -s 参数即可隐藏这些信息的显示。

例如:
Linux wget和curl进阶

输出指定信息

如果只想要输出指定的信息部分,使用 -w 参数可以实现。

格式:

curl -w  "格式化字符串" url_path

# curl提供的各种内置变量
%{http_code}: 显示HTTP响应代码。
%{time_total}: 显示请求总时间。
%{url_effective}: 显示实际请求的URL,特别是在重定向时很有用。
%{content_type}: 响应中的Content-Type(Content-Type指示资源的媒体类型(或称为 MIME 类型)。这告诉接收端(通常是浏览器)该如何解释或显示这个资源。)
%{time_namelookup}: DNS解析域名所需的时间。

方法一:

通过 -I 参数显示http的请求头,然后结合grep和awk取得请求信息。

curl -I http://192.168.0.102/index.php 2>&1 | grep HTTP | awk '{print $2}'
Linux wget和curl进阶

方法二:

通过 -w参数结合curl的内置变量输出http的请求状态信息。

curl -s -o /dev/null  -w "%{http_code}" http://192.168.0.102/index.php

-o 参数是下载文件的文件名,也就是将curl原本输出到屏幕的内容重定向到一个文件里面。这里指定为/dev/null,则url的信息不会显示到屏幕上,只显示 -w 指定的内置变量对应的值。文章来源地址https://www.toymoban.com/news/detail-741822.html

到了这里,关于Linux wget和curl进阶的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用cURL和wget在Linux上进行HTTP请求和下载

    在Linux上,cURL和wget是两个常用的命令行工具,用于发送HTTP请求和下载文件。下面我将详细介绍如何使用这两个工具进行HTTP请求和下载操作。 首先,让我们了解一下cURL。cURL是一个功能强大的命令行工具,可以用来发送各种类型的HTTP请求,如GET、POST等。它还可以设置请求头

    2024年01月17日
    浏览(41)
  • linux下下载文件的常用命令wget,curl等使用方法及使用示例

    在 Linux 操作系统中,有许多下载文件的工具可供选择。这些工具包括命令行工具和图形界面工具,每个工具都有其自身的特点和用途。以下是一些常用的下载文件工具: wget :一个功能强大的命令行下载工具,支持 HTTP、HTTPS、FTP 等协议,能够断点续传、递归下载等。 curl :

    2024年04月17日
    浏览(80)
  • 三种方式查看linux终端terminal是否可以访问外网ping,curl,wget

    注意不要用ping www.google.com.hk来验证,因为有墙,墙阻止了你接受网址发回的响应数据。即使你那啥过,浏览器都可以访问Google,terminal里面也是无法得到响应 百度在墙内,所以可以正常拿到响应信息 谷歌在墙外,你用魔法工具,浏览器都能访问谷歌,但是terminal里面会这样

    2023年04月11日
    浏览(44)
  • TransformControls 是 Three.js 中的一个类,用于在网页中进行 3D 场景中物体的交互式操作。

    demo案例 TransformControls 是 Three.js 中的一个类,用于在网页中进行 3D 场景中物体的交互式操作。让我们来详细讲解它的输入参数、输出、属性和方法: 输入参数: TransformControls 构造函数通常接受两个参数: camera (THREE.Camera):用于渲染场景的摄像机。这个参数是必需的。

    2024年04月15日
    浏览(60)
  • Linux中用于自动化交互式程序的工具!expect

    expect 是一个用于自动化交互式程序的工具,它可以模拟用户输入和接收程序的输出。它通常与Tcl脚本一起使用,但也可以与其他脚本语言一起使用。 expect 的主要功能是等待特定的字符串或正则表达式出现,然后执行相应的操作。 expect的基本语法如下: 参数说明: 代码块案

    2024年01月16日
    浏览(36)
  • 【linux命令讲解大全】150.smbclient:交互式访问samba服务器的命令行工具

    交互方式访问samba服务器 补充说明 smbclient 命令属于samba套件,它提供一种命令行使用交互式方式访问samba服务器的共享资源。 语法 选项 -B ip地址 :传送广播数据包时所用的IP地址; -d 排错层级 :指定记录文件所记载事件的详细程度; -E :将信息送到标准错误输出设备;

    2024年02月03日
    浏览(64)
  • Linux【脚本 05】交互式shell脚本编写及问题处理([: ==: unary operator expected)[: ==: 期待一元表达式

    之前写了Windows的cmd脚本用来保存报告文件: 但是有时候服务仅在Linux环境上进行部署,所以要写一个shell脚本进行报告的保存。 2.1 初始版本 简单的参数判断,这里只给出一个分支,脚本save.sh内容如下: 此时如果执行脚本时没有携带参数,将会报错: 这个脚本的问题很多

    2024年02月09日
    浏览(46)
  • 人机交互学习-5 交互式系统的需求

    关于目标产品的一种陈述,它指定了产品应做什么,或者应如何工作 应该是具体、明确和无歧义的 搜集数据 解释数据 提取需求 注:了解 功能不同 智能冰箱:应能够提示黄油已用完 字处理器:系统应支持多种格式 物理条件不同 移动设备运行的系统应尽可能小,屏幕显示限

    2024年02月09日
    浏览(54)
  • 人机交互学习-6 交互式系统的设计

    Allan Cooper建议不要过早地把重点放在小细节、小部件和精细的交互上会妨碍产品的设计,应先站在一个高层次上关注用户界面和相关行为的整体结构 Allan Cooper提出的交互框架不仅 定义了高层次的屏幕布局 ,同时定义了 产品的工作流、行为和组织 。它包括了6个主要步骤:

    2024年02月09日
    浏览(56)
  • 交互式shell与非交互式shell,反弹shell

    交互shell就是shell等待你的输入,并且立即执行你提交的命令。 这种模式被称作交互式是因为shell与用户进行交互。 这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。当签退后,shell也终止了。 需要进行信息交互,例如输入某个信息 会返回信息 你需要对其输

    2024年02月02日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包