curl 和 wget 命令
1. curl
curl 支持 HTTP、HTTPS、FTP 等协议,还支持 POST、cookies、认证、从指定偏移处下载部分文件、User-Agent、限速、文件大小、进度条等特征。
1.1 选项
- | - |
---|---|
-A 或 --user-agent <string> |
设置用户代理 |
-b 或 --cookie <name=string/file> |
cookie 字符串或文件读取位置 |
-c 或 --cookie-jar <file> |
操作结束后把 cookie 写入文件 |
--basic |
使用 HTTP 基本验证 |
-d 或 --data <data> |
POST 方式传送数据 |
--data-ascii <data> |
以 ASCII 的方式 POST 数据 |
--data-binary <data> |
以二进制的方式 POST 数据 |
--tcp-nodelay |
使用 TCP_NODELAY 选项 |
-e 或 --referer |
来源网址 |
-E 或 --cert <cert[:passwd]> |
客户端证书文件和密码 (SSL) |
--cert-type <type> |
证书文件类型 (DER/PEM/ENG) (SSL) |
--key <key> |
私钥文件名 (SSL) |
--key-type <type> |
私钥文件类型 (DER/PEM/ENG) (SSL) |
--pass <pass> |
私钥密码 (SSL) |
--engine <eng> |
加密引擎使用 (SSL) |
--cacert <file> |
CA 证书 (SSL) |
--capath <directory> |
CA 路径 |
--ciphers <list> |
SSL 密码 |
-F 或 --form <name=content> |
模拟 HTTP 表单提交数据 |
--form-string <name=string> |
模拟 HTTP 表单提交数据 |
-H 或 --header <line> |
自定义头信息传递给服务器 |
-I 或 --head |
只显示请求头信息 |
-T 或 --upload-file <file> |
上传文件 |
-o 或 --output |
把输出写到文件中 |
-O 或 --remote-name |
把输出写到文件中,保留远程文件的文件名 |
-s 或 --silent |
静默模式。不输出任何东西 |
1.2 示例
只看返回的 HTTP Header
[root@VM_139_74_centos ~]# curl -I www.163.com
HTTP/1.1 200 OK
Expires: Sun, 06 May 2018 15:22:03 GMT
Date: Sun, 06 May 2018 15:20:43 GMT
Server: nginx
Content-Type: text/html; charset=GBK
Transfer-Encoding: chunked
Vary: Accept-Encoding,User-Agent,Accept
Cache-Control: max-age=80
Age: 44
X-Via: 1.1 PSfjqzdxgn15:0 (Cdn Cache Server V2.0), 1.1 chongdianxin121:4 (Cdn Cache Server V2.0)
Connection: keep-alive
X-Dscp-Value: 0
文件下载
curl 默认行为就是下载,浏览网页就是下载网页到本地,curl URL
会把这个 URL 对应的文件下载下来。但是 curl 会把下载的文件输出到 STDOUT 即终端窗口,可以通过 -o
或 -O
选项写入文件。
[root@VM_139_74_centos ~]# curl http://img02.tooopen.com/images/20160509/tooopen_sy_161967094653.jpg -o 1.jpg
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 208k 100 208k 0 0 447k 0 --:--:-- --:--:-- --:--:-- 448k
设置 cookie
使用 -b
读取 cookie 文件,或 --cookie <name=string/file>
选项来指定 cookie,多个 cookie 使用分号分隔:
curl http://www.baidu.com --cookie "user=root;pass=123456"
保存 cookie
使用 -c
或 --cookie-jar <file>
选项:
[root@VM_139_74_centos ~]# curl www.baidu.com --cookie-jar cookie
<!DOCTYPE html>
...
[root@VM_139_74_centos ~]# cat cookie
# Netscape HTTP Cookie File
# http://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.
.baidu.com TRUE / FALSE 1525707455 BDORZ 27315
设置 HTTP Header
使用 -H
或 --header <line>
传递多个头部信息,例如:
curl -H "Host:www.baidu.com" -H "accept-language:en" www.baidu.com
2. wget
wget 用于下载文件,支持断点续传。
2.1 选项
-a<日志文件>:在指定的日志文件中记录执行过程;
-A<后缀名>:指定要下载文件的后缀名,多个后缀名之间使用逗号进行分隔;
-b:进行后台的方式运行 wget;
-B<连接地址>:设置参考的连接地址的基地地址;
-c:继续执行上次终端的任务;
-C<标志>:设置服务器数据块功能标志on为激活,off为关闭,默认值为on;
-D<域名列表>:设置顺着的域名列表,域名之间用“,”分隔;
-e<指令>:作为文件“.wgetrc”中的一部分执行指定的指令;
-i<文件>:从指定文件获取要下载的URL地址;
-l<目录列表>:设置顺着的目录列表,多个目录用“,”分隔;
-q:不显示指令执行过程
-O:另存为指定名称的文件
-r:递归下载方式
2.2 示例
下载文件
[root@VM_139_74_centos ~]# wget http://img02.tooopen.com/images/20160509/tooopen_sy_161967094653.jpg
--2018-05-06 23:42:14-- http://img02.tooopen.com/images/20160509/tooopen_sy_161967094653.jpg
Resolving img02.tooopen.com (img02.tooopen.com)... 61.240.138.246, 221.194.130.173
Connecting to img02.tooopen.com (img02.tooopen.com)|61.240.138.246|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 213639 (209K) [image/jpeg]
Saving to: ‘tooopen_sy_161967094653.jpg.1’
100%[=====================================================================================================================================================>] 213,639 --.-K/s in 0.09s
2018-05-06 23:42:14 (2.17 MB/s) - ‘tooopen_sy_161967094653.jpg.1’ saved [213639/213639]
下载文件并重命名
[root@VM_139_74_centos ~]# wget http://img02.tooopen.com/images/20160509/tooopen_sy_161967094653.jpg -O this_is_my_pic
下载指定格式文件
wget -r -A.pdf url
可以递归(-r
选项)下载一个网站的所有图片、视频、PDF 文件。
curl 和 wget 命令的更多相关文章
- Linux学习:curl 与 wget命令
curl和wget命令都是Linux下的工具,可以用来下载文件. 一.wget 例1: wget http://www.minjieren.com/wordpress-3.1-zh_CN.zip 下载 ...
- Linux命令发送Http的get或post请求(curl和wget两种方法)
Http请求指的是客户端向服务器的请求消息,Http请求主要分为get或post两种,在Linux系统下可以用curl和wget命令来模拟Http的请求.下面就来介绍一下Linux系统如何模拟Http ...
- HTTPie:替代 Curl 和 Wget 的现代 HTTP 命令行客户端
HTTPie 工具是现代的 HTTP 命令行客户端,它能通过命令行界面与 Web 服务进行交互. -- Magesh Maruthamuthu 大多数时间我们会使用 curl 命令或是 wget 命令 ...
- Curl命令、Elinks命令、lynx命令、Wget命令、lftp命令
一.Curl命令 语法 curl(选项)(参数) 选项 -a/--append 上传文件时,附加到目标文件 -A/--user-agent <string> 设置用户代理发送给服务器 -a ...
- Linux 下模拟Http 的get or post请求(curl和wget两种方法)
一.get请求: 1.使用curl命令: curl "http://www.baidu.com" 如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地curl -i & ...
- Shell curl 和 wget 使用代理IP
Linux Shell 提供两个非常实用的命令来爬取网页,它们分别是 curl 和 wget curl 和 wget 使用代理 curl 支持 http.https.socks4.socks5 wge ...
- 使用wget命令下载网络资源
wget是GNU/Linux下的一个非交互式(non-interactive)网络下载工具,支持HTTP.HTTPS与FTP协议,并能够指定HTTP代理服务器.虽然wget命令与curl命令相比支持的 ...
- wget命令使用报错 certificate common name 'xxx' doesn't match requestde host name
使用wget命令 wget http://www.monkey.org/~provos/libevent-1.2.tar.gz 报如下错 error:certificate common name & ...
- curl与wget
curl 和wget 区别 使用方法 可参考 curl vs Wget 1.curl是libcurl这个库支持的,wget是一个纯粹的命令行命令.2.curl支持更多的协议.curl supports ...
随机推荐
- java类从加载、连接到初始化过程
类加载器 在了解Java的机制之前,需要先了解类在JVM(Java虚拟机)中是如何加载的,这对后面理解java其它机制将有重要作用. 每个类编译后产生一个Class对象,存储在.class文件中,JV ...
- Consul集群Server+Client模式
Consul集群Server+Client模式 架构示意图 只使用Consul的Server模式有以下2个问题: 因为Consul Server数量受到控制所以压力承载(扩展性)是个问题. Serve ...
- 洛谷 P2672 推销员(贪心,模拟)
传送门 解题思路 第一种: 对于选i家,很显然,a值前i-1家的一定会选,所以只需要考虑最后一家的选法.要么是选择a值第i大的(就不管s了),要么选择剩下的中s最大的. 我们把每一家的情况(s和a)存 ...
- Elasticsearch7.X 入门学习第九课笔记-----聚合分析Aggregation
原文:Elasticsearch7.X 入门学习第九课笔记-----聚合分析Aggregation 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. ...
- Git基本常用指令
开发十年,就只剩下这套架构体系了! >>> Git基本常用命令如下: mkdir: XX (创建一个空目录 XX指目录名) pwd: 显示当前目 ...
- qemu-kvm使用
创建镜像qemu-img create -f qcow2 test-vm.qcow2 10g 修改镜像大小qemu-img resize test-vm.qcow2 +10G 安装系统 qem ...
- 1. AtomicInteger 、Unsafe 及 CAS方法的整理
本文摘自: https://blog.csdn.net/fanrenxiang/article/details/80623884 http://ifeve.com/sun-misc-unsafe/ h ...
- spring boot 加载指定xml
方法一:使用@ImportResource 方法二:在test中 @ContextConfiguration(locations = "classpath:spring-profile.xm ...
- TensorFlow——实现线性回归算法
import tensorflow as tf import numpy as np import matplotlib.pyplot as plt #使用numpy生成200个随机点 x_data= ...
- Angular Viewchild undefined
Angular的viewchild在使用的时候报错 undefined 1 检查是否在元素上打上标识 #xxx 2 查看引用元素时的时机 是否在AfterViewInit之后 3 检查元素是否在*ng ...