激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Linux|Centos|Ubuntu|系統進程|Fedora|注冊表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服務器之家 - 服務器系統 - Linux - Linux中的curl命令詳解

Linux中的curl命令詳解

2021-11-25 17:08都市煙火 Linux

大家應該都知道在Linux中curl是一個利用URL規則在命令行下工作的文件傳輸工具,可以說是一款很強大的http命令行工具。它支持文件的上傳和下載,是綜合傳輸工具,但按傳統,習慣稱url為下載工具。本文將詳細介紹Linux中的curl命令

語法

# curl [option] [url]

常見參數:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
-A/--user-agent <string>    設置用戶代理發送給服務器
-b/--cookie <name=string/file> cookie字符串或文件讀取位置
-c/--cookie-jar <file>     操作結束后把cookie寫入到這個文件中
-C/--continue-at <offset>   斷點續轉
-D/--dump-header <file>    把header信息寫入到該文件中
-e/--referer         來源網址
-f/--fail           連接失敗時不顯示http錯誤
-o/--output         把輸出寫到該文件中
-O/--remote-name      把輸出寫到該文件中,保留遠程文件的文件名
-r/--range <range>      檢索來自HTTP/1.1或FTP服務器字節范圍
-s/--silent         靜音模式。不輸出任何東西
-T/--upload-file <file>     上傳文件
-u/--user <user[:password]>  設置服務器的用戶和密碼
-w/--write-out [format]    什么輸出完成后
-x/--proxy <host[:port]>    在給定的端口上使用HTTP代理
-#/--progress-bar      進度條顯示當前的傳送狀態

例子:

1、基本用法

?
1
# curl http://www.linux.com

執行后,www.linux.com 的html就會顯示在屏幕上了

Ps:由于安裝linux的時候很多時候是沒有安裝桌面的,也意味著沒有瀏覽器,因此這個方法也經常用于測試一臺服務器是否可以到達一個網站

2、保存訪問的網頁

2.1:使用linux的重定向功能保存

?
1
# curl http://www.linux.com >> linux.html

2.2:可以使用curl的內置option:-o(小寫)保存網頁

?
1
$ curl -o linux.html http://www.linux.com

執行完成后會顯示如下界面,顯示100%則表示保存成功

?
1
2
3
% Total % Received % Xferd Average Speed Time Time Time Current
        Dload Upload Total Spent Left Speed
100 79684 0 79684 0 0 3437k  0 --:--:-- --:--:-- --:--:-- 7781k

2.3:可以使用curl的內置option:-O(大寫)保存網頁中的文件

要注意這里后面的url要具體到某個文件,不然抓不下來

?
1
# curl -O http://www.linux.com/hello.sh

3、測試網頁返回值

?
1
# curl -o /dev/null -s -w %{http_code} www.linux.com

Ps:在腳本中,這是很常見的測試網站是否正常的用法

4、指定proxy服務器以及其端口

很多時候上網需要用到代理服務器(比如是使用代理服務器上網或者因為使用curl別人網站而被別人屏蔽IP地址的時候),幸運的是curl通過使用內置option:-x來支持設置代理

?
1
# curl -x 192.168.100.100:1080 http://www.linux.com

5、cookie

有些網站是使用cookie來記錄session信息。對于chrome這樣的瀏覽器,可以輕易處理cookie信息,但在curl中只要增加相關參數也是可以很容易的處理cookie

5.1:保存http的response里面的cookie信息。內置option:-c(小寫)

?
1
# curl -c cookiec.txt http://www.linux.com

執行后cookie信息就被存到了cookiec.txt里面了

5.2:保存http的response里面的header信息。內置option: -D

?
1
# curl -D cookied.txt http://www.linux.com

執行后cookie信息就被存到了cookied.txt里面了

注意: -c(小寫)產生的cookie和-D里面的cookie是不一樣的。

5.3:使用cookie

很多網站都是通過監視你的cookie信息來判斷你是否按規矩訪問他們的網站的,因此我們需要使用保存的cookie信息。內置option: -b

?
1
# curl -b cookiec.txt http://www.linux.com

6、模仿瀏覽器

有些網站需要使用特定的瀏覽器去訪問他們,有些還需要使用某些特定的版本。curl內置option:-A可以讓我們指定瀏覽器去訪問網站

?
1
# curl -A "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.0)" http://www.linux.com

這樣服務器端就會認為是使用IE8.0去訪問的

7、偽造referer(盜鏈)

很多服務器會檢查http訪問的referer從而來控制訪問。比如:你是先訪問首頁,然后再訪問首頁中的郵箱頁面,這里訪問郵箱的referer地址就是訪問首頁成功后的頁面地址,如果服務器發現對郵箱頁面訪問的referer地址不是首頁的地址,就斷定那是個盜連了

curl中內置option:-e可以讓我們設定referer

?
1
# curl -e "www.linux.com" http://mail.linux.com

這樣就會讓服務器其以為你是從www.linux.com點擊某個鏈接過來的

8、下載文件

8.1:利用curl下載文件。

#使用內置option:-o(小寫)

?
1
# curl -o dodo1.jpg http:www.linux.com/dodo1.JPG

#使用內置option:-O(大寫)

?
1
# curl -O http://www.linux.com/dodo1.JPG

這樣就會以服務器上的名稱保存文件到本地

8.2:循環下載

有時候下載圖片可以能是前面的部分名稱是一樣的,就最后的尾椎名不一樣

?
1
# curl -O http://www.linux.com/dodo[1-5].JPG

這樣就會把dodo1,dodo2,dodo3,dodo4,dodo5全部保存下來

8.3:下載重命名

?
1
# curl -O http://www.linux.com/{hello,bb}/dodo[1-5].JPG

由于下載的hello與bb中的文件名都是dodo1,dodo2,dodo3,dodo4,dodo5。因此第二次下載的會把第一次下載的覆蓋,這樣就需要對文件進行重命名。

?
1
# curl -o #1_#2.JPG http://www.linux.com/{hello,bb}/dodo[1-5].JPG

這樣在hello/dodo1.JPG的文件下載下來就會變成hello_dodo1.JPG,其他文件依此類推,從而有效的避免了文件被覆蓋

8.4:分塊下載

有時候下載的東西會比較大,這個時候我們可以分段下載。使用內置option:-r

?
1
2
3
4
# curl -r 0-100 -o dodo1_part1.JPG http://www.linux.com/dodo1.JPG
# curl -r 100-200 -o dodo1_part2.JPG http://www.linux.com/dodo1.JPG
# curl -r 200- -o dodo1_part3.JPG http://www.linux.com/dodo1.JPG
# cat dodo1_part* > dodo1.JPG

這樣就可以查看dodo1.JPG的內容了

8.5:通過ftp下載文件

curl可以通過ftp下載文件,curl提供兩種從ftp中下載的語法

?
1
2
# curl -O -u 用戶名:密碼 ftp://www.linux.com/dodo1.JPG
# curl -O ftp://用戶名:密碼@www.linux.com/dodo1.JPG

8.6:顯示下載進度條

?
1
# curl -# -O http://www.linux.com/dodo1.JPG

8.7:不會顯示下載進度信息

?
1
# curl -s -O http://www.linux.com/dodo1.JPG

9、斷點續傳

在windows中,我們可以使用迅雷這樣的軟件進行斷點續傳。curl可以通過內置option:-C同樣可以達到相同的效果
如果在下載dodo1.JPG的過程中突然掉線了,可以使用以下的方式續傳

?
1
# curl -C -O http://www.linux.com/dodo1.JPG

10、上傳文件

curl不僅僅可以下載文件,還可以上傳文件。通過內置option:-T來實現

?
1
# curl -T dodo1.JPG -u 用戶名:密碼 ftp://www.linux.com/img/

這樣就向ftp服務器上傳了文件dodo1.JPG

11、顯示抓取錯誤

?
1
# curl -f http://www.linux.com/error

其他參數(此處翻譯為轉載):

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
-a/--append      上傳文件時,附加到目標文件
--anyauth       可以使用“任何”身份驗證方法
--basic        使用HTTP基本驗證
-B/--use-ascii      使用ASCII文本傳輸
-d/--data <data>     HTTP POST方式傳送數據
--data-ascii <data>   以ascii的方式post數據
--data-binary <data>   以二進制的方式post數據
--negotiate       使用HTTP身份驗證
--digest      使用數字身份驗證
--disable-eprt     禁止使用EPRT或LPRT
--disable-epsv     禁止使用EPSV
--egd-file <file>    為隨機數據(SSL)設置EGD socket路徑
--tcp-nodelay     使用TCP_NODELAY選項
-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). "--engine list" for list
--cacert <file>    CA證書 (SSL)
--capath <directory>   CA目 (made using c_rehash) to verify peer against (SSL)
--ciphers <list>    SSL密碼
--compressed     要求返回是壓縮的形勢 (using deflate or gzip)
--connect-timeout <seconds> 設置最大請求時間
--create-dirs     建立本地目錄的目錄層次結構
--crlf       上傳是把LF轉變成CRLF
--ftp-create-dirs    如果遠程目錄不存在,創建遠程目錄
--ftp-method [multicwd/nocwd/singlecwd] 控制CWD的使用
--ftp-pasv      使用 PASV/EPSV 代替端口
--ftp-skip-pasv-ip    使用PASV的時候,忽略該IP地址
--ftp-ssl      嘗試用 SSL/TLS 來進行ftp數據傳輸
--ftp-ssl-reqd     要求用 SSL/TLS 來進行ftp數據傳輸
-F/--form <name=content>  模擬http表單提交數據
-form-string <name=string>  模擬http表單提交數據
-g/--globoff     禁用網址序列和范圍使用{}和[]
-G/--get      以get的方式來發送數據
-h/--help      幫助
-H/--header <line>    自定義頭信息傳遞給服務器
--ignore-content-length  忽略的HTTP頭信息的長度
-i/--include     輸出時包括protocol頭信息
-I/--head      只顯示文檔信息
-j/--junk-session-cookies  讀取文件時忽略session cookie
--interface <interface>  使用指定網絡接口/地址
--krb4 <level>     使用指定安全級別的krb4
-k/--insecure     允許不使用證書到SSL站點
-K/--config     指定的配置文件讀取
-l/--list-only     列出ftp目錄下的文件名稱
--limit-rate <rate>   設置傳輸速度
--local-port<NUM>    強制使用本地端口號
-m/--max-time <seconds>  設置最大傳輸時間
--max-redirs <num>    設置最大讀取的目錄數
--max-filesize <bytes>   設置最大下載的文件總量
-M/--manual     顯示全手動
-n/--netrc      從netrc文件中讀取用戶名和密碼
--netrc-optional    使用 .netrc 或者 URL來覆蓋-n
--ntlm       使用 HTTP NTLM 身份驗證
-N/--no-buffer     禁用緩沖輸出
-p/--proxytunnel    使用HTTP代理
--proxy-anyauth    選擇任一代理身份驗證方法
--proxy-basic     在代理上使用基本身份驗證
--proxy-digest     在代理上使用數字身份驗證
--proxy-ntlm     在代理上使用ntlm身份驗證
-P/--ftp-port <address>  使用端口地址,而不是使用PASV
-Q/--quote <cmd>    文件傳輸前,發送命令到服務器
--range-file     讀取(SSL)的隨機文件
-R/--remote-time    在本地生成文件時,保留遠程文件時間
--retry <num>     傳輸出現問題時,重試的次數
--retry-delay <seconds>  傳輸出現問題時,設置重試間隔時間
--retry-max-time <seconds>  傳輸出現問題時,設置最大重試時間
-S/--show-error    顯示錯誤
--socks4 <host[:port]>   用socks4代理給定主機和端口
--socks5 <host[:port]>   用socks5代理給定主機和端口
-t/--telnet-option <OPT=val> Telnet選項設置
--trace <file>     對指定文件進行debug
--trace-ascii <file>   Like --跟蹤但沒有hex輸出
--trace-time     跟蹤/詳細輸出時,添加時間戳
--url <URL>     Spet URL to work with
-U/--proxy-user <user[:password]> 設置代理用戶名和密碼
-V/--version     顯示版本信息
-X/--request <command>   指定什么命令
-y/--speed-time    放棄限速所要的時間。默認為30
-Y/--speed-limit    停止傳輸速度的限制,速度時間'秒
-z/--time-cond     傳送時間設置
-0/--http1.0     使用HTTP 1.0
-1/--tlsv1      使用TLSv1(SSL)
-2/--sslv2      使用SSLv2的(SSL)
-3/--sslv3      使用的SSLv3(SSL)
--3p-quote      like -Q for the source URL for 3rd party transfer
--3p-url      使用url,進行第三方傳送
--3p-user      使用用戶名和密碼,進行第三方傳送
-4/--ipv4      使用IP4
-6/--ipv6      使用IP6

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作帶來一定的幫助,如果有疑問大家可以留言交流。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 91网站在线观看视频 | av影院在线播放 | 日本黄色a视频 | 91av久久 | 国产乱淫a∨片免费观看 | 老子午夜影院 | 久草成人在线 | 欧美激情猛片xxxⅹ大3 | 国产一国产一级毛片视频 | 国产欧美日韩二区 | 色污视频| 久久人人爽人人爽人人片av免费 | 国产一级毛片a | 蜜桃视频网站www | 久久精品国产清自在天天线 | 亚洲精品7777xxxx青睐 | 久久精品中文字幕一区二区三区 | 日本一道aⅴ不卡免费播放 久久久久久久高清 | 狠狠干天天操 | 欧美日韩国产成人在线 | 视频一区二区三区中文字幕 | 国产免费传媒av片在线 | 一级毛片播放 | 日本视频在线免费观看 | 久久综合九色 | 久草热久 | 国产91小视频在线观看 | 国产伦精品一区二区三区在线 | 亚洲视频在线一区二区 | 神秘电影91 | 西川av在线一区二区三区 | 国产妞干网 | 第一区免费在线观看 | 国产免费传媒av片在线 | 国产一国产精品一级毛片 | 免费毛片电影 | 宅男噜噜噜66国产免费观看 | 意大利av在线 | 国产羞羞视频在线观看免费应用 | 日本a∨精品中文字幕在线 狠狠干精品视频 | av免费不卡国产观看 |