2021-05-12 14:32:11
在Linux中使用curl命令引數詳解
早在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命令嗎?歡迎在評論中與我們分享!此外,如果您有任何問題,請隨時告訴我們。我們期待您的回音!
相關文章