curl命令

Curl是一種支持多種協議(http、https,ftp)等,利用url規則在命令行下工作的文件傳輸工具,還支持POST、cookies、認證、從指定偏移處下載部分文件、用戶代理字符串、限速、文件大小、進度條等特征

1.語法:

curl [options] [URL...]

2.參數:

-a/--append?用于上傳文件時,指定附加到目標文件,文件存在則覆蓋,不存在則創建

-A/--user-agent?指定客戶端agent,即瀏覽器類型

-anyauth???可以使用“任何”身份驗證方法

-b/--cookie <name=string/file>??cookie字符串或文件讀取位置

--basic????使用HTTP基本驗證

-B/--use-ascii????使用ASCII /文本傳輸

-c/--cookie-jar <file>???操作結束后把cookie寫入到這個文件中

-C/--continue-at <offset>???斷點續轉

-d/--data <data>??HTTP POST方式傳送數據

-D/--dump-header <file>??把header信息寫入到該文件中

-e/--referer??來源網址

--create-dirs建立本地目錄的目錄層次結構

-F/--form <name=content>模擬http表單提交數據

-G/--get???以get的方式來發送數據

-H/--header <line>???自定義頭信息傳遞給服務器

--ignore-content-length??忽略的HTTP頭信息的長度

-i/--include??輸出時包括protocol頭信息

-I/--head??只顯示請求頭信息

--interface <interface>??使用指定網絡接口/地址

-K/--config???指定的配置文件讀取

-l/--list-only????列出ftp目錄下的文件名稱

--limit-rate <rate>??設置傳輸速度

-r/ --range?用于分段下載使用 單位為bytes

--local-port<NUM>強制使用本地端口號

-m/--max-time <seconds>??設置最大傳輸時間

-o/--output???把輸出寫到該文件中

-O/--remote-name??把輸出寫到該文件中,保留遠程文件的文件名

-p/--proxytunnel??使用HTTP代理

-Q/--quote <cmd>??文件傳輸前,發送命令到服務器

-R/--remote-time??在本地生成文件時,保留遠程文件時間

--retry <num>傳輸出現問題時,重試的次數

--retry-delay <seconds>??傳輸出現問題時,設置重試間隔時間

--retry-max-time <seconds>??傳輸出現問題時,設置最大重試時間

-s/--silent???靜默模式。不輸出任何東西

-S/--show-error???顯示錯誤

--trace <file>????對指定文件進行debug

-T/--upload-file <file>??上傳文件

--url <URL>???Spet URL to work with

-u/--user <user[:password]>設置服務器的用戶和密碼

-U/--proxy-user <user[:password]>??設置代理用戶名和密碼

-x/--proxy <host[:port]>在給定的端口上使用HTTP代理,默認1080

-X/--request <command>???指定什么命令

-w/--write-out [format]??指定輸出變量格式,變量需按%{變量}的格式,如果要輸出自己定義的名字,直接使用%%

?

3.具體用法

1)查看url的請求頭信息

curl -I??http://club.xywy.com

?

HTTP/1.1 200 OK

Server: XT-server/0.0

Date: Mon, 28 Sep 2015 02:51:38 GMT

Content-Type: text/html

Connection: close

Vary: Accept-Encoding

XT_ID: cweb-4

2)自定義請求頭信息,返回請求狀態

curl -I -H "HOST:club.xywy.com"??http://115.182.211.132

?

HTTP/1.1 200 OK

Server: XT-server/0.0

Date: Mon, 28 Sep 2015 02:54:53 GMT

Content-Type: text/html

Connection: close

Vary: Accept-Encoding

XT_ID: cweb-4

?

-H?指定請求頭信息,

curl -H "Connection:keep-alive \n User-Agent: Mozilla/5.0 \n Host:bbs.beyond.com"???http://192.168.1.1/index.php??-I

3)查看url的各類響應時間

curl -o /dev/null -s -w http_code:%{http_code}\\ntime_namelookup:%{time_namelookup}\\ntime_redirect:%{time_redirect}\\ntime_pretransfer:%{time_pretransfer}\\ntime_connect:%{time_connect}\\ntime_starttransfer:%{time_starttransfer}\\ntime_total:%{time_total}\\nspeed_download:%{speed_download}\\n??http://club.xywy.com??

?

http_code:200?????????//返回的狀態嗎

time_namelookup:0.032?????//dns解析域名的時間

time_redirect:0.000???????//重定向時間?

time_pretransfer:0.037????????//從開始到準備傳輸的時間

time_connect:0.037????????????//建立連接的總時間

time_starttransfer:0.044???????//從發出請求之后,web返回第一個字節所用時間

time_total:0.463??????????????????//client發出請求;到web的server發送會所有的相應數據的時間

speed_download:617565.000?????????//下載速度,單位?byte/s

?

?

?

size_upload ? ? ? ? ?//上傳文件大小

size_header ? ? ? ? ?//響應頭

size_request ? ? ? ? ?//發送請求參數大小

speed_download ? ? ?//傳輸速度

speed_upload ? ? ? ? //平均上傳速度

content_type?

?

?

?

建立tcp連接的時間:time_connect - time_namelookup

?

4)指定來源地址,指定瀏覽器類型

curl -I -A "Mozilla/5.0 Firefox/21.0"??-e "http://www.baidu.com" -H "Host:bbs.beyond.com"???http://192.168.1.1/index.php

?

5)保存輸出到文件

curl -o baidu.html http://www.baidu.com

curl -O https://www.baidu.com/img/bd_logo1.png

?

-o?指定保存文件的位置,把輸出重定向到一個文件

-O?下載url中文件,所以url中需指明到某個文件

6)分段下載,并限速

目標文件大小:900M

現在分三次下載,每次300M,并限速1M/s

[root@test01 ~]#??curl -r??0-300000000 -o test.sh.part1 --limit-rate 1024000 -H "HOST:bbs.beyond.com"??http://127.0.0.1/test.sh??-w speed_download:%{speed_download}\\ntime:%{time_total}\\n?

??% Total????% Received % Xferd??Average Speed???Time????Time?????Time??Current

?????????????????????????????????Dload??Upload???Total???Spent????Left??Speed

100??286M??100??286M????0?????0???998k??????0??0:04:53??0:04:53 --:--:-- 1142k

speed_download:1022549.000

time:293.384

[root@test01 ~]# du -sh test.sh.part1?

287M????test.sh.part1

?

斷點續傳,使用#顯示進度

curl -C -???-# -r 0-1024000000 -o test.sh.part1 --limit-rate 10M -H "HOST:bbs.beyond.com"??http://127.0.0.1/test.sh??-w speed_download:%{speed_download}\\ntime:%{time_total}\\n

7)使用代理及用戶名密碼

curl -x 1.1.1.1:80 http://www.baidu.com

curl -x 1.1.1.2:80 -U user:password?http://www.baidu.com

?

當網站設置用戶身份驗證時,不加用戶名密碼是不行的

[root@test01 ~]#??curl??-I -H "HOST:bbs.beyond.com"??http://127.0.0.1/test.sh

HTTP/1.1 401 Unauthorized

Server: nginx

Date: Mon, 28 Sep 2015 07:05:52 GMT

Content-Type: text/html

Content-Length: 188

Connection: keep-alive

WWW-Authenticate: Basic realm="plese input your name and password"

現在使用-u參數指定用戶名和密碼

[root@test01 ~]#??curl??-I -H "HOST:bbs.beyond.com" -u fuzj:fuzj123??http://127.0.0.1/test.sh?

HTTP/1.1 200 OK

Server: nginx

Date: Mon, 28 Sep 2015 07:06:27 GMT

Content-Type: application/octet-stream

Content-Length: 943718400

Last-Modified: Mon, 28 Sep 2015 06:25:42 GMT

Connection: keep-alive

ETag: "5608dd66-38400000"

Accept-Ranges: bytes

?

注意:-u是指定的網站授權的用戶名和密碼,-U指定的是代理服務器授權的用戶名密碼

8)保留cookie信息到本地,并使用

curl??-c cookie.txt??-I -H "HOST:bbs.beyond.com" -u fuzj:fuzj123??http://127.0.0.1/forum.php

curl??-b cookie.txt??-I -H "HOST:bbs.beyond.com" -u fuzj:fuzj123??http://127.0.0.1/forum.php

?

9)curl 訪問 302跳轉后的頁面

?

curl -s -L -w '%{url_effective}\n' dns.ip.cn

?

10)忽略url中的特殊符號:

抱錯:curl: (3) [globbing] bad range specification in column 120"

Escape [ and ] or use -g or --globoff

An example URL that will cause the error is this:

curl "http://www.example.com/?test[]=123"

Either escape the square brackets like this:

curl "http://www.example.com/?test\[\]=123"

or use --globoff like this:

curl --globoff "http://www.example.com/?test[]=123"

or the shorter -g like this:

curl --g "http://www.example.com/?test[]=123"

?

轉載于:https://www.cnblogs.com/pycode/p/8734265.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/252011.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/252011.shtml
英文地址,請注明出處:http://en.pswp.cn/news/252011.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

單目視覺標定:世界坐標系、相機坐標系、圖像坐標系、像素坐標系——簡單粗暴,粗暴

轉&#xff1a;https://blog.csdn.net/chentravelling/article/details/53558096 1.正文 圖像處理、立體視覺等等方向常常涉及到四個坐標系&#xff1a;世界坐標系、相機坐標系、圖像坐標系、像素坐標系。例如下圖&#xff1a; 構建世界坐標系只是為了更好的描述相機的位置在哪…

Python基礎知識-05-數據類型總結字典

python其他知識目錄 1、一道題&#xff0c;選擇商品的序號。程序員和用戶各自面對的序號起始值 如有變量 googs [汽車,飛機,火箭] 提示用戶可供選擇的商品&#xff1a; 0,汽車1,飛機2,火箭用戶輸入索引后&#xff0c;將指定商品的內容拼接打印&#xff0c;如&#xff1a;用戶輸…

Python學習筆記之異常

Python用異常對象來表示異常情況&#xff0c;如果異常對象未被處理或捕捉&#xff0c;程序就會回溯&#xff08;traceback&#xff09;中止執行。 異常可以在出錯時自動引發&#xff0c;也可以主動引發。 異常被引發后如果不被處理就會傳播至程序調用的地方&#xff0c;直到主程…

VSFTP的使用

一、基本安裝 1.安裝服務 yum -y install vsftpd //centos Redhat apt-get install vsftpd //debian ubuntu 2.開啟服務 service vsftpd status //查看狀態&#xff0c;默認是關閉的 service vsftpd start 3.開機隨操作系統啟動 chkconfig vsftpd on4.添加賬號 useradd -d /…

OC Swift混編-Swift.h File not found

https://www.jianshu.com/p/f860fe1718ca 2016.09.13 11:53* 字數 266 閱讀 1935評論 1喜歡 1今天碰到個神坑,本人項目是OC項目,最近開始使用Swift開始替代.但是,在替代的已開始就出現問題了:新建swift文件,然后提示創建bridging-Hearder文件,然后swift可以使用OC代碼了.這些都…

視覺標定,再來一波!!更簡單粗暴!!!!!!

繼續&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 一、四個坐標系簡介和轉換 相機模型為以后一切標定算法的關鍵&#xff0c;只有這邊有相當透徹的理解&#xff0c;對以后的標定算法才能有更好的理解。本人研究了好長時間&#xff0c;幾乎每天…

深入淺出NIO之Selector實現原理

2019獨角獸企業重金招聘Python工程師標準>>> 前言 Java NIO 由以下幾個核心部分組成&#xff1a; 1、Buffer 2、Channel 3、Selector Buffer和Channel在深入淺出NIO之Channel、Buffer一文中已經介紹過&#xff0c;本文主要講解NIO的Selector實現原理。 之前進行sock…

介紹一下畫圖小能手matplotlib。

我們在做完數據分析的時候需要把分析出來的結果&#xff0c;做一個圖形化的形象表達&#xff0c;這里我們就需要用到畫圖小能手matplotlib&#xff0c;下面就演示一下常用的條形圖和折線圖 散點圖 散點圖的做大的作用是研究兩個變量的相關性&#xff08;正相關&#xff0c;負相…

立體視覺標定源代碼C++,簡單粗暴!粗暴·······

疑點解答&#xff1a; 攝像機矩陣由內參矩陣和外參矩陣組成&#xff0c;對攝像機矩陣進行QR分解可以得到內參矩陣和外參矩陣。 內參包括焦距、主點、傾斜系數、畸變系數 &#xff08;1&#xff09; 其中&#xff0c;fx&#xff0c;fy為焦距&#xff0c;一般情況下&#xff…

11. 臨時表

-- 查詢5大洲國家總數 SELECT continent,COUNT(*) FROM country GROUP BY continent;-- 演示臨時表 CREATE TEMPORARY TABLE tmp_table ( continent VARCHAR(20), COUNT INT );INSERT INTO tmp_table SELECT Asia AS continent,COUNT(*) FROM country WHERE continent Asia;…

MongoDB負載信息一目了然 阿里云HDM重磅發布MongoDB監控和診斷功

2019獨角獸企業重金招聘Python工程師標準>>> 混合云數據庫管理&#xff08;HDM&#xff09;的統一監控、告警、診斷功能新增了對MongoDB的支持。 通過直觀的方式將MongoDB多個維度的負載信息統一整合&#xff0c;不僅可以清晰的查看實時負載信息&#xff0c;也可以方…

在iview的Table中添加Select(render)

首先對Render進行分析&#xff0c;在iview官方的文檔中&#xff0c;找到了table插入Button的例子&#xff1a; [javascript] view plaincopy { title: Action, key: action, width: 150, align: center, render: (h, params) > { return h(div, [ h(Butt…

JavaScript中call和apply方法

1 /*2 在js中 call和apply常用于綁定作用域3 */4 //1 簡單的綁定5 function sum(a,b){6 return ab;7 }8 //將sum的功能綁定給test2來執行9 function test2(a,b){ 10 return sum.call(this,a,b); 11 } 12 // call 和apply的區別是 apply接收數組作為參數…

工業機械人運動學正逆解,簡單粗暴!!!!!!

ur機械臂是六自由度機械臂&#xff0c;由D-H參數法確定它的運動學模型&#xff0c;連桿坐標系的建立如上圖所示。 轉動關節θi是關節變量&#xff0c;連桿偏移di是常數。 關節編號 α&#xff08;繞x軸&#xff09; a&#xff08;沿x軸&#xff09; θ&#xff08;繞z軸&am…

python opencv立體測距 立體匹配BM算法

立體標定應用標定數據轉換成深度圖標定 在開始之前&#xff0c;需要準備的當然是兩個攝相頭&#xff0c;根據你的需求將兩個攝像頭進行相對位置的固定&#xff0c;我是按平行來進行固定的&#xff08;如果為了追求兩個雙目圖像更高的生命度&#xff0c;也可以將其按一定鈍角固…

對于python 作用域新的理解

今天看Python習題&#xff0c;看到如下題目 def num():return [lambda x: i*x for i in range(4)] print([m(2) for m in num()])  # 求輸出結果是什么 我看了半天才明白這應該是一個列表生成式&#xff0c;列表中的元素為四個匿名函數&#xff0c;我本以為每個匿名函數應該是…

Vue基礎學習(一)------內部指令

一.v-if v-else v-show 指令 1.v-if v-if:是vue 的一個內部指令&#xff0c;指令用在我們的html中,用來判斷是否加載html的DOM 現在舉個栗子&#xff0c;判斷用戶的登錄操作&#xff0c;用isLogin作為一個判斷字段&#xff0c;登錄成功&#xff0c;就顯示用戶的名稱 代碼&…

【bzoj3555】[Ctsc2014]企鵝QQ 簡單哈希

傳送門 題目分析 題意即求有多少對字符串只相差一個字符&#xff0c;枚舉刪除每個字符后的哈希&#xff0c; 看有多少相等即可。 比如有如下字符串&#xff1a;$Sd123$&#xff0c;其中S部分的哈希值為H&#xff0c;刪除的是d&#xff0c;則原字符串的哈希值為$$(((H * T d) *…

StereoRectify()函數定義及用法畸變矯正與立體校正

畸變矯正是上一篇博文的遺留問題&#xff0c;當畸變系數和內外參數矩陣標定完成后&#xff0c;就應該進行畸變的矯正&#xff0c;以達到消除畸變的目的&#xff0c;此其一。 在該系列第一部分的博文中介紹的立體成像原理中提到&#xff0c;要通過兩幅圖像估計物點的深度信息&a…

死磕 java集合之TreeMap源碼分析(三)- 內含紅黑樹分析全過程

2019獨角獸企業重金招聘Python工程師標準>>> 歡迎關注我的公眾號“彤哥讀源碼”&#xff0c;查看更多源碼系列文章, 與彤哥一起暢游源碼的海洋。 刪除元素 刪除元素本身比較簡單&#xff0c;就是采用二叉樹的刪除規則。 &#xff08;1&#xff09;如果刪除的位置有兩…