掌握 curl 命令:Linux 用戶指南

歡迎來到 Curl 的世界,這是一種多功能命令行工具,可讓您輕鬆地在服務器之間傳輸數據。 無論您是開發人員、系統管理員,還是只是好奇的用戶,Curl 都是您的武器庫中必不可少的工具。 使用 Curl,您可以執行範圍廣泛的任務,從下載文件到測試 API 等等。 在這篇博文中,我們將探索 Curl 的來龍去脈,包括它的一些最有用的功能以及如何使用它來快速高效地完成工作。 因此,無論您是經驗豐富的命令行專家還是命令行新手,讓我們深入了解 Curl 的世界,看看它能提供什麼!

目錄

什麼是捲曲命令?

Curl 是一個命令行工具,用於通過各種協議在服務器之間傳輸數據。 它是一種多功能工具,可用於通過 Internet 發送和接收數據,廣泛用於 Linux 和其他類 Unix 操作系統。

Curl 支持範圍廣泛的協議,包括 HTTP、HTTPS、FTP、SMTP、POP3、IMAP 等等。 它旨在與 URL 一起使用,並可用於對它們執行各種操作,包括發送 GET 和 POST 請求、設置標頭以及上傳和下載文件。

安裝捲曲

大多數 Linux 發行版通常預裝了 Curl,但如果沒有,您可以使用發行版的包管理器安裝它。 為了 example,要在基於 Debian 的發行版(如 Ubuntu)中安裝 Curl,您可以運行以下命令:

sudo apt install curl

同樣,對於像 CentOS 這樣基於 Red Hat 的發行版,您可以運行以下命令:

sudo dnf install curl

安裝後,您可以開始使用 Curl 通過 Internet 發送和接收數據。

基本語法

的基本語法 curl 命令如下:

curl [options] [URL]

這裡, options 是各種命令行選項,您可以使用它們來修改 curl 命令,和 URL 是您要連接的服務器的 URL。 如果您不指定任何選項, curl 將簡單地獲取 URL 的內容並將其顯示在命令行上。

檢索網頁

要使用檢索網頁 curl 命令,只需提供頁面的 URL 作為參數。 為了 example要檢索 Google 的主頁,可以使用以下命令:

curl https://www.google.com

這將獲取 Google 主頁的 HTML 內容並將其顯示在您的終端上。

將輸出保存到文件

如果你想保存輸出 curl 命令到一個文件,你可以使用 -o 或者 --output 選項後跟輸出文件的名稱。 為了 example將 Google 主頁保存到名為 google.html,您可以使用以下命令:

curl -o google.html https://www.google.com

這會將 Google 主頁的 HTML 內容保存到一個名為 google.html.

向服務器發送數據

Curl 還可用於使用各種 HTTP 方法(如 POST、PUT 和 DELETE)將數據發送到服務器。 要使用 POST 方法發送數據,您可以使用 -d 或者 --data 選項後跟要發送的數據。 為了 example發送數據 username=admin&password=admin12345 使用 POST 方法發送到服務器,您可以使用以下命令:

curl -d "username=admin&password=admin12345" https://example.com/login

這會將數據發送到 URL 處的服務器 https://your-domain.com/login 使用 POST 方法。

設置 HTTP 標頭

您可以使用以下方法設置各種 HTTP 標頭 curl 命令修改請求的行為。 要設置 HTTP 標頭,您可以使用 -H 或者 --header 選項後跟標頭名稱和值。 為了 example設置 User-Agent 標頭到 Mozilla/5.0 在請求中,您可以使用以下命令:

curl -H "User-Agent: Mozilla/5.0" https://www.your-domain.com

以下重定向

如果服務器返回重定向響應(狀態代碼 3xx), curl 默認情況下不會遵循重定向。 要啟用自動跟踪重定向,您可以使用 -L 或者 --location 選項。 為了 example要在檢索網頁時遵循重定向,您可以使用以下命令:

curl -L https://www.your-domain.com

使用 Curl 發送 POST 請求

Curl 也可用於向遠程服務器發送 POST 請求。 這是一個 example 命令向遠程服務器發送 POST 請求:

curl -X POST -d "name=Meilana&age=27" https://example.com

這個命令, -X POST 指定我們正在使用 HTTP POST 方法。 -d "name=Meilana&age=27" 指定我們要在 POST 請求中發送的數據。 https://example.com 是我們向其發送 POST 請求的服務器的 URL。

我們還可以使用 -H 在 POST 請求中設置標頭的選項。 為了 example設置 Content-Type 標頭到 application/json,我們可以使用以下命令:

curl -X POST -H "Content-Type: application/json" -d '{"name": "Meilana", "age": 27}' https://example.com

使用 PUT 上傳文件

Curl 也可用於通過 HTTP PUT 請求上傳文件。 這對於將文件傳輸到服務器很有用,例如上傳圖像或文檔。

上傳文件 curl, 使用 -T 選項後跟文件路徑:

curl -X PUT https://your-domain.com/upload -T ~/Documents/file.pdf

在這個 example,我們正在上傳 file.pdf 位於 ~/Documents/ 目錄到 https://your-domain.com/upload 網址使用 PUT 方法。

使用基本身份驗證進行身份驗證

Curl 支持 HTTP 基本身份驗證,這是一種使用用戶名和密碼的簡單身份驗證方案。 基本 Auth 憑據隨每個請求在 HTTP 標頭中發送。

要使用 Basic Auth 進行身份驗證,請使用 -u 選項後跟用冒號分隔的用戶名和密碼:

curl -u username:password https://your-domain.com/protected

在這個 example,我們正在使用用戶名進行身份驗證 username 和密碼 password 訪問 https://your-domain.com/protected 網址。

使用 SSL/TLS

Curl 也可以與 SSL/TLS 加密連接一起使用。 默認情況下, curl 使用系統的可信證書頒發機構驗證服務器的證書。 但是,也可以禁用證書驗證 -k 選項(不推薦用於生產)。

要使用 SSL/TLS,只需使用 https:// URL 方案而不是 https://:

curl https://example.com

使用代理

通過指定 curl 可以與代理服務器一起使用 --proxy 選項後跟代理服務器的 URL:

curl --proxy https://proxy.example.com https://example.com

在這個 example,我們正在使用代理服務器 https://proxy.example.com 訪問 https://example.com 網址。

捲曲命令選項

下面是 Curl 命令選項及其描述的詳細表格:

選項描述
-A, –user-agent <字串>設置自定義用戶代理字符串
-b, –cookie <名稱=數據>從字符串/文件發送 cookie
-c, –cookie-jar <文件名>操作後將cookie寫入文件
-d, –data <數據>HTTP POST 數據
-e, –referer 引薦網址
-F, –form <名稱=內容>HTTP 多部分 POST 數據
-H, –header <標題>要包含在請求中的額外標頭
-i, –包括在輸出中包含協議標頭
-我,-頭僅獲取標頭
-k, –不安全使用 SSL 時允許不安全的服務器連接
-L, –位置跟隨重定向
-o, –output <文件名>將輸出寫入文件而不是標準輸出
-O, –遠程名稱將輸出寫入與遠程文件同名的文件
-s, –沉默靜默模式,不輸出任何東西
-T, –upload-file <文件名>來自文件的 HTTP PUT 數據
-u, –user <用戶名:密碼>設置用於服務器身份驗證的用戶名和密碼
-v, –詳細詳細模式,輸出更多信息
-w, –write-out <格式>自定義輸出格式
-x, –代理 <[protocol://]主持人[:port]>使用指定的代理服務器
–cert <證書[:password]>客戶端證書文件和密碼
–壓縮啟用壓縮
–connect-timeout <秒數>等待連接的最長時間
-消化使用 HTTP 摘要認證
–不安全使用 SSL 時允許不安全的服務器連接
–ipv4僅使用 IPv4
–ipv6僅使用 IPv6
–keepalive-time 是時候保持連接了
–最大文件大小<字節>下載文件的最大大小
–max-redirs 要遵循的最大重定向數
–netrc使用 .netrc 文件中的憑據
–no-keepalive禁用保活
–ntlm使用 NTLM 身份驗證
–retry 失敗重試次數
–ssl使用 SSL
–tlsv1.0, –tlsv1.1, –tlsv1.2使用指定的 TLS 版本
–用戶代理 <字符串>設置自定義用戶代理字符串

請務必注意,這些選項可以單獨使用或組合使用,以針對特定需求自定義和微調 Curl 命令。 通過掌握這些選項,用戶可以執行範圍廣泛的 HTTP/HTTPS 請求,並在命令行上自動執行各種與 Web 相關的任務。