Linux 中的 cURL 指令及 30 個實際範例

Linux 中的 cURL 命令是一個強大的工具,用於使用各種協定(包括 HTTP、HTTPS、FTP 等)向伺服器傳輸資料或從伺服器傳輸資料。它通常用於自動化 Web 請求、測試 API 以及從 Internet 下載檔案。 cURL 用途廣泛,可以處理各種任務,從簡單的文件下載到複雜的多部分錶單提交。

在本指南中,我們將探討 30 個在 Linux 中使用 cURL 指令的實際範例。這些範例將涵蓋常見用例,例如下載檔案、向 API 發送資料、處理身份驗證等,以展示 cURL 對於各種任務的靈活性和強大功能。

cURL 指令的語法

在我們繼續使用 cURL 指令演示 30 個範例之前,最好先了解其語法:

curl [options] [URL]

在這個語法中:

  • options:這些是修改 cURL 行為的參數。
  • URL:這是您要與之互動的文件或資源的地址。

cURL 指令選項

cURL 提供了許多選項,可讓您自訂其行為。以下是一些最常用的選項:

  • -O:從指定的 URL 下載檔案。
  • -I:從伺服器取得 HTTP 標頭。
  • -u:指定伺服器驗證的使用者憑證。
  • -d:將POST請求中指定的資料傳送到伺服器。
  • -x:指定用於請求的代理位址。

Linux 中 cURL 指令的 30 個範例

現在,讓我們深入研究一些使用 cURL 命令的實際範例。每個範例都會以解釋開頭,然後是輸出示範。

範例 1:從 URL 取得數據

cURL 最基本的用途是取得網頁內容。您可以這樣做:

curl https://www.example.com

此命令取得 www.example.com 網頁的 HTML 內容。

範例 2:下載文件

cURL 也可用於從 Internet 下載檔案。這是一個例子:

curl -O https://www.example.com/file.txt

此命令從 www.example.com 下載檔案 file.txt 並將其儲存在目前目錄中。

範例 3:發送 POST 請求

您可以使用 cURL 將 POST 請求傳送到伺服器。方法如下:

curl -d "param1=value1&param2=value2" -X POST http://www.example.com

此指令使用資料 param1=value1¶m2=value2 向 www.example.com 發送 HTTP POST 請求。

範例 4:取得 HTTP 標頭

如果要從伺服器取得 HTTP 標頭,可以使用 -I 選項。這是一個例子:

curl -I https://www.example.com

此命令從 www.example.com 取得 HTTP 標頭。

範例 5:使用代理

如果需要使用代理,請使用 -x 選項指定。方法如下:

curl -x http://proxy.example.com:8080 https://www.example.com

此命令透過位於 proxy.example.com:8080 的代理將請求傳送至 www.example.com。

範例 6:發送 Cookie

您可以使用 -b 選項將 cookie 與您的請求一起傳送。這是一個例子:

curl -b "name=value" https://www.example.com

此命令將名稱=值的 cookie 傳送至 www.example.com。

範例 7:發送用戶代理

網站通常使用使用者代理程式來提供適合客戶端瀏覽器的內容。若要向用戶代理程式發送您的請求,請使用 -A 選項:

curl -A "Mozilla/5.0" https://www.example.com

此命令向 www.example.com 發送請求,並將使用者代理設定為 Mozilla/5.0。

範例 8:遵循重定向

某些 URL 重新導向到其他 URL。若要遵循這些重定向,請使用 -L 選項:

curl -L https://www.example.com

此命令遵循來自 www.example.com 的任何重定向。

範例 9:將輸出儲存到文件

若要將 cURL 指令的輸出儲存到檔案中,請使用 -o 選項:

curl -o output.html https://www.example.com

此命令將 www.example.com 的輸出儲存到 output.html。

範例10:使用FTP上傳文件

cURL 可以使用 FTP 將檔案上傳到伺服器。方法如下:

curl -T file.txt ftp://ftp.example.com --user username:password

此命令使用提供的使用者名稱和密碼將 file.txt 上傳到 ftp.example.com。

範例 11:恢復下載

如果下載中斷,您可以使用 -C – 選項恢復下載:

curl -C - -O https://www.example.com/file.txt

此命令恢復從 www.example.com 下載 file.txt。

範例 12:下載多個文件

若要下載多個文件,請指定多個 URL:

curl -O https://www.example.com/file1.txt -O https://www.example.com/file2.txt

此命令從 www.example.com 下載 file1.txt 和 file2.txt。

範例 13:發送 DELETE 請求

若要傳送 DELETE 請求,請使用 -X DELETE 選項:

curl -X DELETE https://www.example.com/resource

此命令向 URL www.example.com/resource 發送 DELETE 請求。

範例 14:詳細輸出

有關請求和回應的詳細信息,請使用 -v 選項:

curl -v https://www.example.com

此命令為 www.example.com 的請求提供詳細輸出。

範例 15:靜默模式

若要禁止顯示進度表和錯誤訊息,請使用 -s 選項:

curl -s https://www.example.com

此命令以靜默模式取得 www.example.com 的內容。

範例 16:顯示下載進度

若要以更易讀的格式顯示下載進度,請使用 # 選項:

curl -# -O https://www.example.com/file.txt

此命令從 www.example.com 下載 file.txt 並將進度顯示為進度條。

範例 17:發送 JSON 數據

若要在 POST 請求中傳送 JSON 數據,請使用 -H 選項設定內容類型:

curl -d '{"key1":"value1", "key2":"value2"}' -H "Content-Type: application/json" -X POST https://www.example.com

此命令將包含 JSON 資料的 POST 請求傳送至 www.example.com。

範例 18:將 cURL 與 API 結合使用

cURL 通常用於與 API 互動。這是一個例子:

curl -H "Authorization: Bearer YOUR_TOKEN" https://api.example.com

此命令向 https://api.example.com 發送帶有授權標頭的請求。

範例 19:在背景下載文件

若要在背景下載文件,請使用 -O 選項並在末尾加上“&”號:

curl -O https://www.example.com/file.txt &

此命令在背景從 www.example.com 下載 file.txt。

範例 20:從文件發送數據

要在 POST 請求中從文件發送數據,請使用 @ 符號:

curl -d @data.txt -X POST https://www.example.com

此命令將包含 data.txt 中的資料的 POST 請求傳送到 www.example.com。

範例 21:從 FTP 伺服器取得內容

cURL 可用於從 FTP 伺服器取得內容。方法如下:

curl ftp://ftp.example.com/file.txt --user username:password

此命令使用提供的使用者名稱和密碼從 ftp.example.com 取得 file.txt。

範例 22:從受密碼保護的網站取得內容

若要從受密碼保護的網站取得內容,請使用 -u 選項:

curl -u username:password https://www.example.com

此命令使用提供的使用者名稱和密碼從 www.example.com 取得內容。

範例 23:使用 SSL 從網站取得內容

若要使用 SSL 從網站取得內容,請使用 -k 選項:

curl -k https://www.example.com

此命令從 www.example.com 取得內容,忽略任何 SSL 憑證警告。

範例 24:發送 PUT 請求

若要傳送 PUT 請求,請使用 -X PUT 選項:

curl -X PUT -d "data" https://www.example.com/resource

此命令將帶有資料「data」的 PUT 請求傳送至 www.example.com/resource。

範例 25:取得響應標頭

若要僅取得回應標頭,請使用 -I 選項:

curl -I https://www.example.com

此命令僅從 www.example.com 取得回應標頭。

範例 26:使用 Cookie 從網站取得內容

若要從有 cookie 的網站取得內容,請使用 -b 選項:

curl -b cookies.txt https://www.example.com

此命令使用 cookies.txt 中儲存的 cookie 從 www.example.com 取得內容。

範例 27:從具有自訂標頭的網站取得內容

若要從具有自訂標頭的網站取得內容,請使用 -H 選項:

curl -H "Custom-Header: Value" https://www.example.com

範例 28:從超時的網站取得內容

若要從超時的網站取得內容,請使用 -m 選項:

curl -m 10 https://www.example.com

此命令從 www.example.com 取得內容,逾時時間為 10 秒。

範例 29:以詳細模式從網站取得內容

若要以詳細模式從網站取得內容,請使用 -v 選項:

curl -v https://www.example.com

此命令以詳細模式從 www.example.com 取得內容,顯示有關請求和回應的詳細資訊。

範例 30:從網站取得內容並顯示進度表

若要從網站取得內容並顯示進度表,請使用 -# 選項:

curl -# https://www.example.com

此命令從 www.example.com 取得內容並顯示進度表。

結論

透過這些實際範例掌握 cURL 命令可以顯著增強您與 Web 服務互動、自動化資料傳輸和解決網路問題的能力。定期練習不同的 cURL 選項和命令將加深您的理解,並使您能夠在 Linux 工作流程中充分發揮其潛力。享受 cURL 為您的命令列工具包帶來的多功能性和效率。

Joshua James
跟我來
Joshua James 的最新帖子 (看全部)

發佈留言