curl是一个利用URL语法在命令行下工作的文件传输工具,在Linux操作系统中经常来测试网络和URL的联通性,模拟正常的网络访问。很多同学不了解如何正确使用curl命令,接下来千锋就给大家讲解一下。
什么是cURL?
cURL是与网站或API进行交互,向终端发送请求并显示响应或将数据记录到文件的理想工具。有时,它用作较大脚本的一部分,将检索到的数据交给其他函数进行处理。由于cURL可用于从服务器检索文件,所以通常用于下载网站的一部分。
cURL命令
下载文件
$ curl 网址
当我们运行命令时,我们的终端充满了HTML和其他Web脚本代码——在这种形式下,对我们来说不是特别有用。
让我们将网站下载为HTML文档,这样就可以显示内容,可以添加-output选项来实现cURL。
$ curl 网址 –output 网页
循环重定向
$ curl -L 网址
如果在尝试对网站进行URL生成时输出为空,则可能意味着该网站告诉cURL重定向到其他URL。默认情况下,cURL不会遵循重定向,但是您可以使用 -L switch来告诉它。
停止并继续下载
如果你的下载中断了,或者需要下载一个大文件但又不想一次完成所有操作,所以cURL提供了一种选项,可以从中断处继续传输。要手动停止传输,可以使用ctrl + c组合键结束cURL进程。
如果我们的下载已经开始,但是被ctrl + c中断了,可以使用以下语法恢复下载:
$ curl -C – example.com/some-file.zip –output MyFile.zip
-C switch是恢复我们文件传输的设备,但还要注意,它后面紧跟一个破折号(-)。这告诉cURL继续文件传输,但是实现这一步,首先要查看已经下载的部分,找到下载的最后一个字节才可以确定从何处可以恢复。
指定超时
如果你希望cURL在你不做操作之后的一段时间还可以继续之前的工作,那么可以在命令中指定超时。你可以使用-m switch指定执行命令所需的最长时间。经过指定的时间后,cURL将退出正在执行的操作,即使它正在下载或上传文件。
cURL会以秒为单位指定您想要的最长时间。因此,要在一分钟后超时,该命令将如下所示:
$ curl -m 60 example.com
你也可以使用cURL指定的另一种超时类型是用于链接的时间量。这有助于确保cURL不会花费过多的时间来尝试连接处于脱机状态或无法访问的主机。它也接受秒作为参数。该选项被写为–connect-timeout。
$ curl –connect-timeout 60 example.com
使用用户名密码
可以使用-u switch在cURL命令中指定用户名和密码。例如,如果您想通过FTP服务器进行身份验证,则语法如下所示:
$ curl -u username:password ftp://example.com
使用代理
在连接主机之前,很容易直接使用cURL来使用代理。cURL将默认使用HTTP代理,除非您另外指定。使用-x switch定义代理。由于在此示例中未指定协议,因此cURL将假定它是HTTP代理。
$ curl -x 192.168.1.1:8080 http://example.com
此命令将使用端口8080上的192.168.1.1作为代理连接到example.com。
评论0