動態

詳情 返回 返回

Shell中curl用法大全 - 動態 詳情

curl命令在shell中可是一個非常強大的工具,主要用來傳輸數據,它支持多種協議,包括HTTP、HTTPS、FTP、FTPS等等。其功能非常豐富,用法也相當多樣,這裏詳細的分析一下curl命令的各種使用方式。

基礎用法

  1. 下載文件

`curl http://example.com/file.txt` 

這條命令會將URL指向的數據輸出到標準輸出,通常是你的終端。
  1. 保存下載的文件


`curl -o filename.txt http://example.com/file.txt` 

使用`-o`選項後跟文件名,可以將下載的數據保存到指定的文件中。
  1. 發送POST請求


`curl -d "param1=value1&param2=value2" http://example.com/post` 

`-d`選項用於發送POST數據。
  1. 發送GET請求


`curl -G -d "param1=value1&param2=value2" http://example.com/get` 

`-G`選項使得`curl`把數據附加在URL後面,使用GET方法來發送請求。
  1. 添加HTTP頭


`curl -H "X-Custom-Header: value" http://example.com` 

`-H`選項用於添加一個自定義的HTTP頭。

進階用法

  1. 用户認證


`curl -u username:password http://example.com` 

`-u`選項用於提供需要認證的網站的用户名和密碼。
  1. 從文件中讀取POST數據


`curl -d @filename http://example.com/post` 

`-d`選項後面使用`@`符號可以從文件中讀取要發送的數據。
  1. 指定請求方法


`curl -X POST http://example.com` 

`-X`選項用於指定使用的HTTP方法。
  1. 傳輸文件(例如FTP)


`curl -T myfile.txt ftp://ftp.example.com/remote/path/` 

`-T`選項用於上傳文件到FTP服務器。
  1. 跟蹤重定向


`curl -L http://example.com` 

`-L`選項讓curl跟蹤服務器的重定向。

安全相關

  1. 使用HTTPS協議


`curl -E mycert.pem https://secure.example.com` 

`-E`選項用於指定一個證書,用於HTTPS的加密連接。
  1. 禁用證書驗證


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

`-k`或`--insecure`選項讓curl不去驗證SSL證書的有效性。

靜默模式

  1. 靜默/安靜模式


`curl -s http://example.com` 

`-s`或`--silent`選項讓`curl`在執行時不顯示進度條和錯誤信息,這在腳本中非常有用,可以避免輸出過多的信息。

安全選項

  1. 忽略SSL證書驗證


`curl -k http://example.com` 

`-k`或`--insecure`允許`curl`執行“不安全”的SSL連接和數據傳輸,不驗證對方的證書。

輸出控制

  1. 顯示頭信息


`curl -i http://example.com` 

`-i`或`--include`用於在輸出中包括HTTP響應頭。
  1. 僅輸出響應體


`curl -s -o /dev/null -D - http://example.com` 

使用`-D -`選項可以僅輸出響應頭到標準輸出,結合`-o /dev/null`則僅顯示響應頭,不顯示響應體。

數據處理

  1. 發送JSON數據


`curl -H "Content-Type: application/json" -d '{"key1":"value1", "key2":"value2"}' http://example.com/post` 

通過`-H`添加`Content-Type`為`application/json`並使用`-d`發送JSON格式的數據。
  1. 從標準輸入讀取數據發送


`cat data.txt | curl -d @- http://example.com/post` 

使用`-d @-`從標準輸入讀取數據。

文件下載和上傳

  1. 斷點續傳


`curl -C - -o file.part http://example.com/bigfile.zip` 

`-C -`指示`curl`自動尋找本地文件大小,並從上次中斷處繼續下載。
  1. 並行下載


`curl -Z -O http://example.com/file1.zip -O http://example.com/file2.zip` 

`-Z`或`--parallel`可以並行處理多個文件下載。

調試和追蹤

  1. 詳細模式


`curl -v http://example.com` 

`-v`或`--verbose`會顯示請求和響應的所有信息,包括髮送的頭、請求數據、連接信息等。
  1. 跟蹤數據包


`curl --trace output.txt http://example.com` 

`--trace`選項輸出很詳細的調試信息,這些信息被寫入到指定的文件中,包括二進制數據。

其他有用的選項

  1. 設置連接超時


`curl --connect-timeout 10 http://example.com` 

`--connect-timeout`選項用於設置連接超時的秒數。
  1. 顯示詳細的信息


`curl -v http://example.com` 

`-v`或`--verbose`選項用於打印詳細的信息,有助於調試。
  1. 保存和讀取Cookie


`curl -c cookies.txt http://example.com
curl -b cookies.txt http://example.com` 

`-c`選項用於保存響應中的cookie到文件,`-b`選項用於在請求中包含這些cookie。

這些是curl的一些常用命令和技巧,當然curl的功能遠不止這些。它還支持代理、速率限制、時間條件請求等高級功能,你可以通過閲讀curl的man頁面(man curl)或在線文檔來獲取更多詳細信息。希望這些信息對你有用!

Add a new 評論

Some HTML is okay.