您的位置:首页 > 运维架构 > Shell

Shell 命令--网站--总结自《Linux Shell 脚本攻略》

2014-09-12 11:29 519 查看

1.wget

用wget可以下载网页或远程文件 $ wget URL 或 $ wget URL1 URL2 URL# ...

-O(字母)指定输出文件名,如果存在同名文件,那么会先将该同名文件清空再将下载文件写入

-o 指定一个日志文件,从而不必将日志信息打印到stdout 	例如 :$ wget ftp://example_domain.com/somefile.img -O dloaded_file.img -o log

-t 指定重试次数 例如:$ wget -t 5 URL

1)下载限速

--limit-rate  在命令中用k和m指定速度限制 $ wget --limit-rate 20k URL
[code]	--quota或-Q 指定最大下载配额(quota) $ wget -Q 100m URL

2)断点续传

-c 选项从断点开始继续下载 $ wget -c URL

3)复制或镜像整个网站

--mirror 使其像爬虫一样以递归的方式收集网页上所有的URL链接 $ wget --mirror URL

或者 $ wget -r -N -l DEPTH URL   -r 递归 -N允许对文件使用时间戳 -l指定页面层级DEPTH

4)访问需要认证的HTTP或FTP页面

一些网页需要HTTP或FTP认证,可以用--user和--password提供认证信息,也可以不再命令行中指定密码,而是由网页提示并手动输入密码--password改为--ask-password. $ wget --user username --password pass URL

5)以POST方式发送数据

--post-data "string" 可以POST方式发送数据,其中的“名称-值”对要采用引用的形式。例如 $ wget URL --post-data "name=value" -o output.html

2.lynx

lynx是一个基于命令行的网页浏览器。它并不会为我们现实一堆原始的HRML代码,而是能够打印出网站的文本版本。用lynx命令的-dump选项将网页以ASCII字符的形式下载到文本文件中 $ lynx -dump URL > webpage_as_text.txt 这个命令会将所有的超链接作为文本输出的页脚列在References标题之下。

3.curl


curl并不将下载数据写入文件,而是写入标准输出。因此我们必须用重定向操作符将数据从stdout重定向到文件
$ curl http://www.baidu.com > index.html
[/code]
--silent选项使得curl命令不显示进度信息

--progress选项显示形如 # 进度条

-O(字母)用来将下载数据写入文件,而非写入标准输出

例如 $ curl http://www.baidu.com/index.html --silent -O 写入和URL中相同文件名的文件中。因此要确保这是一个指向远程文件的URL

-d选项发送post请求 $curl URL -d "postvar=postdata&postvar2=postdata2"  -d的参数内容应该以引用的形式给出。如果不适用引用,&会被shell解读为该命令应该作为后台进行运行。

1)断点续传


curl包含更高级的下载恢复特性,能够从特定的文件偏移处继续下载。$ curl URL/file -C offset 偏移量是以字节为单位的整数

-C选项 curl会自动计算出应该从哪里开始续传 $ curl -C URL

2)用curl设置参照页字符串

参照页(refer)是位于HTTP头部中的一个字符串,用来标识用户是从哪个页面到达当前页面的。如果用户点击了网页A中的某个链接,那么用户就会转到网页B,网页B头部的参照页字符串会包含网页A的URL $ curl --referer Referer_URL target_URL


3)用curl设置cookie

--cookie COOKIES需要以name=value的形式来给出。如果要指定多个cookie,用分号分割 $ curl http://example.com --cookie "user=slynux;pass=hack"

如果要将cookie另存一个文件,使用--cookie-jar选项。 $ curl URL --cookie-jar cookie_file

4)用curl设置用户代理字符串

用curl的--user-agent或-A选项可以设置用户代理: $ curl URL --user-agent "Mozilla/5.0"

用-H“头部信息”传递多个头部信息 $ curl -H "Host: www.slynux.org" -H "Accept-language: en" URL

5)限定curl可占用的带宽

$ curl URL --limit-rate 20k 在命令中用k和m指定下载速度限制

6)指定最大下载量

$ curl URL --max-filesize bytes

7)用curl进行认证

-u username:password可用来指定用户名和密码,也可以不指定密码,而在后续的运行过程中经指示输入密码,只需要使用-u username

8)只打印响应头部信息(不包括数据部分)

通过-I或-head就可以只打印HTTP头部信息,而无需下载远程文件

9)在curl中使用post

-d或--data以POST方式发送数据,如果需要发送多个变量,用&分割变量。需要注意的是:如果使用了&,那么该 “名称-值”对应以引用的形式出现、

$ curl --data "name=value" URL -o output.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: