
文章目录
前文在续,书接上一回Linux- 系统随你玩之–玩出花活的命令浏览器上, 话说命令浏览器它是一个从网络上自动下载文件的自由工具,支持通过 HTTP、HTTPS、FTP 三个最常见的 TCP/IP协议 下载,并可以使用 HTTP 代理。
它的最大特色是断点续传、镜像整个站点。今天我们来讲讲它别的作用。
我们在做测试相关工作时 经常发送大量的各种终端的测试请求 其中,HTTP 标头是数据包初始的组成部分,因此会因各种场景需要做经常性修改后发送请求。
那我们在使用浏览器浏览网页时,你的浏览器向服务器发送了 HTTP 请求标头。具体都发了些什么呢?这个时候我们可以使用 --debug 选项查看 wget 每次请求发送的标头信息:
$wget --debug www.baidu.com

你可以通过 --header 选项修改请求标头,增加不同浏览器参数来,来模拟测试特定的浏览器发出的请求效果。
wget --debug --header="User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36" http://baidu.com
此外,你还可以伪装成特定的移动设备(比如 iPhone ):
wget --debug \--header = "User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 13_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Mobile/15E148 Safari /604.1" \HTTP:// www.baidu.com
与浏览器请求发送标头信息的方式相同,标头信息也包含在响应中。
200 响应码意味着成功。而 301 响应则意味着 URL 已经指向不同的网站。
这种情况下,如果你还要下载文件,那么就需要配合使用 --max-redirect 参数选项 来达到 wget 的重定向功能 。
如果你不想要重定向,那么可以将 --max-redirect 设置为 0 。
或将其设置为其他数字以控制 wget 跟随的重定向数量。

对于下载非常大的文件的时候,我们可以使用参数-b进行后台下载(网址可按实际情况改为网络文件名地址)

在后台下载过程中你可以使用以下命令来查看下载进度以了解进展。

如果网络有问题或下载一个大文件也有可能失败。wget默认重试20次连接下载文件。
如果需要调整使用–tries增加重试次数。
wget –tries=40 http:baidu.com
使用wget –reject过滤指定格式下载
wget –reject=gif url
使用wget -Q限制总下载文件大小,避免下载过大超出预期数据量。
当你想要下载的文件超过10M而退出下载,你可以使用以下命令:
wget -Q10m -i filelist.jpg
切记:该参数只对 递归下载文件时才有效,对单个文件不起限制作用。
你可以使用wget来完成ftp链接的下载。
使用wget匿名ftp下载
wget ftp-url
使用wget用户名和密码认证的ftp下载
wget –ftp-user=USERNAME –ftp-password=PASSWORD url
注意:对于需要证书做认证的网站,就只能利用其他下载工具了,例如它的好姐妹curl。
遇到网络需要经过代理服务器,可以让wget通过代理服务器进行文件的下载。我们可以在当前用户的目录下创建一个.wgetrc文件。
VI .wgetrc 文件中可以设置代理服务器内容如下:
http-proxy = 111.111.111.111:8080
ftp-proxy = 111.111.111.111:8080
如代理服务器还需要配合密码使用则增加下面的帐号信息:
–proxy-user=USER设置代理用户
–proxy-passwd=PASS设置代理密码
搭配使用参数–proxy=on/off 使用或者关闭代理。
curl 和 wget 的一个最明显的区别是:默认情况下 wget 将查询的网页保存到系统,而 curl 将其显示在终端输出中但不保存它。
总之一句话就是 curl 访问链接而 wget 是下载链接。
wget到位就结束了,它的好姐妹我也提到了,预知后事如何且听下回分解 您了!

我想用ruby编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序
电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。 准备工作: 1、U盘一个(尽量使用8G以上的U盘)。 2、一台正常联网可使用的电脑。 3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。 4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。 U盘启动盘制作步骤: 注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注
在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList()Obt
我从Ubuntu服务器上的RVM转移到rbenv。当我使用RVM时,使用bundle没有问题。转移到rbenv后,我在Jenkins的执行shell中收到“找不到命令”错误。我内爆并删除了RVM,并从~/.bashrc'中删除了所有与RVM相关的行。使用后我仍然收到此错误:rvmimploderm~/.rvm-rfrm~/.rvmrcgeminstallbundlerecho'exportPATH="$HOME/.rbenv/bin:$PATH"'>>~/.bashrcecho'eval"$(rbenvinit-)"'>>~/.bashrc.~/.bashrcrbenvversions
需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc
我有一个问题。我想从另一个ruby脚本运行一个ruby脚本并捕获它的输出信息,同时让它也输出到屏幕。亚军#!/usr/bin/envrubyprint"Enteryourpassword:"password=gets.chompputs"Hereisyourpassword:#{password}"我运行的脚本文件:开始.rboutput=`runner`putsoutput.match(/Hereisyour(password:.*)/).captures[0].to_s正如您在此处看到的那样,存在问题。在start.rb的第一行,屏幕是空的。我在运行程序中看不到“输入您的密
因为我现在正在做一些时间测量,我想知道是否可以在不使用Benchmark类或命令行实用程序time的情况下测量用户时间或系统时间。使用Time类只显示挂钟时间,而不显示系统和用户时间,但是我正在寻找具有相同灵active的解决方案,例如time=TimeUtility.now#somecodeuser,system,real=TimeUtility.now-time原因是我有点不喜欢Benchmark,因为它不能只返回数字(编辑:我错了-它可以。请参阅下面的答案。)。当然,我可以解析输出,但感觉不对。*NIX系统的time实用程序也应该可以解决我的问题,但我想知道是否已经在Ruby中实
有这样的事吗?我想在Ruby程序中使用它。 最佳答案 试试这个http://csl.sublevel3.org/jp2a/此外,Imagemagick可能还有一些东西 关于ruby-是否有将图像文件转换为ASCII艺术的命令行程序或库?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6510445/
如何在Ruby的if语句中检查bash命令的返回值(true/false)。我想要这样的东西,if("/usr/bin/fswscell>/dev/null2>&1")has_afs="true"elsehas_afs="false"end它会提示以下错误含义,它总是返回true。(irb):5:warning:stringliteralincondition正确的语法是什么?更新:/usr/bin/fswscell寻找afs安装和运行状态。它会抛出这样的字符串,Thisworkstationbelongstocell如果afs没有运行,命令以状态1退出 最
在几个项目中,我希望有一个类似rakeserver的rake任务,它将通过任何需要的方式开始为该应用程序提供服务。这是一个示例:task:serverdo%x{bundleexecrackup-p1234}end这行得通,但是当我准备停止它时,按Ctrl+c并没有正常关闭;它中断了Rake任务本身,它说rakeaborted!并给出堆栈跟踪。在某些情况下,我必须执行Ctrl+c两次。我可能可以用Signal.trap写一些东西来更优雅地中断它。有没有更简单的方法? 最佳答案 trap('SIGINT'){puts"Yourmessa