curl和wget作为经常使用的命令,为我们对文件的操作提供了极大的便利。今天和大家分享一下,如何更好利用这些命令,来提高我们的的使用效率。 阿里云2018年10月 优惠信息汇总
curl(文件传输工具)
常用参数如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
-
c,–
cookie
-
jar:将
cookie写入到文件
-
b,–
cookie:从文件中读取
cookie
-
C,–
continue
-
at:断点续传
-
d,–
data:
http
post方式传送数据
-
D,–
dump
-
header:把
header信息写入到文件
-
F,–
from:模拟
http表达提交数据
-
s,–
slient:减少输出信息
-
o,–
output:将信息输出到文件
-
O,–
remote
-
name:按照服务器上的文件名,存在本地
–
l,–
head:仅返回头部信息
-
u,–
user
[
user
:
pass
]:设置
http认证用户和密码
-
T,–
upload
-
file:上传文件
-
e,–
referer:指定引用地址
-
x,–
proxy:指定代理服务器地址和端口
-
w,–
write
-
out:输出指定格式内容
–
retry:重试次数
–
connect
-
timeout:指定尝试连接的最大时间
/
s
|
使用示例:
例1:抓取页面到指定文件,如果有乱码可以使用iconv转码
1
2
|
# curl -o baidu.html www.baidu.com
# curl –s –o baidu.html www.baidu.com |iconv -f utf-8 #减少输出信息
|
例2:模拟浏览器头(user-agent)
1
|
# curl -A “Mozilla/4.0 (compatible;MSIE 6.0; Windows NT 5.0)” www.baidu.com
|
例3:处理重定向页面
1
|
# curl –L http://192.168.1.100/301.php #默认curl是不处理重定向
|
例4:模拟用户登陆,保存cookie信息到cookies.txt文件,再使用cookie登陆
1
2
|
# curl -c ./cookies.txt -F NAME=user -F PWD=***URL #NAME和PWD是表单属性不同,每个网站基本都不同
# curl -b ./cookies.txt –o URL
|
例5:获取HTTP响应头headers
1
2
|
# curl -I http://www.baidu.com
# curl -D ./header.txt http://www.baidu.com #将headers保存到文件中
|
例6:访问HTTP认证页面
1
|
# curl –u user:pass URL
|
例7:通过ftp上传和下载文件
1
2
|
# curl -T filename ftp://user:pass@ip/docs #上传
# curl -O ftp://user:pass@ip/filename #下载
|
wget(文件下载工具)
常用参数如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
2.1
启动参数
-
V,–
version:显示版本号
-
h,–
help:查看帮助
-
b,–
background:启动后转入后台执行
2.2
日志记录和输入文件参数
-
o,–
output
-
file
=
file:把记录写到
file文件中
-
a,–
append
-
output
=
file:把记录追加到
file文件中
-
i,–
input
-
file
=
file:从
file读取
url来下载
2.3
下载参数
-
bind
-
address
=
address:指定本地使用地址
-
t,
-
tries
=
number:设置最大尝试连接次数
-
c,
-
continue:接着下载没有下载完的文件
-
O,
-
output
-
document
=
file:将下载内容写入到
file文件中
-
spider:不下载文件
-
T,
-
timeout
=
sec:设置响应超时时间
-
w,
-
wait
=
sec:两次尝试之间间隔时间
–
limit
-
rate
=
rate:限制下载速率
-
progress
=
type:设置进度条
2.4
目录参数
-
P,
-
directory
-
prefix
=
prefix:将文件保存到指定目录
2.5
HTTP参数
-
http
-
user
=
user:设置
http用户名
-
http
-
passwd
=
pass:设置
http密码
-
U,–
user
-
agent
=
agent:伪装代理
-
no
-
http
-
keep
-
alive:关闭
http活动链接,变成永久链接
-
cookies
=
off:不使用
cookies
-
load
-
cookies
=
file:在开始会话前从
file文件加载
cookies
-
save
-
cookies
=
file:在会话结束将
cookies保存到
file文件
2.6
FTP参数
-
passive
-
ftp:默认值,使用被动模式
-
active
-
ftp:使用主动模式
2.7
递归下载排除参数
-
A,–
accept
=
list:分号分割被下载扩展名的列表
-
R,–
reject
=
list:分号分割不被下载扩展名的列表
-
D,–
domains
=
list:分号分割被下载域的列表
–
exclude
-
domains
=
list:分号分割不被下载域的列表
|
使用示例:
例1:下载单个文件到当前目录下,也可以-P指定下载目录
1
|
# wgethttp://nginx.org/download/nginx-1.8.0.tar.gz
|
例2:对于网络不稳定的用户可以使用-c和–tries参数,保证下载完成
1
|
# wget –tries=20 -c http://nginx.org/download/nginx-1.8.0.tar.gz
|
例3:下载大的文件时,我们可以放到后台去下载,这时会生成wget-log文件来保存下载进度
1
|
# wget -b http://nginx.org/download/nginx-1.8.0.tar.gz
|
例4:可以利用—spider参数判断网址是否有效
1
|
# wget –spider http://nginx.org/download/nginx-1.8.0.tar.gz
|
例5:自动从多个链接下载文件
1
2
3
4
|
# cat url_list.txt #先创建一个URL文件
http
:
//nginx.org/download/nginx-1.8.0.tar.gz
http
:
//nginx.org/download/nginx-1.6.3.tar.gz
# wget -i url_list.txt
|
例6:限制下载速度
1
|
# wget –limit-rate=1m http://nginx.org/download/nginx-1.8.0.tar.gz
|
例7:登陆ftp下载文件
1
|
# wget –ftp-user=user –ftp-password=pass ftp://ip/filenam
|