links 是一个开源的文本网页浏览器,支持图形模式(使用 SVGAlib 或 framebuffer)和文本模式。它比 lynx 功能更强大,支持表格、框架、鼠标操作等特性,同时保持了文本浏览器的轻量和高效。
在大多数 Linux 发行版中,可以通过包管理器安装:
sudo apt-get install links
sudo yum install links
# CentOS 8+使用dnf
sudo dnf install links
sudo dnf install links
sudo pacman -S links
brew install links
# 下载源代码
wget http://links.twibright.com/download/links-2.28.tar.gz
tar -xzf links-2.28.tar.gz
cd links-2.28
# 配置和编译
./configure
make
sudo make install
links -version
links [选项] [URL]
| 选项 | 说明 |
|---|---|
-g |
启用图形模式(需要图形支持) |
-driver |
指定图形驱动程序(fb, directfb, svgalib) |
-no-connect |
不自动连接到网络 |
-source |
显示网页源代码 |
-dump |
将网页内容输出到标准输出并退出 |
-html-dump |
将网页以HTML格式输出 |
-codepage |
指定字符编码(如utf-8) |
-anonymous |
匿名模式,不发送Referer和User-Agent |
-enable-cookies |
启用cookie支持 |
-disable-cookies |
禁用cookie支持 |
-http-proxy |
设置HTTP代理(host:port) |
-ftp-proxy |
设置FTP代理(host:port) |
-no-home |
不将主页设置为起始页 |
-force-html |
强制将输入视为HTML |
-html-numbered-links |
在HTML转储中编号链接 |
-html-goto |
在HTML转储中转到特定链接 |
-html-bare |
在HTML转储中输出原始HTML |
-no-references |
不显示链接引用 |
-download-dir |
设置下载目录 |
-retries |
设置重试次数 |
-receive-timeout |
设置接收超时(秒) |
-unrestartable-receive-timeout |
设置不可重启的接收超时 |
-h 或 -help |
显示帮助信息 |
-v 或 -version |
显示版本信息 |
# 启动links浏览器(进入交互模式)
links
# 直接打开特定网页
links https://www.google.com
# 启用图形模式(如果支持)
links -g https://www.google.com
# 打开本地HTML文件
links file:///path/to/file.html
links界面通常分为以下几个部分:
| 快捷键 | 功能 |
|---|---|
↑ / ↓ |
上下移动(在链接间跳转) |
← / → |
左右移动(在框架间切换) |
Enter |
跟随当前链接 |
Esc |
打开主菜单 |
Tab |
跳转到下一个输入框或链接 |
Shift+Tab |
跳转到上一个输入框或链接 |
g |
转到新URL |
u |
查看当前URL |
n |
查找文本(向下) |
N |
查找文本(向上) |
/ |
搜索模式 |
b |
返回上一页 |
f |
前进下一页 |
r |
重新加载页面 |
z |
停止加载 |
q |
退出links |
Q |
强制退出 |
a |
添加书签 |
s |
查看书签 |
d |
下载链接 |
D |
查看下载管理 |
p |
打印/保存页面 |
i |
查看页面信息 |
m |
查看源代码 |
t |
打开新标签页 |
T |
切换标签页 |
Space |
向下翻页 |
Backspace |
向上翻页 |
Ctrl+G |
取消当前操作 |
# 浏览网页
links https://www.example.com
# 启用图形模式浏览
links -g https://www.example.com
# 使用指定编码浏览
links -codepage utf-8 https://www.example.com
# 查看网页HTML源代码
links -source https://www.example.com
# 将源代码保存到文件
links -source https://www.example.com > page_source.html
# 在浏览器内查看源代码(按m键)
# 将网页内容转储为纯文本
links -dump https://www.example.com
# 以HTML格式转储网页内容
links -html-dump https://www.example.com > page.html
# 转储内容并编号链接
links -dump -html-numbered-links https://www.example.com
# 使用HTTP代理
links -http-proxy proxy.example.com:8080 https://www.example.com
# 使用HTTP代理并启用认证
links -http-proxy user:pass@proxy.example.com:8080 https://www.example.com
# 使用SOCKS代理(需要编译时支持)
links -socks-proxy socks5://proxy.example.com:1080 https://www.example.com
# 设置下载目录
links -download-dir ~/downloads https://www.example.com
# 在links中下载文件:将光标移动到下载链接,按d键
# 匿名模式浏览
links -anonymous https://www.example.com
# 禁用cookie
links -disable-cookies https://www.example.com
# links默认支持表格和框架
links https://www.example.com/table-page.html
# 在框架间切换:使用左右方向键
#!/bin/bash
# 批量获取网页标题
urls=("https://google.com" "https://github.com" "https://stackoverflow.com")
for url in "${urls[@]}"; do
echo "处理: $url"
links -dump "$url" | head -n 5
echo "---"
done
# 统计网页链接数量
links -dump https://www.example.com | grep -c "http"
# 提取网页中所有链接
links -dump -html-numbered-links https://www.example.com | grep -E "^ *[0-9]+"
# 查找特定关键词
links -dump https://www.example.com | grep -i "keyword"
# 生成网页的文本"截图"
links -dump https://www.example.com > webpage_snapshot.txt
# 带有链接编号的截图
links -dump -html-numbered-links https://www.example.com > webpage_with_links.txt
#!/bin/bash
# 监控网页内容变化
URL="https://www.example.com"
OLD_FILE="/tmp/old_content.txt"
NEW_FILE="/tmp/new_content.txt"
# 获取当前内容
links -dump "$URL" > "$NEW_FILE"
# 比较变化
if [ -f "$OLD_FILE" ]; then
if ! diff "$OLD_FILE" "$NEW_FILE" > /dev/null; then
echo "$(date): 网页内容已变化" >> /var/log/web_monitor.log
fi
fi
# 更新旧内容
mv "$NEW_FILE" "$OLD_FILE"
#!/bin/bash
# 使用POST方法提交表单(模拟)
# 注意:links本身不支持自动化表单提交,可以使用curl配合
# 但可以生成预填充的URL
# 示例:生成带有查询参数的URL
SEARCH_TERM="linux+tutorial"
links "https://www.google.com/search?q=$SEARCH_TERM"
#!/bin/bash
# 使用links检查网站是否可访问
check_site() {
url=$1
if links -dump "$url" > /dev/null 2>&1; then
echo "$url: 可访问"
return 0
else
echo "$url: 不可访问"
return 1
fi
}
# 检查多个网站
check_site "https://google.com"
check_site "https://github.com"
# 使用links阅读RSS订阅
links -dump "https://example.com/feed.rss" | grep -A 3 -B 1 "title\|description"
# 格式化RSS输出
links -dump "https://example.com/feed.rss" | \
awk '/title/ {print "标题:", $0} /description/ {print "描述:", $0; print "---"}'
links的配置文件通常位于 ~/.links/links.cfg 或 /etc/links.conf。可以配置以下选项:
# 查看当前配置
links -config
# 编辑个人配置文件
vim ~/.links/links.cfg
# ~/.links/links.cfg 示例
# 界面设置
ui.language: en
ui.show_status_bar: 1
ui.show_menu_bar: 1
ui.show_cursor: 1
# 网络设置
http.proxy.enable: 0
http.proxy.host: ""
http.proxy.port: 0
http.user_agent: "Links/2.28"
# 显示设置
document.colors: 1
document.underline_links: 1
document.bold_links: 1
document.codepage: "utf-8"
# 表格设置
document.table_move_order: 1
document.table_cellspacing: 1
# 缓存设置
cache.size: 20971520
cache.memory_cache_size: 1048576
# 书签设置
bookmarks.file: "~/.links/bookmarks.html"
# 下载设置
download.directory: "~/downloads"
download.overwrite: 0
# 安全设置
security.enable_cookies: 1
security.accept_all_cookies: 0
| 工具 | 类型 | 特点 | 适用场景 |
|---|---|---|---|
| links | 文本浏览器 | 支持表格、框架、图形模式、鼠标操作、多编码 | 需要表格支持、框架支持、图形界面的终端浏览 |
| lynx | 文本浏览器 | 轻量、快速、稳定、适合脚本处理 | 快速浏览、脚本自动化、服务器环境 |
| elinks | 文本浏览器 | links的增强版,支持标签页、插件、脚本 | 需要更多功能的终端浏览 |
| w3m | 文本浏览器 | 支持表格、图像显示、鼠标操作 | 需要图像显示的文本浏览 |
| curl | 命令行工具 | 功能强大、支持多种协议、适合API调用 | HTTP请求、文件传输、API测试 |
| wget | 下载工具 | 递归下载、断点续传、适合批量下载 | 网页镜像、文件下载 |
A: 可能是字符编码问题,尝试以下方法:
-codepage选项:links -codepage utf-8 URLdocument.codepage: "utf-8"echo $LANG,确保是UTF-8links -dump URL | iconv -f GBK -t UTF-8A: 图形模式需要相应的库支持:
# 安装图形库支持
sudo apt-get install svgalib # Ubuntu/Debian
# 启用图形模式
links -g
# 指定图形驱动程序
links -g -driver fb
# 如果图形模式不可用,可能是缺少依赖或权限问题
# 尝试使用sudo或检查/dev/fb0权限
A: 可能是SSL证书问题,尝试:
sudo apt-get install ca-certificates-no-ssl-check选项(不安全)links -version | grep SSLA: links本身不支持保存表单数据,但可以:
-dump选项快速获取网页内容用于脚本处理