自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

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

curl是最流行的web請求工具,3大主流操作系統(tǒng)帶有curl,一些手機(jī)移動(dòng)端系統(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)。該命令無需用戶干預(yù)。

curl 提供了大量有用的功能,如支持代理、用戶授權(quán)、訪問FTP和TFTP上傳下載、HTTP請求、SSL 連接、攜帶Cookie、文件傳輸斷點(diǎn)續(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錯(cuò)誤時(shí)安靜地失?。ㄍ耆淮蛴″e(cuò)誤)
 -h, --help <category> 獲取命令幫助
 -i, --include 在輸出中包含協(xié)議響應(yīng)標(biāo)頭
 -o, --output <file> 輸出寫入到文件而不是 stdout
 -O, --remote-name 將輸出寫入名為遠(yuǎn)程文件的文件中
 -s, --安靜模式
 -T,--upload-file <file> 將本地文件傳輸?shù)侥康牡? -u, --user <user:password> 服務(wù)器用戶和密碼
 -A、--user-agent <name> 發(fā)送 User-Agent <name> 到服務(wù)器
 -v,--verbose 使操的作反饋更加詳盡顯示
 -V, --version 顯示版本號(hào)

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

man curl

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

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

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

curl的基本用法相當(dāng)簡單 —— 只需將 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 選項(xiàng)(作為對比,linux的另一個(gè)著名下載工具wget的參數(shù)是-O,大O,而curl的是小o)。

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

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

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

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

如果你想在 HTTP POST 或 PUT 請求中使用進(jìn)度表,你需要 使用 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àn)樵摬僮鞑粫?huì)向終端顯示任何響應(yīng)數(shù)據(jù)。

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

只需按以下方式傳遞 URL:

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

下載時(shí)顯示的進(jìn)度條會(huì)包含多個(gè)文件的下載進(jìn)度:

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

當(dāng)你用curl 請求一些網(wǎng)站的 URL 時(shí),可能會(huì)收到“已轉(zhuǎn)移”(301 Moved)或“永久重定向(301 Moved Permanently)”等提示。這通常發(fā)生在訪問的 URL 被重定向到其他 URL 時(shí)。例如,您打開一個(gè)網(wǎng)站(如 curl -I https://bing.com),它會(huì)顯示重定向到你所在國家/地區(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 命令行選項(xiàng)。

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

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

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

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

問題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
責(zé)任編輯:趙寧寧 來源: 深入理解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下載工具

2016-08-04 10:27:40

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

2024-08-26 11:23:41

kitexcall

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虛擬機(jī)

2009-08-11 09:26:06

點(diǎn)贊
收藏

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