最近几天使用了好几种Linux命令行浏览器,觉得很不错,例如curl、elinks、w3m等等。各有优缺点,下面就分别介绍下。
curl
curl功能很强大,对于各种情况基本上都有对应办法,比如访问页面乱码,可以加选项进行转码;或者访问被拒绝,则可以使用代理进行访问。下面就具体说明一下:
选项 | 含义 |
---|---|
-a/–append | 上传文件时,附加到目标文件 |
-A/–user-agent | 设置用户代理发送给服务器 |
-anyauth | 可以使用“任何”身份验证方法 |
-b/–cookie | cookie字符串或文件读取位置 |
-basic | 使用HTTP基本验证 |
-B/–use-ascii | 使用ASCII /文本传输 |
-c/–cookie-jar | 操作结束后把cookie写入到这个文件中 |
-C/–continue-at | 断点续转 |
-d/–data | HTTP POST方式传送数据 |
–data-ascii | 以ascii的方式post数据 |
–data-binary | 以二进制的方式post数据 |
–negotiate | 使用HTTP身份验证 |
–digest | 使用数字身份验证 |
–disable-eprt | 禁止使用EPRT或LPRT |
–disable-epsv | 禁止使用EPSV |
-D/–dump-header | 把header信息写入到该文件中 |
–egd-file | 为随机数据(SSL)设置EGD socket路径 |
–tcp-nodelay | 使用TCP_NODELAY选项 |
-e/–referer | 来源网址 |
-E/–cert | 客户端证书文件和密码 (SSL) |
–cert-type | 证书文件类型 (DER/PEM/ENG) (SSL) |
–key | 私钥文件名 (SSL) |
–key-type | 私钥文件类型 (DER/PEM/ENG) (SSL) |
–pass | 私钥密码 (SSL) |
–engine | 加密引擎使用 (SSL) |
–cacert | CA证书 (SSL) |
-f/–fail | 连接失败时不显示http错误 |
–ftp-create-dirs | 如果远程目录不存在,创建远程目录 |
–ftp-method [multicwd/nocwd/singlecwd] | 控制CWD的使用 |
–ftp-pasv | 使用 PASV/EPSV 代替端口 |
–ftp-skip-pasv-ip | 使用PASV的时候,忽略该IP地址 |
–ftp-ssl | 尝试用 SSL/TLS 来进行ftp数据传输 |
–ftp-ssl-reqd | 要求用 SSL/TLS 来进行ftp数据传输 |
-F/–form | 模拟http表单提交数据 |
-form-string | 模拟http表单提交数据 |
-g/–globoff | 禁用网址序列和范围使用{}和[] |
-G/–get | 以get的方式来发送数据 |
-h/–help | 帮助 |
-H/–header | 自定义头信息传递给服务器 |
–ignore-content-length | 忽略的HTTP头信息的长度 |
-i/–include | 输出时包括protocol头信息 |
-I/–head | 只显示文档信息 |
-j/–junk-session-cookies | 读取文件进忽略session cookie |
–interface | 使用指定网络接口/地址 |
-k/–insecure | 允许不使用证书到SSL站点 |
-K/–config | 指定的配置文件读取 |
-l/–list-only | 列出ftp目录下的文件名称 |
–limit-rate | 设置传输速度 |
–local-port | 强制使用本地端口号 |
-m/–max-time | 设置最大传输时间 |
–max-redirs | 设置最大读取的目录数 |
–max-filesize | 设置最大下载的文件总量 |
-M/–manual | 显示全手动 |
-n/–netrc | 从netrc文件中读取用户名和密码 |
-N/–no-buffer | 禁用缓冲输出 |
-o/–output | 把输出写到该文件中 |
-O/–remote-name | 把输出写到该文件中,保留远程文件的文件名 |
-p/–proxytunnel | 使用HTTP代理 |
-P/–ftp-port | 使用端口地址,而不是使用PASV |
-Q/–quote | 文件传输前,发送命令到服务器 |
-R/–remote-time | 在本地生成文件时,保留远程文件时间 |
-s/–silent | 静音模式。不输出任何东西 |
-S/–show-error | 显示错误 |
-t/–telnet-option | Telnet选项设置 |
-T/–upload-file | 上传文件 |
-u/–user | 设置服务器的用户和密码 |
-U/–proxy-user | 设置代理用户名和密码 |
-V/–version | 显示版本信息 |
-w/–write-out [format] | 什么输出完成后 |
-x/–proxy | 在给定的端口上使用HTTP代理 |
-X/–request | 指定什么命令 |
-y/–speed-time | 放弃限速所要的时间。默认为30 |
-Y/–speed-limit | 停止传输速度的限制,速度时间’秒 |
-z/–time-cond | 传送时间设置 |
Elinks
选项:
-anonymous:是否使用匿名帐号方式;
-auto-submit:对于偶然遇到的第一个表单是否自动提交;
-config-dir:指定elinks指令运行时读取和写入自身的配置和运行状态的存放目录;
-dump:将HTML文档以纯文本的方式打印到标准输出设备;
-version:显示指令的版本信息;
-h:显示帮助信息。
w3m
一些常用的快捷键
H 显示帮助
q 退出,会有提示的
j,k,l,h 移动光标,就像vim中一样
J/K 向下/向上滚屏
< > 左右滚屏
在文本框里press Enter会提示TEXT:然后就可以输入了.输入后press Enter,最后按搜索键
T 打开一个新标签页
Esc-t 打开所有标签页,供你选择,使用jk来上下移动
{ } 在标签页中切换
U 输入新的网址
B 后退
Ctrl+q 关闭当前标签页
/ 向后查找当前页
? 向前查找当前页
在上述三种浏览器中,除了w3m对中文比较好用,其他curl、elinks都对中文编码的识别有缺陷,会出现访问中文页面乱码情况,下一节中对于这种情况的解决办法做一说明。