如何在 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”命令都一定會拓寬您的視野並創造新的機會。