- 浏览: 141260 次
- 性别:
- 来自: 成都
文章分类
最新评论
【基本介绍】
curl is a tool to transfer data from or to a server, using one of the supported protocols (HTTP, HTTPS, FTP, FTPS, SCP, SFTP, TFTP, DICT, TELNET, LDAP or FILE). The command is designed to work without user interaction.
curl就是一个数据上传下载的工具,支持多种协议的非交互式命令工具
【基本参数】
【简单例子】
1. 下载并保存到文件
2.通过认证并下载
3.上传文件(多个文件,添加内容到文件)
【参考】
http://www.thegeekstuff.com/2012/04/curl-examples/
curl is a tool to transfer data from or to a server, using one of the supported protocols (HTTP, HTTPS, FTP, FTPS, SCP, SFTP, TFTP, DICT, TELNET, LDAP or FILE). The command is designed to work without user interaction.
curl就是一个数据上传下载的工具,支持多种协议的非交互式命令工具
【基本参数】
[root@pandaVM tmp]# curl -h Usage: curl [options...] <url> Options: (H) means HTTP/HTTPS only, (F) means FTP only --anyauth Pick "any" authentication method (H) -a/--append Append to target file when uploading (F/SFTP) --basic Use HTTP Basic Authentication (H) --cacert <file> CA certificate to verify peer against (SSL) --capath <directory> CA directory to verify peer against (SSL) -E/--cert <cert[:passwd]> Client certificate file and password (SSL) --cert-type <type> Certificate file type (DER/PEM/ENG) (SSL) --ciphers <list> SSL ciphers to use (SSL) --compressed Request compressed response (using deflate or gzip) -K/--config <file> Specify which config file to read --connect-timeout <seconds> Maximum time allowed for connection -C/--continue-at <offset> Resumed transfer offset -b/--cookie <name=string/file> Cookie string or file to read cookies from (H) -c/--cookie-jar <file> Write cookies to this file after operation (H) --create-dirs Create necessary local directory hierarchy --crlf Convert LF to CRLF in upload --crlfile <file> Get a CRL list in PEM format from the given file -d/--data <data> HTTP POST data (H) --data-ascii <data> HTTP POST ASCII data (H) --data-binary <data> HTTP POST binary data (H) --data-urlencode <name=data/name@filename> HTTP POST data url encoded (H) --delegation STRING GSS-API delegation permission --digest Use HTTP Digest Authentication (H) --disable-eprt Inhibit using EPRT or LPRT (F) --disable-epsv Inhibit using EPSV (F) -D/--dump-header <file> Write the headers to this file --egd-file <file> EGD socket path for random data (SSL) --engine <eng> Crypto engine to use (SSL). "--engine list" for list -f/--fail Fail silently (no output at all) on HTTP errors (H) -F/--form <name=content> Specify HTTP multipart POST data (H) --form-string <name=string> Specify HTTP multipart POST data (H) --ftp-account <data> Account data to send when requested by server (F) --ftp-alternative-to-user <cmd> String to replace "USER [name]" (F) --ftp-create-dirs Create the remote dirs if not present (F) --ftp-method [multicwd/nocwd/singlecwd] Control CWD usage (F) --ftp-pasv Use PASV/EPSV instead of PORT (F) -P/--ftp-port <address> Use PORT with address instead of PASV (F) --ftp-skip-pasv-ip Skip the IP address for PASV (F) --ftp-ssl Try SSL/TLS for ftp transfer (F) --ftp-ssl-ccc Send CCC after authenticating (F) --ftp-ssl-ccc-mode [active/passive] Set CCC mode (F) --ftp-ssl-control Require SSL/TLS for ftp login, clear for transfer (F) --ftp-ssl-reqd Require SSL/TLS for ftp transfer (F) -G/--get Send the -d data with a HTTP GET (H) -g/--globoff Disable URL sequences and ranges using {} and [] -H/--header <line> Custom header to pass to server (H) -I/--head Show document info only -h/--help This help text --hostpubmd5 <md5> Hex encoded MD5 string of the host public key. (SSH) -0/--http1.0 Use HTTP 1.0 (H) --ignore-content-length Ignore the HTTP Content-Length header -i/--include Include protocol headers in the output (H/F) -k/--insecure Allow connections to SSL sites without certs (H) --interface <interface> Specify network interface/address to use -4/--ipv4 Resolve name to IPv4 address -6/--ipv6 Resolve name to IPv6 address -j/--junk-session-cookies Ignore session cookies read from file (H) --keepalive-time <seconds> Interval between keepalive probes --key <key> Private key file name (SSL/SSH) --key-type <type> Private key file type (DER/PEM/ENG) (SSL) --krb <level> Enable Kerberos with specified security level (F) --libcurl <file> Dump libcurl equivalent code of this command line --limit-rate <rate> Limit transfer speed to this rate -l/--list-only List only names of an FTP directory (F) --local-port <num>[-num] Force use of these local port numbers -L/--location Follow Location: hints (H) --location-trusted Follow Location: and send auth to other hosts (H) -M/--manual Display the full manual --max-filesize <bytes> Maximum file size to download (H/F) --max-redirs <num> Maximum number of redirects allowed (H) -m/--max-time <seconds> Maximum time allowed for the transfer --negotiate Use HTTP Negotiate Authentication (H) -n/--netrc Must read .netrc for user name and password --netrc-optional Use either .netrc or URL; overrides -n -N/--no-buffer Disable buffering of the output stream --no-keepalive Disable keepalive use on the connection --no-sessionid Disable SSL session-ID reusing (SSL) --noproxy Comma-separated list of hosts which do not use proxy --ntlm Use HTTP NTLM authentication (H) -o/--output <file> Write output to <file> instead of stdout --pass <pass> Pass phrase for the private key (SSL/SSH) --post301 Do not switch to GET after following a 301 redirect (H) --post302 Do not switch to GET after following a 302 redirect (H) -#/--progress-bar Display transfer progress as a progress bar -x/--proxy <host[:port]> Use HTTP proxy on given port --proxy-anyauth Pick "any" proxy authentication method (H) --proxy-basic Use Basic authentication on the proxy (H) --proxy-digest Use Digest authentication on the proxy (H) --proxy-negotiate Use Negotiate authentication on the proxy (H) --proxy-ntlm Use NTLM authentication on the proxy (H) -U/--proxy-user <user[:password]> Set proxy user and password --proxy1.0 <host[:port]> Use HTTP/1.0 proxy on given port -p/--proxytunnel Operate through a HTTP proxy tunnel (using CONNECT) --pubkey <key> Public key file name (SSH) -Q/--quote <cmd> Send command(s) to server before file transfer (F/SFTP) --random-file <file> File for reading random data from (SSL) -r/--range <range> Retrieve only the bytes within a range --raw Pass HTTP "raw", without any transfer decoding (H) -e/--referer Referer URL (H) -O/--remote-name Write output to a file named as the remote file --remote-name-all Use the remote file name for all URLs -R/--remote-time Set the remote file's time on the local output -X/--request <command> Specify request command to use --retry <num> Retry request <num> times if transient problems occur --retry-delay <seconds> When retrying, wait this many seconds between each --retry-max-time <seconds> Retry only within this period -S/--show-error Show error. With -s, make curl show errors when they occur -s/--silent Silent mode. Don't output anything --socks4 <host[:port]> SOCKS4 proxy on given host + port --socks4a <host[:port]> SOCKS4a proxy on given host + port --socks5 <host[:port]> SOCKS5 proxy on given host + port --socks5-hostname <host[:port]> SOCKS5 proxy, pass host name to proxy --socks5-gssapi-service <name> SOCKS5 proxy service name for gssapi --socks5-gssapi-nec Compatibility with NEC SOCKS5 server -Y/--speed-limit Stop transfer if below speed-limit for 'speed-time' secs -y/--speed-time Time needed to trig speed-limit abort. Defaults to 30 -2/--sslv2 Use SSLv2 (SSL) -3/--sslv3 Use SSLv3 (SSL) --stderr <file> Where to redirect stderr. - means stdout --tcp-nodelay Use the TCP_NODELAY option -t/--telnet-option <OPT=val> Set telnet option -z/--time-cond <time> Transfer based on a time condition -1/--tlsv1 Use TLSv1 (SSL) --trace <file> Write a debug trace to the given file --trace-ascii <file> Like --trace but without the hex output --trace-time Add time stamps to trace/verbose output -T/--upload-file <file> Transfer <file> to remote site --url <URL> Set URL to work with -B/--use-ascii Use ASCII/text transfer -u/--user <user[:password]> Set server user and password -A/--user-agent <string> User-Agent to send to server (H) -v/--verbose Make the operation more talkative -V/--version Show version number and quit -w/--write-out <format> What to output after completion -q If used as the first parameter disables .curlrc
【简单例子】
1. 下载并保存到文件
We can save the result of the curl command to a file by using -o/-O options. -o (lowercase o) the result will be saved in the filename provided in the command line -O (uppercase O) the filename in the URL will be taken and it will be used as the filename to store the result $ curl -o mygettext.html ttp://www.gnu.org/software/gettext/manual/gettext.html $ curl -O http://www.gnu.org/software/gettext/manual/gettext.html
2.通过认证并下载
$ curl -u username:password URL $ curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/xss.php
3.上传文件(多个文件,添加内容到文件)
$ curl -u ftpuser:ftppass -T myfile.txt ftp://ftp.testserver.com $ curl -u ftpuser:ftppass -T "{file1,file2}" ftp://ftp.testserver.com
【参考】
http://www.thegeekstuff.com/2012/04/curl-examples/
发表评论
-
linux shell - 远端修改非root密码
2015-01-09 20:40 1009【基本介绍】 通过远端修改普通用户密码,而passwd --s ... -
linux shell - broken pip error
2015-01-07 15:36 2764【基本介绍】 这里我们介绍发生broken pipe错误的原因 ... -
linux locate - find files by name
2014-12-17 17:46 616【基本介绍】 这里我们介绍locate命令,用来查找文件。 ... -
linux ssh - GSSAPIAuthentication
2014-12-10 14:58 2123【基本介绍】 最近公司搬家,发现合作伙伴的服务器的用ftp工具 ... -
linux tar - 压缩解压
2014-12-01 16:04 1025【基本介绍】 今天遇到要添加文件到tar文件里面,所以在这里介 ... -
linux parameter substitution - 字符串/变量处理
2014-11-17 15:56 823【基本介绍】 这里我们介绍bash里面对字符串,变量等的替换等 ... -
linux netstat - status状态描述
2014-11-14 17:59 1164【基本介绍】 这里介绍netstat命令返回的结果status ... -
linux set - set variables and set positional parameters
2014-11-10 18:26 438【基本介绍】 set是shell的内置命令。可以用来设置修改变 ... -
linux nc - arbitrary TCP and UDP connections and listens
2014-10-31 17:46 817【基本介绍】 nc是可以打开任意端口的TCP/UDP连接和监听 ... -
linux 报错集 - Cannot retrieve metalink for repository: epel. Please verify its pat
2014-10-29 15:12 963【基本介绍】 运行yum报错Error: Cannot ret ... -
linux awk - awk tutorial
2014-10-21 10:47 512【基本介绍】 awk是一款强大的对文件内容进行处理的软件,可以 ... -
linux ps - processes
2014-10-20 14:17 1265【基本介绍】 ps - report a snapshot o ... -
linux lsof - list open files
2014-10-17 17:31 766【基本介绍】 lsof - list open files I ... -
linux - 网络连接状态
2014-10-13 11:00 1409【基本情况】 这里介绍 ... -
linux netstat - Print network connections, routing tables, interface statistics,
2014-10-13 10:37 1024【基本介绍】 netstat - Print network ... -
linux vmstat - Report virtual memory statistics
2014-10-10 17:39 737【基本介绍】 vmstat - Report virtual ... -
linux yum - yum warning: rpmts_HdrFromFdno
2014-10-09 15:08 608【基本介绍】 在yum安装软件的时候有时候会报warning: ... -
Linux ip subnet mask - 网段分析
2014-09-24 19:22 1379【基本介绍】 网段的分析可以帮助我们查看两个局域地址是否可以互 ... -
linux mkpasswd - 密码生成器
2014-09-18 17:18 1419【基本介绍】 作为linux admin要经常创建用户,并初始 ... -
linux dd - dd测试硬盘速度
2014-09-05 18:42 855【基本介绍】 这里我们使用dd命令来测试硬盘的读写速度 dd ...
相关推荐
1. 下载`curl-7.83.1.tar.gz`。 2. 使用`tar`命令解压:`tar -zxvf curl-7.83.1.tar.gz`。 3. 进入解压后的目录:`cd curl-7.83.1`。 4. 配置编译选项,这通常包括指定安装路径、选择编译特性等:`./configure --...
在PHP扩展安装过程中,curl库通常被用作与远程服务器进行交互的接口,例如发送HTTP请求获取网页内容或执行文件上传下载等操作。 安装curl在Linux系统中通常涉及以下步骤: 1. **解压源码**:首先,你需要使用`tar`...
2. **命令行界面**:用户可以通过命令行参数自定义请求,如设置头部、指定URL、指定POST数据、下载或上传文件等。 3. **安全性**:通过 SSL/TLS 加密,`curl` 可以安全地处理 HTTPS 连接,同时也能支持 FTPS 和 SFTP...
1. **功能**:curl可以用来下载或上传数据,支持HTTP、HTTPS、FTP、FTPS、SMTP、POP3等多种协议,甚至包括对文件传输的支持,如TFTP、SCP和SFTP。 2. **命令行选项**:curl提供了丰富的命令行参数,如 `-L` 用于跟踪...
在Linux或类Unix系统中,我们通常使用tar命令来解压,例如`tar -zxvf curl-7.19.7.tar.gz`,这将解压出名为`curl-7.19.7`的目录,里面包含了源代码和其他相关文件。 curl-7.19.7版本发布于2012年,虽然不是最新版本...
这个版本的curl是基于mingw编译的,mingw是GCC(GNU Compiler Collection)在Windows上的移植,提供了一个与Linux类似的开发环境。 在Windows系统中,通常我们使用图形化的浏览器或者下载管理器来获取网络资源,但`...
- 文件上传和下载:在命令行环境中进行文件传输操作。 - 自动化脚本:在shell脚本中集成curl,实现自动化任务。 **参考教程链接:** 提供的链接是一个CSDN博客文章,详细介绍了如何在Windows环境下使用curl工具。...
`curl`在Linux系统中广泛使用,开发者和系统管理员常用来下载或上传数据,进行网络请求测试,或者自动化脚本任务。它支持多种选项,可以定制请求行为,如设置HTTP头、使用代理、指定用户认证信息等。 ### `.tar.gz`...
- 处理响应:`curl_getinfo()` 获取关于请求和响应的信息,如 HTTP 状态码、下载速度等。 - 上传文件:使用 `CURLOPT_POSTFIELDS` 设置 POST 数据,可以上传文件。 - 身份验证:支持多种认证机制,如 Basic Auth、...
1. **协议支持**:curl的核心在于其广泛的协议支持,能够处理各种网络通信需求,如下载文件、上传数据或执行HTTP请求。 2. **命令行工具**:curl作为一个轻量级的工具,用户无需复杂的配置,通过简单的命令行参数...
此外,curl还支持多种认证方式(如HTTP基本认证、NTLM等),可以通过SSL/TLS加密连接,使用代理服务器,甚至可以进行文件上传、下载速度限制等功能。 在实际应用中,curl是系统管理员、开发者、自动化脚本编写者的...
- **自动化脚本**:在Linux服务器维护中,curl常用于批量下载、更新资源。 - **API测试**:开发者可以使用curl快速测试RESTful API的功能和性能。 - **数据抓取**:配合正则表达式或XPath,curl可用于网页数据...
4. **文件传输**:cURL可以上传和下载文件,支持断点续传,能处理大型文件和多线程传输。 5. **HTTP头操作**:可以添加、修改或删除HTTP请求头,这对于自定义请求行为非常有用。 6. **HTTP POST和PUT**:cURL可以...
它支持文件上传、下载,可以设置HTTP头、cookies,甚至模拟表单提交。 2. **跨平台性**:curl 支持多种操作系统,包括Windows、Linux、macOS等,使得它成为开发者和系统管理员的必备工具。 3. **SSL/TLS支持**:在 `...
`curl`是一个强大的命令行工具,用于在操作系统中传输数据,尤其在Linux和Unix-like系统中广泛使用。它支持多种协议,包括HTTP、HTTPS、FTP、FTPS等,使得用户可以方便地从命令行界面执行文件下载、上传和其他数据...
例如,你可以使用curl来下载网页、上传文件或者执行POST请求。通过简单的命令行参数,用户可以定制化请求的方方面面,如设置HTTP头部、携带cookies、控制请求速度等,使得curl成为开发者调试API、自动化脚本的得力...
此外,curl还支持广泛的URL语法,包括通过URL参数传递数据,以及处理FTP上传和下载等任务。 总之,curl-7.33.0-win64-ssl-sspi.zip是针对Windows 64位系统的强大工具,具备了安全的SSL连接能力,可以方便地处理各种...
这些选项使得curl能够处理复杂的网络交互,如模拟登录、上传文件、下载大文件等。 此外,curl还支持批处理和脚本编写,通过将命令行参数写入批处理文件或shell脚本,可以自动化执行一系列网络请求。例如,可以创建...
Mingw版本的`curl`意味着它是为32位Windows系统编译的,并且使用了MinGW工具集,这使得在Windows环境中可以使用与GNU/Linux相似的编译环境。这种编译方式使得`curl`可以在没有Visual Studio或其他商业编译器的情况...
这个版本可能包含了所有必要的文件,使得用户能够在没有Linux或Unix环境的情况下,在Windows上运行curl命令。 **一、curl 基本用法** 1. **下载文件**:使用 `-O` 或 `--remote-name` 参数,可以将远程URL指定的...