如何在 Linux 中使用“Curl”命令?


“curl”命令是 Linux 環境中一個多功能的工具,它能夠利用各種協議(包括 HTTP、FTP 和 SMTP)在伺服器之間傳輸資料。此命令列實用程式以其健壯性和多功能性而聞名,因為它可以用於各種任務,包括髮送 HTTP 請求、檢索檔案和上傳資料。加入我們,深入瞭解在 Linux 中使用“curl”命令的基礎知識,瞭解其各種選項和應用。

1. 檢查 Curl 版本

在 Linux 作業系統中,“curl --version”命令顯示有關裝置上安裝的“curl”工具版本的關鍵資訊。使用“--version”標誌,此命令顯示版本號、構建日期以及其他有關“curl”軟體的相關詳細資訊。此資訊在診斷問題或確認“curl”與其他軟體或指令碼的相容性時非常有價值。

輸入

$ curl -version

輸出

curl 7.72.0 (x86_64-pc-linux-gnu) libcurl/7.72.0 OpenSSL/1.1.1g zlib/1.2.11 libidn2/2.3.0 libpsl/0.21.0 (+libidn2/2.3.0) nghttp2/1.41.0 librtmp/2.3
Release-Date: 2021-02-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 GSS-API HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM NTLM_WB PSL RTSP-CLIENT SSPI TLS-SRP UnixSockets 

2. 使用 Curl 命令下載檔案

“curl -O”Linux 命令允許您從指定的 URL 下載檔案並保留其原始名稱。“-O”選項指示 curl 在將遠端檔案儲存到本地計算機時保留其原始名稱。此功能對於從伺服器下載檔案並保持其名稱不變非常方便。例如,如果您想從“http://example.com/file.txt”下載檔案“file.txt”,您只需執行“curl -O http://example.com/file.txt”,檔案將以相同的名稱“file.txt”儲存在您的本地計算機上。

在 Linux 中執行“curl -O”的結果取決於要下載的 URL。如果 URL 正確且檔案存在,curl 將啟動下載並將檔案儲存在當前目錄中,保留其來自遠端伺服器的原始名稱。終端將顯示下載進度,包括檔案總大小和已檢索資料量等詳細資訊。

“curl -O http://example.com/file.txt”命令可以作為此輸出的示例,其中下載的檔案將作為“file.txt”儲存在當前工作目錄中。

輸入

$ curl -O

輸出

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   100    0     0  100   100      0      0  0:00:01  0:00:01 --:--:--     0

3. 使用 Curl 命令下載多個檔案

透過執行以下命令,您可以同時從 http://example1.com 和 http://example2.com 分別獲取 file1.html 和 file2.html。

$ curl -O http://file1.com/example1.html -O http://example2.com/file2.html 

4. 使用 Curl 從檔案下載 URL

“xargs -n 1 curl -O < urls.txt”命令在 Linux 中有效地下載多個檔案。“urls.txt”檔案包含 URL 列表,“xargs”將每一行作為引數傳遞給“curl”,後者使用其原始名稱在當前工作目錄中下載檔案。“-n 1”選項限制傳遞的行數,“-O”儲存檔案。該命令顯示下載進度併成功檢索所有檔案。簡而言之,此命令是在 Linux 中使用“curl”和“xargs”下載多個檔案的簡單方法。

輸入

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

輸出

% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 56100 0 56100 0 0 157700 0 --:--:-- --:--:-- --:--:-- 157700
100 52412 0 52412 0 0 248300 0 --:--:-- --:--:-- --:--:-- 248300
100 48976 0 48976 0 0 157700 0 --:--:-- --:--:-- --:--:-- 157700
...

5. 查詢 HTTP 標頭

在 Linux 環境中,“$ curl -I www.example.com”命令用於獲取位於“www.example.com”的網站的 HTTP 標頭。“curl”命令中的“-I”開關僅用於檢索 HTTP 標頭,不包括網站的實際內容。這些標頭包括網站狀態程式碼、日期、伺服器和內容型別等詳細資訊,使其可用於網站狀態檢查、除錯和了解網站設定等活動。

輸入

$ curl -I www.example.com

輸出

HTTP/1.1 200 OK
Date: Tue, 07 Feb 2023 00:23:51 GMT
Server: Apache
Last-Modified: Mon, 06 Feb 2022 08:20:07 GMT
ETag: "3d-5a5e5c5dd5e5b"
Accept-Ranges: bytes
Content-Length: 951
Connection: close
Content-Type: text/html; charset=UTF-8

6. 使用 Curl 命令帶引數進行 POST 請求

“$ curl --data”Linux 命令用於將資料傳輸到指定的 URL。在提供的示例中,傳輸的資料包含兩個引數,“firstName”設定為“John”,“lastName”設定為“Doe”。資料透過 HTTP POST 方法傳送到 URL“https://exampledomain.com/file.php”。此命令通常用於將資訊提交到網站或 Web 應用程式以進行處理。“--data”標誌可以指定需要傳輸的資料,“curl”命令啟動傳輸。

輸入

$ curl --data "firstName=John&lastName=Doe" https://exampledomain.com/file.php

輸出

這方面的輸出基於特定的伺服器和從 HTTP post 方法傳送的資料,它可能是如下所示的純文字

My name is John Doe

7. 使用或不使用身份驗證從 FTP 伺服器上傳和下載檔案

使用正確的命令可以輕鬆地從遠端 FTP 伺服器獲取檔案。在 FTP 伺服器可在 ftp://server 訪問的情況下,以下終端命令將下載檔案“file.tar.gz”並將其放置在當前工作目錄中。

$ curl -u username:password -O ftp://yourftpserver/yourfile.tar.gz 

可以使用以下 curl 命令將名為“file.tar.gz”的檔案從本地計算機上傳到位於“ftp://server”的 FTP 伺服器

$ curl -u username:password -T mylocalfile.tar.gz ftp://yourftpserver

8. 使用 Curl 命令儲存網站 Cookie

要檢視在瀏覽到 https://www.example.com 時儲存在計算機上的 Cookie,請使用以下 curl 命令將其下載到名為“examplecookies.txt”的檔案中。然後,您可以簡單地使用 cat 命令顯示檔案的內容。

輸入

$ curl --cookie-jar examplecookies.txt https://www.example.com/file.html -O

輸出

 % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1701k  100 1701k    0     0   951k      0  0:00:01  0:00:01 --:--:--  951k

9. 使用 Curl 命令修改名稱解析

作為 Web 開發人員,如果您希望在將“demodomain.com”的本地版本釋出到公眾之前預覽它,您可以使用 curl 將對“http://www.demodomain.com”的請求路由到您的 localhost,方法如下:

$ curl --resolve www.demodomain.com:80:localhost http://www.demodomain.com/

10. 使用 Curl 命令限制下載速率

透過以下方法將下載速度限制為 200 KB/s,防止 curl 消耗過多的頻寬。

$ curl --limit-rate 200K http://demodomain.com/file.tar.gz -O

結論

總而言之,“curl”命令是 Linux 環境中的一個重要工具,它允許使用各種協議在伺服器之間無縫傳輸資料。從傳送 HTTP 請求到下載檔案和上傳資料,此多功能命令提供了大量機會來簡化您與基於 Web 的資訊的工作。掌握“curl”命令及其不同選項是一項寶貴的財富,可以提高您在 Linux 環境中操作資料的能力。無論您是經驗豐富的 Linux 使用者還是剛剛開始您的旅程,花時間學習“curl”命令都一定會拓寬您的視野並創造新的機會。

更新於:2023-07-26

3K+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告