curl
curl详解
用法:curl [options ...] <url> 选项:(H)仅表示HTTP / HTTPS,(F)表示仅限FTP --anyauth选择“任何”认证方法(H) -a,--append上传时追加到目标文件(F / SFTP) - 基本使用HTTP基本认证(H) --cacert FILE CA证书验证对等体(SSL) --capath DIR CA目录以验证对等(SSL) -E,--cert CERT [:PASSWD]客户端证书文件和密码(SSL) --cert-type TYPE证书文件类型(DER / PEM / ENG)(SSL) - 密码LIST要使用的SSL密码(SSL) - 压缩请求压缩响应(使用deflate或gzip) -K,--config FILE指定要读取的配置文件 --connect-timeout SECONDS允许连接的最长时间 -C, - 继续 - 在OFFSET恢复传输偏移 -b,--cookie STRING / FILE从(H)读取Cookie的字符串或文件 -c,--cookie-jar FILE操作后将cookie写入此文件(H) --create-dirs创建必需的本地目录层次结构 --crlf在上传时将LF转换为CRLF --crlfile FILE从给定文件获取PEM格式的CRL列表 -d, - 数据DATA HTTP POST数据(H) - 数据 - ASCII数据HTTP POST ASCII数据(H) - 数据二进制数据HTTP POST二进制数据(H) --data-urlencode DATA HTTP POST数据网址编码(H) - 指定STRING GSS-API委派许可 - 最小使用HTTP摘要身份验证(H) - 禁用eprt使用EPRT或LPRT(F) - 可以使用EPSV(F)抑制 -D,--dump-header FILE将头文件写入此文件 --egd-file随机数据(SSL)的FILE EGD套接字路径 --engine ENGINGE加密引擎(SSL)。 “ - 引擎列表”列表 -f,--fail在HTTP错误(H)上静默失败(根本不输出) -F,--form CONTENT指定HTTP多部分POST数据(H) --form-string STRING指定HTTP多部分POST数据(H) --ftp-account DATA帐号数据字符串(F) --ftp-alternative-to-user命令字符串替换“USER [name]”(F) --ftp-create-dirs如果不存在则创建远程目录(F) --ftp方法[MULTICWD / NOCWD / SINGLECWD]控制CWD使用(F) --ftp-pasv使用PASV / EPSV而不是PORT(F) -P,--ftp-port ADR使用带有给定地址而不是PASV(F)的端口 --ftp-skip-pasv-ip跳过PASV(F)的IP地址 --ftp-pret在PASV之前发送PRET(对于drftpd)(F) --ftp-ssl-ccc认证后发送CCC(F) --ftp-ssl-ccc模式ACTIVE / PASSIVE设置CCC模式(F) --ftp-ssl-control需要SSL / TLS进行ftp登录,清除传输(F) -G,--get使用HTTP GET(H)发送-d数据 -g,--globoff使用{}和[]禁用URL序列和范围 -H,--header LINE自定义标头传递到服务器(H) -I,--head仅显示文档信息 -h,--help这个帮助文本 --hostpubmd5 MD5十六进制编码的主机公钥的MD5字符串。 (SSH) -0,--http1.0使用HTTP 1.0(H) --ignore-content-length忽略HTTP Content-Length头 -i,--include在输出中包含协议头(H / F) -k,--insecure允许连接到没有证书的SSL站点(H) - 接口INTERFACE指定要使用的网络接口/地址 -4,--ipv4将名称解析为IPv4地址 -6,--ipv6将名称解析为IPv6地址 -j,--junk-session-cookies忽略从文件读取的会话cookie(H) - 休眠时间SECONDS保持性探针之间的间隔 --key KEY私钥文件名(SSL / SSH) - 键型TYPE私钥文件类型(DER / PEM / ENG)(SSL) --krb LEVEL启用具有指定安全级别的Kerberos(F) --libcurl文件转储libcurl此命令行的等效代码 - 极限速率限制传输速度到这个速率 -l,--list-only仅列出FTP目录的名称(F) - 本地端口RANGE强制使用这些本地端口号 -L, - 位置跟随重定向(H) - 位置信任(如位置),并发送授权给其他主机(H) -M, - 手动显示完整手册 --mail - 从这个地址FROM邮件 - mail-rcpt TO Mail to this receiver(s) --mail-auth AUTH原始电子邮件的发起人地址 --max-filesize BYTES要下载的最大文件大小(H / F) --max-redirs NUM允许的最大重定向数(H) -m, - 最大时间SECONDS允许传输的最长时间 --metalink将网址定义为metalink XML文件 - 谈判使用HTTP协商认证(H) -n,--netrc必须读取.netrc的用户名和密码 --netrc可选使用.netrc或URL;覆盖-n --netrc-file FILE设置要使用的netrc文件名 -N,--no-buffer禁止缓冲输出流 --no-keepalive禁用在连接上的keepalive使用 --no-sessionid禁用SSL会话ID重用(SSL) --noproxy不使用代理的主机列表 --ntlm
输入编码 -f gb2312,输出编码-t utf-8
|grep 检索目标命令
检索 title、meta、content等信息,并显示
curl http://www.qq.com|iconv -f gb2312 -t utf-8| grep -E "(<title>|<meta name=|meta content=)"
|iconv 命令
iconv命令是运行于linux平台的文件编码装换工具。当我们在linux系统shell下通过curl命令或者wget命令获取一个网页的源代码,当网页的编码与当前操作系统坏境的设置的编码不同时,就会发现网页中有很多乱码。如在网页"meta"标签"charset"属性值设置为"gb2312"的http://www.baidu.com百度首页,在系统坏境变量"$LANG"值为"en_US.UTF-8"的linux系统即会产生中文乱码现象。这时我们可以尝试使用iconv命令进行编码装换,让中文不在是乱码。如下命令是处理百度在系统坏境变量"$LANG"值为"en_US.UTF-8"的linux系统乱码的问题的解决方案之一:
curlhttp://www.baidu.com|iconv -fgb2312 -t utf-8
当然,你也通过改变系统坏境变量与百度首页的"charset"值一致,也可以解决此乱码问题,如下命令:
set LANG="gb2312"
export LANG
curl http://www.baidu.com
iconv命令的详细语法:
iconv [选项..] [文件..]
选项:
-f 输入编码
-t 输出编码
-l 列出所有已知的编码
-o 输出文件
[root@localhost /]# iconv -h Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...] or: iconv -l