下载工具:wget
浏览网页:curl,elinks,nslookup
13.1.wget
功能:非交互式网络下载
语法:wget [option]... [URL]...
常用选项:
启动:
-b, --background 转入 后台运行
-V, –version 打印wget版本
-h,help 打印语法帮助
e, –execute=COMMAND 执行`.wgetrc’格式的命令
日志记录和输入文件:
-o, --output-file=FILE 把记录写到FILE文件
-a, --append-output=FILE 把记录追加到FILE文件中
-d, --debug 打印调试输出,会包含头信息
-v, –verbose 冗长模式(这是缺省设置)
-nv, –non-verbose 关掉冗长模式,但不是安静模式
-F, –force-html 把输入文件当作HTML格式文件对待
-B, –base=URL 将URL作为在-F -i参数指定的文件中出现的相对链接的前缀
-q, --quiet 退出
-i, --input-file=FILE 从文件中读取URL下载
–sslcertfile=FILE 可选客户端证书
–sslcertkey=KEYFILE 可选客户端证书的KEYFILE
–egd-file=FILE 指定EGD socket的文件名
下载:
--bind-address=ADDRESS 设置绑定地址(主机名或IP,当本地有多个IP或名字时使用)
-t, --tries=NUMBER 设置链接重试次数(0 表示无限制)
-O, --output-document=FILE 把文档写到FILE文件中
-nc, --no-clobber 跳过下载现有的文件
-c, --continue 断点续传
--progress=TYPE 设置进度条(dot和bar)
-N, –timestamping 不要重新下载文件除非比本地文件新
-S, --server-response 打印服务器响应
--spider 不下载任何内容
-T, --timeout=SECONDS 设置相应超时时间(还有--dns-timeout、--connect-timeout和--read-timeout)
-w, --wait=SECONDS 两次重试间隔等待时间
–random-wait 在下载之间等待0…2*WAIT秒
-Y, –proxy=on/off 打开或关闭代理
-Q, –quota=NUMBER 设置下载的容量限制
--limit-rate=RATE 限制下载速度
--user=USER 设置ftp和http用户名
--password=PASS 设置ftp和http密码
目录:
-nd –no-directories 不创建目录
-x, –force-directories 强制创建目录
-nH, –no-host-directories 不创建主机目录
-P, --directory-prefix=PREFIX 保存文件目录
–cut-dirs=NUMBER 忽略 NUMBER层远程目录
HTTP选项:
--http-user=USER 设置http用户名
--http-password=PASS 设置http密码
-C, –cache=on/off 允许/不允许服务器端的数据缓存 (一般情况下允许)
-E, –html-extension 将所有text/html文档以.html扩展名保存
–ignore-length 忽略 `Content-Length’头域
--proxy-user=USER 设置代理用户名
--proxy-password=PASS 设置代理密码
--referer=URL 设置Referer
-s,--save-headers 保存头到文件
--default-page=NAME 改变默认页面名字,默认index.html
-U,--user-agent=AGENT 设置客户端信息
--no-http-keep-alive 禁用HTTP keep-alive(长连接)
--load-cookies=FILE 从文件加载cookies
--save-cookies=FILE 保存cookies到文件
--post-data=STRING 使用POST方法,发送数据
FTP选项:
--ftp-user=USER 设置ftp用户名
--ftp-password=PASS 设置ftp密码
--no-passive-ftp 禁用被动传输模式
-nr, –dont-remove-listing 不移走 `.listing’文件
-g, –glob=on/off 打开或关闭文件名的 globbing机制
–passive-ftp 使用被动传输模式 (缺省值).
–active-ftp 使用主动传输模式
–retr-symlinks 在递归的时候,将链接指向文件(而不是目录)
递归下载:
-r, --recursive 指定递归下载,慎用!
-l, --level=NUMBER 最大递归深度, (inf 或 0 代表无穷).
–delete-after 在现在完毕后局部删除文件
-k, –convert-links 转换非相对链接为相对链接
-K, –backup-converted 在转换文件X之前,将之备份为 X.orig
-m, –mirror 等价于 -r -N -l inf -nr.
-p, –page-requisites 下载显示HTML文件的所有图片
递归下载中的包含和不包含(accept/reject)
-A, --accept=LIST 逗号分隔下载的扩展列表
-R, --reject=LIST 逗号分隔不被下载的扩展列表
-D, --domains=LIST 逗号分隔被下载域的列表
--exclude-domains=LIST 排除不被下载域的列表
–follow-ftp 跟踪HTML文档中的FTP链接
–follow-tags=LIST 分号分隔的被跟踪的HTML标签的列表
-G, –ignore-tags=LIST 分号分隔的被忽略的HTML标签的列表
-H, –span-hosts 当递归时转到外部主机
-L, –relative 仅仅跟踪相对链接
-I, –include-directories=LIST 允许目录的列表
-X, –exclude-directories=LIST 不被包含目录的列表
-np, –no-parent 不要追溯到父目录
示例:
[[email protected] ~]# wget http://nginx.org/download/nginx-1.9.9.tar.gz #下载单个文件到当前路径 --2017-06-12 00:02:08-- http://nginx.org/download/nginx-1.9.9.tar.gz Resolving nginx.org... 206.251.255.63, 95.211.80.227, 2001:1af8:4060:a004:21::e3, ... Connecting to nginx.org|206.251.255.63|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 887908 (867K) [application/octet-stream] Saving to: “nginx-1.9.9.tar.gz” 100%[======================================>] 887,908 345K/s in 2.5s 2017-06-12 00:02:11 (345 KB/s) - “nginx-1.9.9.tar.gz” saved [887908/887908] # wget -b http://nginx.org/download/nginx-1.9.9.tar.gz #放在后台下载 对于网络不稳定的用户使用-c和--tries参数,保证下载完成,并下载到指定目录: [[email protected] ~]# wget -t 3 -c http://nginx.org/download/nginx-1.9.9.tar.gz -P down ##对于网络不稳或者其他原因,使用-c 和--tries,保证下载完成,并下载到指定的路径 --2017-06-12 00:06:24-- http://nginx.org/download/nginx-1.9.9.tar.gz Resolving nginx.org... 95.211.80.227, 206.251.255.63, 2001:1af8:4060:a004:21::e3, ... Connecting to nginx.org|95.211.80.227|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 887908 (867K) [application/octet-stream] Saving to: “down/nginx-1.9.9.tar.gz” 100%[======================================>] 887,908 364K/s in 2.4s 2017-06-12 00:06:28 (364 KB/s) - “down/nginx-1.9.9.tar.gz” saved [887908/887908] [[email protected] scripts]# wget http://www.baidu.com/index.html -O index.html #下载内容到文件 --2017-06-12 11:16:23-- http://www.baidu.com/index.html Resolving www.baidu.com... 14.215.177.38, 14.215.177.37 Connecting to www.baidu.com|14.215.177.38|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 2381 (2.3K) [text/html] Saving to: “index.html” 100%[======================================================================================>] 2,381 --.-K/s in 0s 2017-06-12 11:16:23 (336 MB/s) - “index.html” saved [2381/2381] [[email protected] scripts]# ls index.html index.html [[email protected] scripts]# cat > url https://www.baidu.com/index.html ^C [[email protected] scripts]# wget -i url #从文件读取url下载 --2017-06-12 11:18:48-- https://www.baidu.com/index.html Resolving www.baidu.com... 14.215.177.38, 14.215.177.37 Connecting to www.baidu.com|14.215.177.38|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 2443 (2.4K) [text/html] Saving to: “index.html.1” 100%[======================================================================================>] 2,443 --.-K/s in 0s 2017-06-12 11:18:49 (11.8 MB/s) - “index.html.1” saved [2443/2443] FINISHED --2017-06-12 11:18:49-- Downloaded: 1 files, 2.4K in 0s (11.8 MB/s)
13.2.curl
功能:传递一个url
语法:curl [options] [URL...]
常用选项:
-A/--user-agent <agent string> 指定客户端信息
-b/--cookie <name=data> 从文件中读取cookie
-C/--continue-at <offset> 断点续传
-c/--cookie-jar <file name> 把cookie保存到文件
-d/--data <data> 使用POST方式发送数据
-D/--dump-header <file> 保存头信息到文件
--data-urlencode <data> POST的数据URL编码
-e/--referer <URL> 来源网址
-f/--fail 连接失败时不显示http错误
-F/--form <name=content> 指定POST数据的表单
--ftp-pasv 指定FTP连接模式PASV/EPSV
-H/--header <header> 自定义头信息发送给服务器
-L/--location 遵循URL重定向,默认不处理
-I/--head 查看HTTP头信息
-O/--remote-name 使用远程服务器上名字写到本地
-o/--output <file> 输出到文件
-P/--ftp-port <address> 指定FTP端口
-#/--progress-bar 显示bar进度条
-x,/--proxy[PROTOCOL://]HOST[:PORT] 使用代理
-U/--proxy-user <user:password> 代理用户名和密码
--connect-timeout 连接超时时间,单位秒
--retry NUM 连接重试次数
--retry-delay 两次重试间隔等待时间
-s/--silent 静默模式,不输出任何内容
-Y/--speed-limit 限制下载速率
-u/--user <user:password>指定http和ftp用户名和密码
-T/ --upload-file 上传文件
示例:
[[email protected] scripts]# curl www.baidu.com #百度字符页面就展示在命令行上 <!DOCTYPE html> [[email protected] scripts]# curl -o baidu.html www.baidu.com #保存页面 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 103 2381 103 2381 0 0 41981 0 --:--:-- --:--:-- --:--:-- 211k [[email protected] scripts]# ls baidu.html baidu.html [[email protected] scripts]# curl -s -o baidu.html www.baidu.com #不输出下载信息 [[email protected] scripts]# [[email protected] scripts]# curl -b cookies www.baidu.com #使用cookie访问 # curl -u user:pass http://www.example.com #访问HTTP认证页面
13.3.elinks
功能:实现纯文本界面访问网页
语法:elinks(选项)(参数)
常用选项:
-anonymous:是否使用匿名帐号方式;
-auto-submit:遇到的第一个表单是否自动提交;
-config-dir:指定elinks指令运行时读取和写入自身的配置和运行状态的存放目录;
-dump:将HTML文档以纯文本的方式打印到标准输出设备;
-version:打印指令的版本信息;
-h:打印帮助信息。
示例:
[[email protected] ~]# elinks -dump www.baidu.com Refresh: [1]/baidu.html?from=noscript Link: [2]百度搜索 (search) Link: [3]dns-prefetch Link: [4]dns-prefetch Link: [5]dns-prefetch Link: [6]dns-prefetch Link: [7]dns-prefetch Link: [8]dns-prefetch Link: [9]dns-prefetch Link: [10]dns-prefetch [11]到百度首页 [12]_____________________ [13][ 百度一下 ] 输入法 * [14]手写 * [15]拼音 * * [16]关闭
13.4.nslookup
功能:交互式查询Internet名称服务器,也就是查询DNS信息
语法:nslookup [-option] [name | -] [server]
示例:
[[email protected] ~]# nslookup > www.baidu.com Server: 114.114.114.114 #默认配置dns服务器 Address: 114.114.114.114#53 Non-authoritative answer: www.baidu.com canonical name = www.a.shifen.com. Name: www.a.shifen.com #对应的百度dns Address: 163.177.151.110 Name: www.a.shifen.com Address: 163.177.151.109