linux curl命令详解
curl
是一个非常强大的命令行工具,用于在Linux、macOS和其他支持的平台上使用各种协议进行数据传输。它最常用于从服务器下载或上传文件,但也可以用来测试API端点等。curl
支持HTTP、HTTPS、FTP、FTPS、SCP、SFTP、TFTP、DICT、TELNET、LDAP或FILE等协议。
以下是 curl
的一些常用选项和用法:
基本语法
curl [options] [URL]
常见选项
-O
:将远程文件下载到本地,并保存为原始文件名。-o <file>
:将远程文件下载到本地,并保存为指定的文件名。-L
:如果服务器报告永久重定向(代码301/302),则自动跟随新的地址。-I
:仅获取文档信息(头信息),不下载内容。-X <command>
或--request <command>
:指定请求方法(如GET、POST、PUT、DELETE等)。-d @<filename>
或-d "string"
或--data <data>
:使用POST方法发送数据。可以是字符串或者文件内容。-H "Header: Value"
或--header "Header: Value"
:自定义HTTP头信息。-u <user>:<password>
:提供服务器认证所需的用户名和密码。-c <cookie-jar-file>
:保存响应中的cookies到指定文件。-b <cookie-file>
:读取cookies并随请求一起发送。-A "<user-agent-string>"
或--user-agent "<user-agent-string>"
:设置User-Agent字符串。-v
:显示详细输出,包括请求和响应头信息,对于调试很有帮助。-k
或--insecure
:允许curl
执行不安全的操作,比如忽略SSL证书错误。
示例
-
下载文件并保存为原文件名:
curl -O http://example.com/file.zip
-
下载文件并指定保存的文件名:
curl -o myfile.zip http://example.com/file.zip
-
跟随重定向下载文件:
curl -OL http://example.com/file.zip
-
发送POST请求并包含数据:
curl -X POST -d "param1=value1¶m2=value2" http://example.com/script.php
-
使用自定义HTTP头发送请求:
curl -H "Content-Type: application/json" -X POST -d '{"key":"value"}' http://example.com/api/resource
-
使用用户名和密码进行基本认证:
curl -u username:password http://example.com/protected/
这些只是curl
功能的一部分。要了解更多关于curl
的信息,可以在终端中输入man curl
来查看完整的手册页。
多用组合、少用继承
基于接口而非实现进行编程