首頁 > 軟體

在Linux中使用curl命令引數詳解

2020-06-16 16:40:06

早在20世紀90年代中期,當時網際網路還處於萌芽階段,瑞典程式設計師Daniel Stenberg開始了一個專案,這個專案最終發展成了我們今天所知道的curl。

最初,他的目標是開發一種機器人,可以定期從網頁上下載貨幣匯率,並向IRC使用者提供等值的瑞典克朗美元。

長話短說,這個專案蓬勃發展,在這個過程中新增了幾個協定和特性——剩下的就是歷史了。現在,讓我們開始學習如何在Linux中使用curl傳輸資料和更多資訊!

我們為您整理了以下13個curl命令。

1. 檢視curl版本

版本選項不僅返回版本,還返回當前版本中支援的協定和特性。

linuxidc@linuxidc:~/www.linuxidc.com$ curl --version
curl 7.58.0 (x86_64-pc-linux-gnu) libcurl/7.58.0 OpenSSL/1.1.0g zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3
Release-Date: 2018-01-24
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL

2.下載檔案

如果要下載檔案,可以將curl與-O或-o選項一起使用。 前者將使用與遠端位置相同的名稱將檔案儲存在當前工作目錄中,而後者允許您指定不同的檔名和/或位置。

$ curl -O https://www.linuxidc.com/index.htm # 另存為index.htm
$ curl -o linuxidc.com.htm  https://www.linuxidc.com/index.htm # 另存為linuxidc.com.htm

範例如下:

linuxidc@linuxidc:~/www.linuxidc.com$ curl -O https://www.linuxidc.com/index.htm  % Total    % Received % Xferd  Average Speed  Time    Time    Time  Current
                                Dload  Upload  Total  Spent    Left  Speed
100 45530    0 45530    0    0  186k      0 --:--:-- --:--:-- --:--:--  186k
linuxidc@linuxidc:~/www.linuxidc.com$ curl -o linuxidc.com.htm  https://www.linuxidc.com/index.htm
  % Total    % Received % Xferd  Average Speed  Time    Time    Time  Current
                                Dload  Upload  Total  Spent    Left  Speed
100 45607  100 45607    0    0  140k      0 --:--:-- --:--:-- --:--:--  139k
linuxidc@linuxidc:~/www.linuxidc.com$ ls
index.htm  linuxidc.com.htm

3.恢復中斷下載

如果下載因某種原因而中斷(例如,使用Ctrl + c),則可以非常輕鬆地恢復。 使用-C  - (破折號C,空格破折號)告訴curl從中斷處繼續下載。

$ curl -C - -O https://www.linuxidc.com/linuxidc.com.tar.gz

4.下載多個檔案

使用以下命令,您將分別從https://www.linuxidc.com和https://m.linuxidc.com一起下載aboutus和info.htm。

$ curl -O https://www.linuxidc.com/aboutus -O https://m.linuxidc.com/info.htm

5.從檔案下載URL

如果將curl與xargs結合使用,則可以從檔案中的URL列表中下載檔案。

$ xargs -n 1 curl -O < wenjianlisturls.txt

6.使用具有或不具有身份驗證的代理

如果您是在proxy.yourdomain.com上偵聽埠8080的代理伺服器,請執行此操作。

$ curl -x proxy.linuxidc.com:8080 -U user:password -O http://linuxidc.com/linuxidc.com.tar.gz

如果您的代理不需要身份驗證,您可以跳過-U user:password。

7.查詢HTTP檔頭

HTTP檔頭允許遠端Web伺服器傳送有關自身的其他資訊以及實際請求。 這為客戶提供了有關如何處理請求的詳細資訊。

要從網站查詢HTTP檔頭,請執行以下操作:

$ curl -I https://www.linuxidc.com

您可以在瀏覽器的開發人員工具中找到此資訊。

8.使用引數發出POST請求

以下命令將firstName和lastName引數及其對應值傳送到https://www.linuxidc.com/info.php。

$ curl --data "firstName=John&lastName=Doe" https://www.linuxidc.com/info.php

您可以使用此提示來模擬常規HTML表單的行為。

9.使用或不使用身份驗證從FTP伺服器下載檔案

如果遠端FTP伺服器需要在ftp://ftpserver上進行連線,則以下命令將在當前工作目錄中下載linuxidc.tar.gz。

$ curl -u username:password -O ftp://ftpserver/linuxidc.tar.gz

如果FTP伺服器允許匿名登入,您可以跳過-u username:password。

10.使用或不使用身份驗證將檔案上載到FTP伺服器

要使用curl將名為wodewenjian.tar.gz的本地檔案上載到ftp://ftpserver,請執行以下操作:

$ curl -u username:password -T wodewenjian.tar.gz ftp://ftpserver

11.儲存網站Cookie

當您瀏覽到https://www.linuxidc.com時,想要檢視哪些cookie下載到您的計算機?使用以下命令將它們儲存到linuxidccookies.txt。然後,您可以使用cat命令檢視該檔案。

$ curl --cookie-jar linuxidcookies.txt https://www.linuxidc.com/index.htm -O

12.傳送網站Cookie

您可以在後續請求中使用上一個提示中檢索到的cookie到同一站點。

$ curl --cookie cnncookies.txt https://www.linuxidc.com

13.限制下載率

為防止curl占用頻寬,您可以將下載速率限制為90KB/s,如下所示。

$ curl --limit-rate 90K https://www.linuxidc.com/linuxidc.com.gz -O

總結

在本文中,我們分享了curl起源的簡要歷史,並通過13個實際例子解釋了如何使用它。

你知道我們在本文中可能遺漏的任何其他curl命令嗎?歡迎在評論中與我們分享!此外,如果您有任何問題,請隨時告訴我們。我們期待您的回音!


IT145.com E-mail:sddin#qq.com