📅  最后修改于: 2020-12-09 05:51:45             🧑  作者: Mango
Linux curl命令用于通过HTTP,FTP,IMAP,SFTP,TFTP,IMAP,POP3,SCP等受支持的协议将数据下载或上传到服务器。这是一个远程实用程序,因此无需用户交互即可工作。
从一个地方到另一个地方的数据传输是计算机系统最重要和最常用的任务之一。但是,有许多GUI工具可用于数据传输。但是,在命令行上工作时,它变得有些复杂。 curl实用程序允许我们通过命令行传输数据。
使用curl的基本语法如下:
curl [options] [URL...]
根据以上语法,
URL语法是与协议相关的常规URL。我们可以指定多个URL,如下所示:
http://site.{one,two,three}.com
curl命令支持以下命令行选项:
–abstract-unix-socket <路径>:用于通过抽象的Unix域套接字而不是网络进行连接。
–anyauth:它用于命令curl自身使用最安全的方法对方法进行身份验证。该实用程序是可选的实用程序“ –basic,-digest,-ntlm和negotiation”,用于设置特定的身份验证方法。
-a,–append:用于上传文件。它附加文件而不是覆盖它。如果给定文件在服务器上不存在,它将创建一个。
–basic:指定使用HTTP基本认证。它是curl命令的默认选项。这对于覆盖先前的设置很有用。
–cacert <文件>:指定使用特定的证书文件来验证对等方。这些文件可能具有多个CA证书。证书的标准格式为PEM,因此,所有证书都必须包含在其中。
–capath
–cert-status:用于验证服务器证书的状态。它使用证书状态请求或OCSP装订TLS。
–cert-type <类型>:它指定提供的curl证书类型。这些证书可以是PEM,DER和ENG格式。默认值为PEM。如果多次指定,则卷曲将获取最后一个值。
-E,–cert <证书[:密码]>:指定通过基于SSL的协议(例如HTTPS,FTPS等)获取文件时使用客户端证书文件。
–ciphers <密码列表>:用于选择连接中使用的密码。
–compressed-ssh:用于启用内置的SSH压缩。该选项将作为服务器的请求,因此服务器可能会接受也可能不会接受。
–compressed:用于使用curl算法请求压缩的响应并保存未压缩的文档。此选项将发送不支持的编码卷曲的报告。
-K,–config <文件>:用于描述用于读取curl参数的文本文件。 curl将使用文本文件中的命令行参数。
–connect-timeout
–connect-to
-C,–continue-at <偏移>:用于在给定偏移处继续或恢复先前的文件传输。
-c,–cookie-jar <文件名>:用于指定成功操作后我们要向其中写入所有cookie的特定文件。
-b,–cookie :用于将数据转发到Cookie头中的HTTP服务器。
–create-dirs:用于与'-o?选项,它将创建所需的本地目录层次结构。
–crlf(FTP SMTP):用于在上传中将LF转换为CRLF。它是MVS(OS / 390)的便捷工具。
–crlfile <文件>:用于以证书吊销列表指定(以PEM格式)。
–data-ascii <数据>:它是?-d的别名。选项。
–delegation
–digest:用于启用HTTP摘要认证。
-q,–disable:如果用作第一个参数,它将忽略curlrc配置文件。
–dns-interface <接口>:用于确认服务器发送出站DNS请求。
–dns-servers <地址>:用于指定DNS服务器而不是默认服务器。
-f,–fail:用于使卷曲在服务器错误时以静默方式失败。
-F,–form <名称=内容>:用于模拟用户提交的填写表单。
-P,-ftp-port <地址>:用于与FTP连接时反转默认的侦听器角色。
–ftp-ssl-ccc-mode <主动/被动>:用于设置CCC模式。
-G,–get:用于用?-d?指定数据。用于HTTP GET请求而不是POST请求的选项。
-h,– help:用于显示帮助手册,其中简要说明了用法和支持选项。
-0,–http1.0:指定使用HTTP版本1.0。
–ignore-content-length:用于忽略Content-Length标头。
-i, –include:用于包含HTTP响应标头。
-4,–ipv4:用于将名称解析为Ipv4地址。
-6,–ipv6:用于将名称解析为Ipv6地址。
curl命令随大多数Linux发行版一起提供。但是,如果系统默认不携带卷曲。您需要手动安装。要安装curl,请执行以下命令:
通过执行以下命令来更新系统:
sudo apt update
sudo apt upgrade
现在,通过执行以下命令安装curl实用程序:
sudo apt install curl
通过执行以下命令来验证安装:
curl -version
上面的命令将显示curl命令的安装版本。
要获取任何特定URL的内容,请执行curl命令,然后执行URL。考虑以下命令:
curl https://www.javatpoint.com/linux-tutorial
上面的命令将获取指定页面的页面数据。考虑下面的输出快照:
从上面的输出中,我们可以看到正在获取给定URL的页面数据。要停止执行,请按CTRL + C键。
要将数据保存在特定文件中,请传递“ -o”选项,后跟目录,文件名和URL,如下所示:
curl -o /
考虑以下命令:
curl -o /home/javatpoint/Documents/linux.html https://www.javatpoint.com/linux-tutorial
上面的命令会将页面数据保存在“ / home / javatpoint / Documents /”目录下的“ linux.html”文件中。考虑以下输出:
从上面的命令中,我们可以看到下载的数据总量,接收的数据,平均时间以及有关该数据的其他一些统计信息。
要验证下载的数据,请通过执行cat命令打开文件
cd Documents
cat linux.html
考虑下面的输出快照:
curl有趣而有趣的用途之一是我们可以从Web下载文件。要从网上下载文件,请复制下载链接并使用curl命令粘贴。我们也可以传递其他参数以使其更具体。例如,下载最新版本的ubuntu, 从其官方网站复制ubuntu的下载链接,并使用curl命令粘贴它,如下所示:
curl -o /home/javatpoint/Documents/ubuntu20.04.iso https://ubuntu.com/download/desktop/thank-you?version=20.04&architecture=amd64
上面的命令会将Ubuntu 20.04下载到指定目录。提供适当的文件扩展名;否则,它将以其他格式下载文件。考虑以下输出:
从上面的输出中,正在下载ubuntu.iso文件。我们可以看到下载时间,文件大小,下载速度和其他统计信息。要停止执行,请随时按CTRL + D键。
由于某种原因,下载可能会中断。我们可以使用curl命令恢复下载。要恢复被中断的文件,请使用curl命令传递“ -C”选项,如下所示:
curl -C
上面的命令将继续下载指定的URL。
要下载多个文件,请指定多个URL,以空格隔开,如下所示:
curl -O
上面的命令将分别从两个URL下载数据。
HTTP标头包含其他信息。它允许Web服务器下载此信息。要从网站查询HTTP标头,请使用“ -I”选项执行命令,如下所示:
curl -I www.javatpoint.com
上面的命令将产生以下输出: