Linux運維基礎之curl命令詳解

Linux運維基礎之curl命令詳解

Linux 中的 curl 命令是一個功能強大的工具,它可以利用HTTP、HTTPS、FTP和SFTP等多種協議,從網路伺服器傳輸資料或將資料傳輸到網路伺服器。

簡單地說,它是一種能幫助你直接從命令列通過網際網路傳輸資料的工具。例如,你可以使用 curl 從 URL 下載檔案,或將檔案上傳到伺服器。

這個命令列工具不僅可以傳輸檔案。你還可以使用 curl 從終端發出 HTTP 請求,如 GET 和 POST。這在測試或與網路服務和 API 互動時非常有用。有了 curl,你甚至可以在不開啟瀏覽器的情況下檢查網頁內容,因為它可以獲取並顯示原始資料。

以下是使用 curl 命令的幾種不同方法:

基本用法

使用 curl 最簡單的方法是鍵入 curl,然後輸入要訪問頁面的URL。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
curl http://example.com
curl http://example.com
curl http://example.com

當你在終端執行 curl http://example.com 命令時,它會向位於 http://example.com 的伺服器傳送一個 GET 請求。在終端上看到的輸出是伺服器對 GET 請求的響應,通常是網頁的 HTML 內容。

1. 將輸出儲存到檔案

預設情況下,curl 會輸出請求頁面的原始碼。如果想將輸出儲存到檔案,可以使用 -o-O 選項。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
curl -o output.html http://example.com
curl -o output.html http://example.com
curl -o output.html http://example.com

-o 選項允許你指定檔名,而 -O 將使用URL中的檔名。

2. 跟隨重定向

如果你請求的 URL 重定向到了另一個頁面,除非使用 -L 選 項,否則 curl 不會跟隨重定向。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
curl -L http://example.com
curl -L http://example.com
curl -L http://example.com

3. 傳送 POST 請求

你可以使用 curl 傳送 POST 請求。這通常用於提交表單。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
curl -d "param1=value1¶m2=value2" -X POST http://example.com/form
curl -d "param1=value1¶m2=value2" -X POST http://example.com/form
curl -d "param1=value1¶m2=value2" -X POST http://example.com/form

-d 選項告訴 curl 你要傳送POST資料, -X 選項指定了要使用的請求方法。

4. 傳送帶引數的 GET 請求

通過在 URL 中新增引數,可以傳送帶引數的 GET 請求。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
curl http://example.com/search?query=example
curl http://example.com/search?query=example
curl http://example.com/search?query=example

5. 傳送標頭

標頭您可以使用 -H 選項在請求中新增標頭。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
curl -H "Accept: application/json" http://example.com/api
curl -H "Accept: application/json" http://example.com/api
curl -H "Accept: application/json" http://example.com/api

6. 使用 Cookie

你可以用 -b 選項告訴 curl 傳送 cookie,用 -c 選項告訴 curl 儲存cookie。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
curl -b "name=value" -c cookies.txt http://example.com
curl -b "name=value" -c cookies.txt http://example.com
curl -b "name=value" -c cookies.txt http://example.com

7. 上傳檔案

使用 -F 選項,你可以用 curl 向伺服器上傳檔案。這會傳送一個 POST 請求,並將 Content-Type 設定為 multipart/form-data

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
curl -F "file=@path/to/local/file" http://example.com/upload
curl -F "file=@path/to/local/file" http://example.com/upload
curl -F "file=@path/to/local/file" http://example.com/upload

8. 下載檔案

你可以使用 curl 通過 FTP、SFTP、HTTP 和許多其他協議下載檔案。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
curl -O ftp://example.com/pub/file.zip
curl -O ftp://example.com/pub/file.zip
curl -O ftp://example.com/pub/file.zip

9. 身份驗證

如果需要進行身份驗證,可以使用 -u 選項,然後輸入使用者名稱和密碼,並用 :(冒號)分隔。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
curl -u username:password http://example.com
curl -u username:password http://example.com
curl -u username:password http://example.com

更多 Linux 命令

下面羅列了最常見的一些 Linux 命令,您可以根據自己的需要查閱對應命令的詳細解析:

目錄操作 rmdir · cd · pwd · exa · ls
檔案操作 cat · cp · dd · less · touch · ln · rename · more · head
檔案系統操作 chown · mkfs · locate
網路 ping · curl · wget · iptables · mtr
搜尋和文字處理 find · grep · sed · whatis · ripgrep · fd · tldr
系統資訊和管理 env · history · top · who · htop · glances · lsof
使用者和會話管理 screen · su · sudo · open

此外,我們還整理 Linux 命令列大全,以幫助大家全面深入地學習 Linux。

評論留言