百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

如何在CentOS上安装和使用w3m浏览器

nanshan 2025-03-04 13:19 13 浏览 0 评论

在通过SSH和一些终端软件访问Linux服务器时,通常只能使用Shell命令行,而不能使用图形用户界面。若工作环境中只能使用Shell,同时又需要通过互联网查询资料时,不能使用传统的图形化浏览器无疑是非常不方便的。幸好,w3m可以实现在Shell中访问互联网的大部分功能。

w3m是个开放源代码的文字式网页浏览器。w3m支持表格、框架、SSL连线、颜色。如果是在合适的终端软件上,甚至还支持“内联图像(Inline Image)”,这个软件通常会尽量呈现出网页本来的排版和布局。“w3m”这名字是来自“WWW-wo-Miru(WWWを見る)”,也就是日文的“看WWW”之义。

一、环境描述

1. 虚拟机配置

  • CPU:单核 2.4GHz

  • 内存:DDR3 1333 2GB

  • 硬盘:120GB

  • IP地址:192.168.21.135

  • 操作系统:CentOS 6.6 x86_64 Minimal

2. 编译环境

  • GCC:4.4.7 20120313

  • YUM源:官方Base源 + EPEL源 + RepoForge源

3. w3m

  • 版本:w3m-0.5.3.tar.gz

  • 安装方式:编译安装(本文内容)

二、编译安装

1. 添加软件源

在Shell中运行以下命令,添加EPEL和RepoForge的软件源:

rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/repoforge/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm

2. 安装依赖

在Shell中运行以下命令,安装依赖包:

yum install libgnomeui-devel

yum install gc-devel imlib-devel imlib2-devel gdk-pixbuf2-devel gpm-devel ncurses-devel openssl-devel compface-devel man nkf wget

yum groupinstall "Development Tools"

注意,需要遵守命令执行的顺序,否则很有可能会安装CentOS官方源中的0.52版本的w3m。

3. 下载源码包

在Shell中运行以下命令,下载w3m的源码包:

cd /root/Downloads

wget http://nchc.dl.sourceforge.net/project/w3m/w3m/w3m-0.5.3/w3m-0.5.3.tar.gz

4. 解压源码包

在Shell中运行以下命令,解压缩源码包:

tar xvzf w3m-0.5.3.tar.gz

cd w3m-0.5.3

5. 编译安装

在Shell中运行以下命令,编译安装w3m:

./configure --prefix=/usr/local/w3m --enable-keymap=w3m --enable-image="x11,fb,fb+s" --with-charset=GBK --enable-japanese --enable-gopher --with-libiconv-prefix --with-libintl-prefix --with-imagelib="gtk2 gdk-pixbuf imlib imlib2" --with-migemo --with-editor --with-mailer --with-browser --with-ssl --with-termlib="terminfo mytinfo termcap ncurses curses" --with-gc

make && make install

上述的编译配置命令会将w3m安装在/usr/local/w3m目录,并且使用w3m自己的键盘映射。

6. 验证

在Shell中运行w3m,若命令输出如下图所示,则表示编译安装成功:

三、命令选项

由于采用最小化的方式来安装CentOS系统,这种方式默认是不会建立各种命令手册的索引数据库的,这样会导致通过关键字搜索手册时找不到任何结果。需要在Shell中运行以下命令:

makewhatis

1. w3mman

w3mman是一种基于w3m浏览器的man工具,可以用来查看各种Linux命令的手册,基本用法如下所示:

  • w3mman [-M path] [section] page

  • w3mman [-M path] -k keyword

可以使用的命令行选项如下所示:

  • -M path

    显式指定命令手册的路径,会覆盖MANPATH环境变量指定的路径。

  • section

    显式指定命令所属的类别。手册中分为几个section,section号与其对应的内容为:

    1:可执行程序或shell命令

    2:系统调用(由内核提供的函数)

    3:库调用(程序库中的函数)

    4:特殊文件(通常是在/dev目录找到的设备文件)

    5:文件格式和约定(例如,/etc/passwd

    6:游戏

    7:杂项

    8:系统管理命令(通常需要root权限)

    9:内核例程

  • page

    section下面再分为page,也就是每个Linux命令的手册页面,通常名称就是命令名。不同的section可能含有相同名字的page,例如section(1)、section(2)都含有叫kill的page,这两个page表示为kill(1),kill(2),括号中的数字为section号,表示在对应section中的page。

  • -k keyword

    这个选项会在命令手册的索引数据库中搜索指定的关键字。

2. w3m

w3m是一种基于文本的Web浏览器,基本用法如下所示:

  • w3m [options] [URL or filename]

可以在命令行中运行w3m -h命令,显示当前所有可用选项的完整列表。在启动时,w3m将会加载命令行指定的任何本地文件或远程URL。如果想要查看运行时选项的帮助信息,那么在运行w3m时按下“H”快捷键即可。可用的命令行选项如下所示:

  • -t tab

    设置标签页的宽度,默认值为8。

  • -r

    忽略退格键的效果。

  • -l line

    当从标准输入读取text/plain文档时,指定w3m内部保留的行号,默认值为10000。

  • -I charset

    指定文档的字符集。

  • -O

    指定显示/输出的字符集。

  • -e

    使用EUC-JP日文编码。

  • -s

    使用Shift_JIS日文编码。

  • -j

    使用JIS日文编码。

  • -B

    加载书签(收藏夹)。

  • -bookmark file

    指定书签文件。

  • -T type

    指定文档类型。若不使用这个选项,文档类型取决于文件名的后缀。如果确定失败,那么就将文档当做text/plain格式。可选值为text/html和text/plain。

  • -m

    互联网消息模式。

  • -v

    可视化的启动模式。

  • -M

    单色显示模式。

  • -N

    在每个新的标签页打开命令行指定的URL。

  • -F

    自动渲染框架。

  • -cols width

    指定列的宽度(和-dump选项同时使用)。

  • -ppc count

    指定每个字符的像素数量(可取值:4.0…32.0)。

  • -ppl count

    指定每行的像素数量(可取值:4.0…64.0)。

  • -dump

    将格式化页面的内容转储至标准输出(stdout)。

  • -dump_head

    将HEAD请求的响应信息转储至标准输出(stdout)。

  • -dump_source

    将页面源码转储至标准输出(stdout)。

  • -dump_both

    将页面的HEAD和源码转储至标准输出(stdout)。

  • -dump_extra

    将页面的HEAD、源码和额外信息转储至标准输出(stdout)。

  • -post file

    使用POST方法提交指定文件的内容。

  • -header string

    插入指定字符串作为页面头部。

  • +

    跳转至行数为的行。

  • -num

    显示行号。

  • -no-proxy

    不使用代理服务器。

  • -4

    只使用IPv4协议(等同于-o dns_order=4选项)。

  • -6

    只使用IPv6协议(等同于-o dns_order=6选项)。

  • -no-mouse

    不使用鼠标。

  • -cookie

    使用cookie。

  • -no-cookie

    不使用cookie。

  • -graph

    表格和菜单的边界使用DEC专用的图形。

  • -no-graph

    表格和菜单的边界使用ASCII字符。

  • -S

    压缩多个空行。

  • -W

    切换循环搜索模式。

  • -X

    不使用termcap命令的init/deinit方法。

  • title[=TERM]

    将缓冲名称设置为终端的标题字符串。

  • -o opt=value

    为指定的配置选项赋值。

  • -show-option

    输出所有的配置选项。

  • -config file

    指定配置文件。

  • -help

    输出w3m的帮助信息。

  • -version

    输出w3m的版本信息。

  • -reqlog

    记录请求日志文件。

四、文档颜色

超链接和图像的显示效果如下表所示:

彩色模式单色模式
超链接蓝色
内联图像绿色
表单输入红色

可以通过选项配置命令“o”来自定义颜色。

五、快捷键

在调用之后,你可以通过键盘的单字符命令操作w3m浏览器。w3m默认的快捷键设置如下所示:

1. 页面/光标动作

  • spacectrl+v

    下一页

  • besc+v

    上一页

  • lctrl+f

    光标右移

  • hctrl+b

    光标左移

  • jctrl+n

    光标下移

  • kctrl+p

    光标上移

  • shift+j

    向上滚动一行

  • shift+k

    向下滚动一行

  • ^ctrl+a

    跳转至行首

  • $ctrl+e

    跳转至行尾

  • w

    跳转至下一个单词

  • shift+w

    跳转至上一个单词

  • >

    将屏幕右移

  • <

    将屏幕左移

  • .

    将屏幕右移一列

  • ,

    将屏幕左移一列

  • g

    跳转至首行

  • shift+g

    跳转至末行

  • 数字+g

    跳转至指定行号

  • shift+Z

    跳转至中间的行

  • z

    跳转至中间的列

  • tab

    跳转至下一个超链接

  • ctrl+uesc+tab

    跳转至上一个超链接

  • [

    跳转至第一个超链接

  • ]

    跳转至最后一个超链接

  • shift+t

    打开一个新的标签页

  • esc+t

    打开标签页列表

  • {

    向左切换标签页

  • }

    向右切换标签页

  • ctrl+q

    关闭当前的标签页

2. 超链接操作

  • enter

    进入超链接

  • esc+enter

    将链接保存至文件

  • u

    查看链接的URL

  • i

    查看图像的URL

  • shift+i

    查看内联图像

  • esc+I

    将内联图像保存至文件

  • :

    将URL字符串标记为锚链接

  • c

    查看当前页面的URL

  • =

    显示当前文档的相关信息

  • ctrl+h

    查看URL的浏览历史

  • shift+f

    渲染框架

3. 文件/流操作

  • shift+u

    打开指定的URL

  • shift+v

    查看新指定的文件

  • @

    加载和执行Shell命令

  • #

    浏览和执行Shell命令

4. 缓冲操作

  • shift+b

    回退至前一个页面缓冲(上一页)

  • v

    查看HTML源码

  • s

    选择页面缓冲

  • shift+e

    编辑页面缓冲源

  • ctrl+l

    重绘屏幕

  • shift+r

    重新加载页面缓冲(刷新页面)

  • shift+s

    保存页面缓冲

  • esc+s

    保存页面源码

  • esc+e

    编辑缓冲图像

5. 缓冲选择模式

按下s键即可进入缓冲选择模式,该模式可用的快捷键如下所示:

  • kctrl+p

    选择前一个页面缓冲

  • jctrl+n

    选择下一个页面缓冲

  • shift+d

    删除选择的页面缓冲

  • enter

    跳转至选择的页面缓冲

6. 书签操作

  • esc+b

    加载书签

  • esc+a

    将当前页面添加至书签

7. 搜索

  • ctrl+s

    向前搜索

  • ctrl+r

    向后搜索

  • n

    搜索下一个

  • shift+n

    搜索上一个

  • ctrl+w

    切换循环搜索模式

8. 标记操作

  • ctrl+space

    设置/清除标记

  • esc+p

    跳转至上一个标记

  • esc+n

    跳转至下一个标记

  • "

    通过正则表达式标记

9. 杂项

  • !

    执行Shell命令

  • shift+h

    打开帮助页面

  • o

    设置选项

  • ctrl+k

    显示cookie信息

  • ctrl+c

    停止

  • ctrl+z

    挂起

  • q

    退出(需要确认退出)

  • shift+q

    退出(不需要确认)

10. 行编辑模式

在执行Shell命令或者搜索关键字时,便会使用行编辑模式,该模式可用的快捷键如下所示:

  • ctrl+f

    光标向前移动

  • ctrl+b

    光标向后移动

  • ctrl+h

    删除前一个字符

  • ctrl+d

    删除当前字符

  • ctrl+k

    删除光标后面的所有字符

  • ctrl+u

    删除光标前面的所有字符

  • ctrl+a

    光标移动至行首

  • ctrl+e

    光标移动至行尾

  • ctrl+p

    从历史列表中获取前一个字符串

  • ctrl+n

    从历史列表中获取下一个字符串

  • tab

    补全文件名或路径名

  • enter

    接受输入的内容

六、鼠标操作

如果w3m的编译配置包含鼠标选项,那么当你在xterm/kterm/rxvt(在这种情况下,你就必须将TERM环境变量设置为xterm或kterm)终端中使用w3m,或者在GPM环境中使用w3m时,你就可以在浏览网页时使用鼠标。可用的鼠标操作如下所示:

  • 单击左键

    将光标移动至鼠标当前所在的位置。如果你点击了光标,且光标在一个超链接上面,那么就打开这个超链接。

  • 单击中键

    回退至前一个页面缓冲。

  • 单击右键

    打开弹出菜单。你可以在菜单中点击选择一个条目。

  • 拖动左键

    滚动文档。默认行为是抓取文档,然后拖动这个文档。

七、使用示例

在Shell中运行以下命令,打开公司内部的Zabbix监控系统:

w3m -no-proxy -cookie http://zabbix.cnsuning.com

打开的首页如下图所示:

输入自己的工号和密码,将光标移至Sign in超链接,然后按下回车键,登录入监控系统,如下图所示:

此时,按下快捷键ctrl+k,便能查看相关的cookie信息,如下图所示:

回到zabbix的监控数据页面,按下快捷键v,便能看到这个页面的HTML源码,如下图所示:

再按一次快捷键v,回到网页浏览的模式,然后再按快捷键esc-a,此时就会将监控页面添加至书签(收藏夹),如下图所示:

相关推荐

使用nginx配置域名及禁止直接通过IP访问网站

前段时间刚搭建好这个网站,一直没有关注一个问题,那就是IP地址也可以访问我的网站,今天就专门研究了一下nginx配置问题,争取把这个问题研究透彻。1.nginx配置域名及禁止直接通过IP访问先来看n...

如何在 Linux 中使用 PID 号查找进程名称?

在Linux的复杂世界中,进程是系统运行的核心,每个进程都由一个唯一的「进程ID」(PID)标识。无论是系统管理员在排查失控进程,还是开发者在调试应用程序,知道如何将PID映射到对应的进程名称都是一项...

Linux服务器硬件信息查询与日常运维命令总结

1.服务器硬件信息查询1.1CPU信息查询命令功能描述示例lscpu显示CPU架构、核心数、线程数等lscpucat/proc/cpuinfo详细CPU信息(型号、缓存、频率)cat/proc/c...

Ubuntu 操作系统常用命令详解(ubuntu常用的50个命令)

UbuntuLinux是一款流行的开源操作系统,广泛应用于服务器、开发、学习等场景。命令行是Ubuntu的灵魂,也是高效、稳定管理系统的利器。本文按照各大常用领域,详细总结Ubuntu必学...

从 0 到 1:打造基于 Linux 的私有 API 网关平台

在当今微服务架构盛行的时代,API网关作为服务入口和安全屏障,其重要性日益凸显。你是否想过,不依赖商业方案,完全基于开源组件,在Linux上构建一个属于自己的私有API网关平台?今天就带你...

Nginx搭建简单直播服务器(nginx 直播服务器搭建)

前言使用Nginx+Nginx-rtmp-module在Ubuntu中搭建简单的rtmp推流直播服务器。服务器环境Ubuntu16.04相关概念RTMP:RTMP协议是RealTi...

Linux连不上网?远程卡?这篇网络管理指南你不能错过!

大家好!今天咱们聊个所有Linux用户都躲不开的“老大难”——网络管理。我猜你肯定遇到过这些崩溃时刻:新装的Linux系统连不上Wi-Fi,急得直拍桌子;远程服务器SSH连不上,提示“Connecti...

7天从0到上线!手把手教你用Python Flask打造爆款Web服务

一、为什么全网开发者都在疯学Flask?在当今Web开发的战场,Flask就像一把“瑞士军刀”——轻量级架构让新手3天速成,灵活扩展能力又能支撑百万级用户项目!对比Django的“重型装甲”,Flas...

nginx配置文件详解(nginx反向代理配置详解)

Nginx是一个强大的免费开源的HTTP服务器和反向代理服务器。在Web开发项目中,nginx常用作为静态文件服务器处理静态文件,并负责将动态请求转发至应用服务器(如Django,Flask,et...

30 分钟搞定 Docker 安装与 Nginx 部署,轻松搭建高效 Web 服务

在云计算时代,利用容器技术快速部署应用已成为开发者必备技能。本文将手把手教你在阿里云轻量应用服务器上,通过Docker高效部署Nginx并发布静态网站,全程可视化操作,新手也能轻松上手!一、准...

Nginx 配置实战:从摸鱼到部署,手把手教你搞定生产级配置

各位摸鱼搭子们!今天咱不聊代码里的NullPointerException,改聊点「摸鱼必备生存技能」——Nginx配置!先灵魂拷问一下:写了一堆接口却不会部署?服务器被恶意请求打崩过?静态资源加载...

如何使用 Daphne + Nginx + supervisor部署 Django

前言:从Django3.0开始支持ASGI应用程序运行,使Django完全具有异步功能。Django目前已经更新到5.0,对异步支持也越来越好。但是,异步功能将仅对在ASGI下运行的应用程序可用...

Docker命令最全详解(39个最常用命令)

Docker是云原生的核心,也是大厂的必备技能,下面我就全面来详解Docker核心命令@mikechen本文作者:陈睿|mikechen文章来源:mikechen.cc一、Docker基本命令doc...

ubuntu中如何查看是否已经安装了nginx

在Ubuntu系统中,可以通过以下几种方法检查是否已安装Nginx:方法1:使用dpkg命令(适用于Debian/Ubuntu)bashdpkg-l|grepnginx输出...

OVN 概念与实践(德育概念的泛化在理论和实践中有什么弊端?)

今天我们来讲解OVN的概念和基础实践,要理解本篇博客的内容,需要前置学习:Linux网络设备-Bridge&VethPairLinux网络设备-Bridge详解OVS+Fa...

取消回复欢迎 发表评论: