curl7 命令行使用
HTTP 协议
访问 IPv6 地址 curl http://[fe80::79c8:7bd1:cf97:aef3%8]:80 使用代理 curl --socks5-hostname 127.0.0.1:19996 http://www.google.com/ curl -x socks5://127.0.0.1:19996 http://www.google.com/ retry 设置重试次数 curl --url http://www.google.com/ --retry 3 -X 指定请求方法 curl -X post localhost:7777/ping 为特定主机和端口对提供自定义地址 curl --resolve example.com:7777:127.0.0.1 http://example.com:7777/ping -L 跟随重定向, 用 Location: 标头和 3XX 响应代码表示 curl -L 127.0.0.1:7777/ping -v 打印请求的详细信息,与之相反的是 -s curl -v http://example.com 输出比-v还详细的信息 curl --trace dump.txt http://example.com -w 写入自定义信息, https://everything.curl.dev/usingcurl/verbose/writeout curl -w "\nType: %{content_type}\nCode: %{response_code}\n" http://127.0.0.1:7777/ping ok Type: text/plain; charset=utf-8 Code: 200 -o, --output <file> 将输出写入 <file> 而不是 stdout curl --url 127.0.0.1:7777/ping -o o.txt 如果文件存在则默认覆盖,--no-clobber 可以避免 curl --url 127.0.0.1:7777/ping --no-clobber -o o.txt 将输出写入与我们获取的远程文件同名的本地文件。 (只使用了远程文件的文件部分,路径被截掉了。) curl -O 127.0.0.1:7777/ping -H, --header <header/@file> 向服务器发送 HTTP 时要包含在请求中的额外标头 curl -H "X-First-Name: Joe" 127.0.0.1:7777/ping -I, --head (HTTP FTP 文件)只获取标题 curl -I 127.0.0.1:7777/ping --data-raw <data> posts data 发送原始数据 curl --data-raw '{"name": "ajanuw"}' -H 'Content-type: application/json' 127.0.0.1:7777/ping curl -d @file.json -H 'Content-type: application/json' 127.0.0.1:7777/ping -d, --data <data> 使用内容类型 application/x-www-form-urlencoded 将数据传递到服务器 curl -d 'name=ajanuw&age=12' 127.0.0.1:7777/ping -F, --form <name=content> 使用 Content-Type multipart/form-data 来发布数据 curl -F profile=@portrait.jpg https://example.com/upload.cgi curl -F name=John -F shoesize=11 https://example.com/ 读取文件中的内容,而不是上传 curl -F "story=<hugefile.txt" https://example.com/ 显示设置文件名 curl -F "file=@localfile;filename=nameinpost" example.com -G, --get 此选项将使所有使用 -d、--data、--data-binary 或 --data-urlencode 指定的数据用于 HTTP GET 请求 curl -G -d 'name=ajanuw&age=12' 127.0.0.1:7777/ping
SFTP 协议
列出目录 curl -k "sftp://192.168.149.128" --user "root:123" curl -k "sftp://192.168.149.128/root/" --user "root:123" 可以根据scheme猜测要使用哪个协议 curl -u root:123 sftp://192.168.149.128/root/ 嵌入一个可能的用户名和密码字段 curl sftp://root:123@192.168.149.128/root/ 指定端口号22 curl sftp://root:123@192.168.149.128:22/root/ (上传)将本地的文件上传到服务器的 /root/目录下 curl -k "sftp://192.168.149.128/root/" --user "root:123" -T "./o.txt" (上传)目录不存在加上 --ftp-create-dirs curl -k "sftp://192.168.149.128/root/newdir/" --user "root:123" -T "./o.txt" --ftp-create-dirs (下载)服务器上的/root/o.txt下载到本地u.txt curl -k "sftp://192.168.149.128/root/o.txt" --user "root:123" -o "./u.txt" (下载)使用-o选项当目录不存在时可以使用--create-dirs创建目录 curl -k "sftp://192.168.149.128/root/o.txt" --user "root:123" -o "./d/u.txt" --create-dirs
-Q, --quote
向远程 FTP 或 SFTP 服务器发送任意命令
要在成功传输后执行命令,请在它们前面加上破折号“-”
如果服务器为其中一个命令返回失败,则整个操作将中止
该选项可以多次使用。 当与 FTP 服务器通话时,在命令前加上星号 (*) 以使 curl 继续,即使命令失败也是如此,因为默认情况下 curl 将在第一次失败时停止。
SFTP 引用命令的列表:
chgrp group file chgrp 命令将文件操作数命名的文件的组 ID 设置为组操作数指定的组 ID。 组操作数是十进制整数组 ID chmod mode file chmod命令修改指定文件的文件模式位。模式操作数是八进制整数模式数 chown user file chown命令将文件操作数命名的文件的所有者设置为用户操作数指定的用户ID。用户操作数是十进制整数用户ID ln source_file target_file ln和symlink命令在target_file位置创建指向source_file位置的符号链接 mkdir directory_name mkdir命令创建由directory_name操作数命名的目录 创建 /root/sftp_newdir/ 目录 curl -k "sftp://192.168.149.128/root/" --user "root:123" -Q '-mkdir sftp_newdir' pwd pwd命令返回当前工作目录的绝对路径名 rename source target rename命令将源操作数命名的文件或目录重命名为目标操作数指定的目标路径 从命名服务器上/root/目录下的文件 curl -k "sftp://192.168.149.128/root/" --user "root:123" -Q '-rename o.txt newname.txt' curl -k "sftp://192.168.149.128/root/" --user "root:123" -Q '-rename newdir/o.txt newdir/newname.txt' rm file rm命令删除文件操作数指定的文件 rmdir directory rmdir命令删除由目录操作数指定的目录条目,前提是该条目为空 删除 /root/sftp_newdir/ 目录 curl -k "sftp://192.168.149.128/root/" --user "root:123" -Q '-rmdir sftp_newdir' symlink source_file target_file 文件连接
FILE 协议
FILE实际上不是“网络”协议。它是一种URL方案,允许您告诉curl从本地文件系统获取文件,而不是通过网络从远程服务器获取文件
curl file:///root/oo/README.md
使用配置文件
避免控制台输入太长
curl -K curl_config.txt cat curl_config.txt -X POST --url 127.0.0.1:7777/ping -d 'msg=hello'
电子邮件协议
-
(读)POP3 从服务器检索电子邮件的协议, POP3服务器和客户端使用
TCP端口110
。虽然到服务器的连接以明文形式开始,但客户端可以使用STLS命令显式请求升级连接,从而支持SSL/TLS通信 -
(读)POP3S 是通过SSL/TLS连接进行的POP3。这样的连接隐式地使用SSL/TLS开始,因此服务器和客户端使用
TCP端口995
来彼此通信 -
(读)IMAP 是一种用于访问、控制和“读取”电子邮件的协议, IMAP服务器和客户端使用
TCP端口143
。虽然到服务器的连接以明文形式开始,但客户端可以使用STARTTLS命令显式请求升级连接,从而支持SSL/TLS通信 -
(读)IMAPS 是通过SSL/TLS连接完成的IMAP。这样的连接隐式地使用SSL/TLS开始,因此服务器和客户端使用
TCP端口993
彼此通信 -
(写)SMTP 是一种电子邮件传输协议, SMTP服务器和客户端使用
TCP端口25
。虽然到服务器的连接以明文形式开始,但客户端可以使用STARTTLS命令显式请求升级连接,从而支持SSL/TLS通信 -
(写)SMTPS 是通过SSL/TLS连接完成的SMTP。这样的连接隐式地使用SSL/TLS开始,并且这样的服务器和客户端使用
TCP端口465
来彼此通信
curl pop3://<host> -u '<用户名>:<密码>' curl --resolve example.com:110:127.0.0.1 pop3://lisi.example.com/ -u 'lisi@example.com:123' 1 1608 2 1496 3 327 下载第3条消息,通常最新的会排在最后面 curl --resolve example.com:110:127.0.0.1 pop3://lisi.example.com/3 -u 'lisi@example.com:123' 删除消息1 curl pop3://smtp.qq.com/1 -u '1641845087@qq.com:123' --ssl --request DELE 从 mailbox Drafts中获取索引为1的邮件 curl 'imap://smtp.qq.com/Drafts;MAILINDEX=1' -u '1641845087@qq.com:123' --ssl
See also:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
2018-12-23 react 使用 lazyload 懒加载图片