首页 > 系统相关 >Linux系统中curl命令使用笔记

Linux系统中curl命令使用笔记

时间:2023-12-13 15:56:27浏览次数:32  
标签:www google 笔记 https Linux curl com example

在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,用来请求 Web 服务器,它的名字就是客户端(client)的 URL 工具的意思,可以说是一款很强大的http命令行工具,它支持文件的上传和下载,是综合传输工具。

可以看出它的参数非常多,a-z的字母,几乎都用到了,参数这么说,功能肯定很强大咯!

只列了一部分参数和用途,后续如果有用到再补充,请看下表:

参数 命令 解释说明
-A curl -A 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36' https://google.com 指定客户端的用户代理标头,即User-Agent,默认用户代理字符串是curl/[version]
-b

curl -b 'foo=bar' https://google.com

curl -b 'foo1=bar;foo2=bar2' https://google.com

curl -b cookies.txt https://www.google.com

1、用来向服务器发送 Cookie,会生成一个标头Cookie

2、读取本地文件cookies.txt,里面是服务器设置的 Cookie(参见-c参数),将其发送到服务器

-c curl -c cookies.txt https://www.google.com 将服务器设置的 Cookie 写入一个文件
-C

curl -C -O https://xxx.com/xxx.iso

断点续传/恢复下载,如果您在下载大文件期间断开连接。你无需从头开始下载,可以使用-C -选项继续上一次的下载

-d

命令1:curl -d 'login=emma&password=123' -X POST https://google.com/login

命令2:curl -d 'login=emma' -d 'password=123' -X POST  https://google.com/login

命令3:curl -d 'login=emma' -d 'password=123'  https://google.com/login

命令4:curl -d '@data.txt' https://google.com/login

1、用于发送 POST 请求的数据体

2、使用-d参数以后,HTTP 请求会自动加上标头Content-Type : application/x-www-form-urlencoded。并且会自动将请求转为 POST 方法,因此可以省略-X POST。

3、可以读取本地文本文件的数据,向服务器发送。

-e

命令1:curl -e 'https://google.com?q=example' https://www.example.com

命令2:curl -H 'Referer: https://google.com?q=example' https://www.example.com

1、设置 HTTP的标头Referer,表示请求的来源

2、-H参数可以通过直接添加标头Referer,达到同样效果。

-F

命令1:curl -F '[email protected]' https://google.com/profile

命令2:curl -F '[email protected];type=image/png' https://google.com/profile

命令3:curl -F '[email protected];filename=me.png' https://google.com/profile

1、向服务器上传二进制文件,自动给 HTTP 请求加上标头Content-Type: multipart/form-data

2、可以指定 MIME 类型

3、可以指定文件名(原始文件名为photo.png,但是服务器接收到的文件名为me.png)

-G curl -G -d 'q=kitties' -d 'count=20' https://google.com/search

1、构造 URL 的查询字符串,如果省略-G,会发出一个 POST 请求。

2、实际请求的 URL为:https://google.com/search?q=kitties&count=20,GET方式

-H

命令1:curl -H 'Accept-Language: en-US' https://google.com

命令2:curl -H 'Accept-Language: en-US' -H 'Secret-Message: xyzzy' https://google.com

命令3:curl -d '{"login": "emma", "pass": "123"}' -H 'Content-Type: application/json' https://google.com/login

添加 HTTP 请求的标头
-i curl -i https://www.example.com 打印出服务器回应的 HTTP 标头和文本内容
-I

命令1:curl -I https://www.example.com

命令2:curl --head https://www.example.com

1、向服务器发出 HEAD 请求,然会将服务器返回的 HTTP 标头打印出来,不会打印文本内容

2、--head参数等同于-I

-k curl -k https://www.example.com 指定跳过 SSL 检测,不会检查请求地址服务器的 SSL 证书是否正确
-L curl -L -d 'tweet=hi' https://api.twitter.com/tweet 让 HTTP 请求跟随服务器的重定向,curl 默认不跟随重定向。
-o curl -o /路径/example.html https://www.example.com/example.html 将服务器的回应保存成文件,可以自定义路径和文件名,等同于wget命令
-O

命令1:curl -O https://www.example.com/foo/bar.html

命令2:curl -O https://www.example.com/foo/bar.html -O https://www.example.com/foo/tar.html

1、将服务器回应保存成文件,并将 URL 的最后部分当作文件名

2、下载多个文件

-r

curl -r 0-100 -o part1.jpg https://xxx.com/test.jpg
curl -r 100-200 -o part2.jpg https://xxx.com/test.jpg
curl -r 200- -o part3.jpg https://xxx.com/test.jpg

把分开文件合并为一个完整文件
cat part* > part.jpeg

分块下载,单位是字节B

-s

命令1:curl -s https://www.example.com

命令2:curl -s -o /dev/null https://google.com

1、不输出错误和进度信息,上面命令一旦发生错误,不会显示错误信息。不发生错误的话,会正常显示运行结果

2、如果想让 curl 不产生任何输出,可以使用下面的命令。

-u

命令1:curl -u 'bob:12345' https://google.com/login

命令2:curl https://bob:[email protected]/login

命令3:curl -u 'bob' https://google.com/login

1、设置服务器认证的用户名和密码,将其转为 HTTP 标头Authorization: Basic Ym9iOjEyMzQ1,其中base64(bob:12345) = Ym9iOjEyMzQ1

2、curl 能够识别 URL 里面的用户名和密码。

3、只设置了用户名,执行后,curl 会提示用户输入密码

-v curl -v https://www.example.com 输出通信的整个过程,用于调试
-x

命令1:curl -x socks5://james:[email protected]:8080 https://www.example.com

命令2:curl -x 192.168.1.100:8080 https://www.example.com

1、指定 HTTP 请求的代理

2、支持socks5 代理

3、如果没有指定代理协议,默认为 HTTP

-X curl -X POST https://www.example.com 指定 HTTP 请求的方法
  curl https://xxx.com >> xxx.txt 重定向保存

 

标签:www,google,笔记,https,Linux,curl,com,example
From: https://www.cnblogs.com/firstlady/p/17899213.html

相关文章

  • UBUNTU 18.04.6 在编译linux内核的时候执行make ARCH=arm socfpga_defconfig设置默认
    在编译linux内核的时候执行makeARCH=armsocfpga_defconfig设置默认配置时报错bisonflexnotfound缺少文件:/bin/sh:1:bison:notfound 输入命令sudoapt-getinstallbison进行安装: /bin/sh:1:flex:notfound 输入命令 sudoapt-getinstallflex进行安......
  • Linux实现指定用户sftp传输,静止ssh登录
    1、环境名称ipserver192.168.1.1client192.168.1.22、服务器创建repl用户useradd-m-d/home/repl-s/usr/sbin/nologinrepl3、修改密码passwdrepl4、ssh配置#该行不注释Subsystemsftp/usr/libexec/openssh/sftp-server#增加一下行......
  • atlas 2001 dk A2 研发笔记
    atlas2001dkA2开发者套件: www.hiascend.com/hardware/devloper-kit-a2 课程:https://www.hiascend.com/zh/developer/courses/detail/1638576084570705922 os:https://www.hiascend.com/hardware/developer-kit-a2/resource xterm: https://mydown.yesky.com/pcsoft/988......
  • 运维工程师必备-Linux-RHCE认证介绍
    原创:厦门微思网络红帽RHCE9.0课程介绍红帽公司介绍红帽是首个(也是全球最大、全球领先)的企业开源软件解决方案提供商,在过去20几年里,红帽已经成为开源社区里令人尊敬的成员,赞助了数百个开源项目,并为数千个项 目贡献代码。屡获殊荣的支持、培训和咨询服务使红帽成为《财富》500......
  • KMP 学习笔记
    符号规定先来规定一些符号。\(\lvertS\rvert\)代表这个字符串\(S\)的长度。\(S_{l\cdotsr}\)代表字符串从第\(l\)个字符到第\(r\)个字符组成的字串。\(F(S,i)\)等同于\(S_{1\cdotsi}\)(就是字符串长度为\(i\)的前缀)\(E(S,i)\)等同于\(S_{\lvertS\rvert-i+1......
  • linux命令find、locate、ll-i显示内容命令学习
    find路径匹配表达式-namefilename:查找指定名称的文件-userusename:查找指定用户的文件-groupgrpname:查找属于指定组的文件-print:显示查找结果-sizen:查找大小为n块的文件,+n表示查找大小大于n块的文件,-n表示查找大小小于n块的文件;nc表示查找大小为n个字符的文件root@localhos......
  • linux关闭主板警告声,蜂鸣声,滴滴声,pc扬声器。
    启动时,BIOS通常会在开机自检期间发出蜂鸣声。较新的主板型号省略了开机自检蜂鸣声,以便快速启动进入操作系统。BIOS通常允许切换开机自检蜂鸣声,但无法将PC扬声器配置为完全关闭。一旦系统启动到Linux并加载内核pcspkr模块,PC扬声器就可以由环境使用要禁用PC扬声器,就将p......
  • prometheus监控k8s集群node节点/linux操作系统
    prometheus监控k8s集群node节点/linux操作系统 一、监控linux操作系统1、下载二进制包wgethttps://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz2、解压,移动至/opt并做软连接tarzxfnode_expo......
  • Windows、Linux 和 Mac:操作系统之间的比较
    Windows系统、Linux系统与Mac系统:操作系统的对比与选择操作系统是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。操作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。以下是W......
  • 阅读笔记:《代码大全》阅读笔记十
    《代码大全》是我在软件开发领域的一本必读书籍。这本书几乎涵盖了软件开发的方方面面,从编码到设计、测试到调试等各个环节都有详细的讲解和指导。首先,我被作者对于代码的重视所深深吸引。他在书中强调,代码质量决定了软件的可靠性和可维护性。好的代码应该易读、易懂、易维护。通......