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&param2=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来查看完整的手册页。

posted @ 2024-12-18 10:03  guanyubo  阅读(353)  评论(0编辑  收藏  举报