偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Linux curl 命令有哪些常見用法,命令行下載文件和發(fā)起網(wǎng)頁請求的YYDS工具

系統(tǒng) Linux
Curl是最流行的web請求工具,三大主流操作系統(tǒng)帶有curl,一些手機移動端系統(tǒng)也提供了curl,通過命令行下載文件和發(fā)起網(wǎng)頁請求,簡單好用YYDS!

Linux curl 命令有哪些常見用法?

curl是最流行的web請求工具,3大主流操作系統(tǒng)帶有curl,一些手機移動端系統(tǒng)也提供了curl,通過命令行下載文件和發(fā)起網(wǎng)頁請求,簡單好用YYDS!

curl 是一種從服務(wù)器傳輸數(shù)據(jù)或向服務(wù)器傳輸數(shù)據(jù)的工具,使用的協(xié)議包括 協(xié)議(DICT、FILE、FTP、FTPS、GOPHER、HTTP、HTTPS、IMAP、 imaps、ldap、ldaps、pop3、pop3s、rtmp、rtsp、scp、sftp、smtp、smtps、 TELNET 和 TFTP)。該命令無需用戶干預。

curl 提供了大量有用的功能,如支持代理、用戶授權(quán)、訪問FTP和TFTP上傳下載、HTTP請求、SSL 連接、攜帶Cookie、文件傳輸斷點續(xù)傳、Metalink請求等。正如你在下文中看到的,curl支持的功能可謂大而全。

curl還提供了libcurl,以庫的形式封裝了所有與傳輸相關(guān)的功能。

curl 的用法規(guī)則

curl 命令允許您在 Linux 中通過命令行下載和上傳數(shù)據(jù)。其語法如下:

curl [options] [URL...]

可通過curl --help 命令,就像大部分其他命令的--help那樣,可以自助查詢該命令的常見參數(shù):

 -d, --data <data> HTTP POST 數(shù)據(jù)
 -f, --fail HTTP錯誤時安靜地失?。ㄍ耆淮蛴″e誤)
 -h, --help <category> 獲取命令幫助
 -i, --include 在輸出中包含協(xié)議響應(yīng)標頭
 -o, --output <file> 輸出寫入到文件而不是 stdout
 -O, --remote-name 將輸出寫入名為遠程文件的文件中
 -s, --安靜模式
 -T,--upload-file <file> 將本地文件傳輸?shù)侥康牡? -u, --user <user:password> 服務(wù)器用戶和密碼
 -A、--user-agent <name> 發(fā)送 User-Agent <name> 到服務(wù)器
 -v,--verbose 使操的作反饋更加詳盡顯示
 -V, --version 顯示版本號

--help值顯示部分參數(shù)。curl還支持很多高級功能,Linux下可通過:

man curl

命令查看完整的幫助文檔對curl所有參數(shù)的解釋(例如跟隨重定向的-L參數(shù),只在man curl 的完整幫助信息中有顯示 )。

通過下面的例子,你可以更直觀地了解curl的常見功能是如何工作的。

問題1:curl 命令如何工作?

curl的基本用法相當簡單 —— 只需將 URL 作為輸入傳遞給 curl 命令,然后將輸出重定向到文件即可。

例如,將下載的文件數(shù)據(jù)保存為本地的ubuntu2204-64.torrent文件:

curl https://mirrors.aliyun.com/ubuntu-releases/23.04/ubuntu-23.04-desktop-amd64.iso.torrent > ubuntu2204-64.torrent

請注意,您也可以在此處使用 -o 選項(作為對比,linux的另一個著名下載工具wget的參數(shù)是-O,大O,而curl的是小o)。

-o, --output <file>
Write output to <file> instead of stdout.

回到我們的示例,當數(shù)據(jù)下載到系統(tǒng)上的ubuntu2204-64.torrent文件中時,在命令行上生成了以下輸出:

在操作過程中,curl 通常會顯示進度表,顯示傳輸?shù)臄?shù)據(jù)量、傳輸速度和預計剩余時間等。

默認情況下,curl 會將這些數(shù)據(jù)顯示到終端。但如果你調(diào)用curl進行文件下載或顯示下載內(nèi)容到終端, 就會不顯示進度表,以免把進度表和響應(yīng)數(shù)據(jù)混在一起,擾亂輸出。

如果你想在 HTTP POST 或 PUT 請求中使用進度表,你需要 使用 shell 重定向 (>)、-o [文件]或其他類似方法,就可以將輸出和顯示分離。例如:

$ curl https://linuxlibs.com > linuxlibs.html
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  2443  100  2443    0     0  16981      0 --:--:-- --:--:-- --:--:-- 17083

FTP 上傳的情況則不同,因為該操作不會向終端顯示任何響應(yīng)數(shù)據(jù)。

問題2:如何使用 curl 下載多個文件?

只需按以下方式傳遞 URL:

curl -O [URL1] -O [URL2] -O [URL3] ...

下載時顯示的進度條會包含多個文件的下載進度:

問題3:如何解決請求地址轉(zhuǎn)移/重定向問題?

當你用curl 請求一些網(wǎng)站的 URL 時,可能會收到“已轉(zhuǎn)移”(301 Moved)或“永久重定向(301 Moved Permanently)”等提示。這通常發(fā)生在訪問的 URL 被重定向到其他 URL 時。例如,您打開一個網(wǎng)站(如 curl -I https://bing.com),它會顯示重定向到你所在國家/地區(qū)的 URL(如 https://cn.bing.com)。

$ curl -I  https://bing.com

HTTP/2 301
content-length: 0
location: https://cn.bing.com/
accept-ch: Sec-CH-UA-Arch, …… Sec-CH-UA-Platform-Version
x-msedge-ref: Ref A: ……
date: …… Dec 2023 ……

如果希望 curl 跟隨重定向,請改用 -L 命令行選項。

問題4:curl在下載文件中斷后,如何繼續(xù)從中斷點恢復下載(斷點續(xù)傳)?

有時,下載會在兩者之間中斷。為了節(jié)省時間和數(shù)據(jù),你希望再次嘗試時,能從中斷的點開始。Curl 允許你使用 -C 命令行選項來執(zhí)行此操作。例如:

curl -C - -O http://releases.ubuntu.com/18.04/ubuntu-18.04-desktop-amd64.iso

圖顯示了 curl 命令在中斷后恢復下載。

問題5:curl如何模擬瀏覽器發(fā)起下載請求,將請求結(jié)果保存到linuxlibs.index.html文件:

curl --user-agent "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 Edg/118.0.2088.61"  -o linuxlibs.index.html https://linuxlibs.com
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 36960    0 36960    0     0  13719      0 --:--:--  0:00:02 --:--:-- 13719
責任編輯:趙寧寧 來源: 深入理解Linux
相關(guān)推薦

2017-03-03 10:10:15

2015-12-16 16:01:13

2021-04-20 11:25:38

Linux命令文件

2010-02-04 15:17:48

Linux wget

2010-06-07 14:45:37

Linux下載工具

2024-08-26 11:23:41

kitexcall

2016-08-04 10:27:40

Linux文件下載網(wǎng)站瀏覽工具

2024-04-24 14:43:40

Linux命令

2010-07-20 14:27:46

Perl命令行

2017-06-15 10:32:56

OracleDBV命令行工具

2010-07-15 12:45:30

Perl命令行

2018-11-08 14:50:14

2010-07-15 10:47:22

Perl命令行

2019-08-27 10:32:01

Linux操作系統(tǒng)Windows

2020-12-10 16:16:08

工具代碼開發(fā)

2020-12-11 06:44:16

命令行工具開發(fā)

2022-04-11 06:03:24

FdupesLinux命令行工具

2021-05-20 12:16:17

Linux命令Axel

2010-09-25 09:10:38

JAVA虛擬機

2010-10-12 17:13:43

MySQL命令行
點贊
收藏

51CTO技術(shù)棧公眾號