简介
curl是一个非常强大的工具,它用来与服务器之间传输数据,其支持的协议包括 (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP),curl设计为无用户图形界面交互下完成工作。
curl提供了一大堆非常有用的功能,包括代理访问、用户认证、ftp上传下载、HTTP POST、SSL连接、cookie支持、断点续传。
curl可用于多种平台,不仅仅是Linux平台,其官方网址为https://curl.se
安装
以Ubuntu20.04为例,可以采取源码包安装方式,下载对应平台源码压缩包,解压后放在合适位置,然后添加环境变量;为简单起见,可通过apt命令安装二进制包:
sudo apt install curl
curl用法详解
命令格式
curl [options] [URLs]
参数介绍
curl命令参数非常多,此处只介绍常用的几项即可:
-A/--user-agent <string> #设置用户代理发送给服务器
-b/--cookie <name=string/file> #cookie字符串或文件读取位置
-c/--cookie-jar <file> #操作结束后把cookie写入到这个文件中
-C/--continue-at <offset> #断点续转
-D/--dump-header <file> #把header信息写入到该文件中
-e/--referer #来源网址
-f/--fail #连接失败时不显示http错误
-o/--output #把输出写到该文件中
-O/--remote-name #把输出写到该文件中,保留远程文件的文件名
-r/--range <range> #检索来自HTTP/1.1或FTP服务器字节范围
-s/--silent #静音模式。不输出任何东西
-T/--upload-file <file> #上传文件
-u/--user <user[:password]> #设置服务器的用户和密码
-w/--write-out [format] #什么输出完成后
-x/--proxy <host[:port]> #在给定的端口上使用HTTP代理
-#/--progress-bar #进度条显示当前的传送状态
其他参数可以参考How to Use文档。
用法举例
1、显示网页
curl https://curl.se
执行该命令,https://curl.se 页面以html格式显示在屏幕上,由于安装linux的时候很多时候是没有安装桌面的,也意味着没有浏览器,因此这个方法也经常用于测试一台服务器是否可以到达一个网站。
2、下载文件
curl https://curl.se >> curl.html #使用linux的重定向功能保存
curl -o curl.html https://curl.se #使用curl的内置option:-o(小写)保存文件
curl -O https://curl.se #使用curl的内置option:-O(大写)保存文件,这里的url要具体到某个文件,不然下载不下来