Linux links命令详解

links 是一个基于文本的网页浏览器,支持图形和文本模式,可以显示表格、框架,支持鼠标操作和多种字符编码,是功能强大的终端浏览器。

一、命令简介

links 是一个开源的文本网页浏览器,支持图形模式(使用 SVGAlib 或 framebuffer)和文本模式。它比 lynx 功能更强大,支持表格、框架、鼠标操作等特性,同时保持了文本浏览器的轻量和高效。

特点: 支持表格和框架、鼠标操作、多种编码、图形模式、可定制性强。

二、安装links

在大多数 Linux 发行版中,可以通过包管理器安装:

Ubuntu/Debian

sudo apt-get install links

CentOS/RHEL

sudo yum install links

# CentOS 8+使用dnf
sudo dnf install links

Fedora

sudo dnf install links

Arch Linux

sudo pacman -S links

macOS

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浏览器(进入交互模式)
links

# 直接打开特定网页
links https://www.google.com

# 启用图形模式(如果支持)
links -g https://www.google.com

# 打开本地HTML文件
links file:///path/to/file.html

links界面说明

links界面通常分为以下几个部分:

  1. 页面内容区域: 显示网页内容,支持表格和框架
  2. 状态栏: 底部显示当前状态和操作提示
  3. 菜单栏: 顶部或底部显示菜单选项(按Esc键打开)

基本导航快捷键

快捷键 功能
/ 上下移动(在链接间跳转)
/ 左右移动(在框架间切换)
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 取消当前操作

六、使用示例

示例1:基本网页浏览

# 浏览网页
links https://www.example.com

# 启用图形模式浏览
links -g https://www.example.com

# 使用指定编码浏览
links -codepage utf-8 https://www.example.com

示例2:查看网页源代码

# 查看网页HTML源代码
links -source https://www.example.com

# 将源代码保存到文件
links -source https://www.example.com > page_source.html

# 在浏览器内查看源代码(按m键)

示例3:提取网页文本内容

# 将网页内容转储为纯文本
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

示例4:使用代理服务器

# 使用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

示例5:下载文件

# 设置下载目录
links -download-dir ~/downloads https://www.example.com

# 在links中下载文件:将光标移动到下载链接,按d键

示例6:匿名浏览

# 匿名模式浏览
links -anonymous https://www.example.com

# 禁用cookie
links -disable-cookies https://www.example.com

示例7:处理表格和框架

# links默认支持表格和框架
links https://www.example.com/table-page.html

# 在框架间切换:使用左右方向键

示例8:批量处理多个URL

#!/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

七、实用技巧

1. 网页内容分析

# 统计网页链接数量
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"

2. 创建网页截图(文本形式)

# 生成网页的文本"截图"
links -dump https://www.example.com > webpage_snapshot.txt

# 带有链接编号的截图
links -dump -html-numbered-links https://www.example.com > webpage_with_links.txt

3. 监控网页变化

#!/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"

4. 自动填写表单

#!/bin/bash
# 使用POST方法提交表单(模拟)
# 注意:links本身不支持自动化表单提交,可以使用curl配合
# 但可以生成预填充的URL

# 示例:生成带有查询参数的URL
SEARCH_TERM="linux+tutorial"
links "https://www.google.com/search?q=$SEARCH_TERM"

5. 检查网站可用性

#!/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"

6. 阅读RSS订阅

# 使用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/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与其他工具对比

工具 类型 特点 适用场景
links 文本浏览器 支持表格、框架、图形模式、鼠标操作、多编码 需要表格支持、框架支持、图形界面的终端浏览
lynx 文本浏览器 轻量、快速、稳定、适合脚本处理 快速浏览、脚本自动化、服务器环境
elinks 文本浏览器 links的增强版,支持标签页、插件、脚本 需要更多功能的终端浏览
w3m 文本浏览器 支持表格、图像显示、鼠标操作 需要图像显示的文本浏览
curl 命令行工具 功能强大、支持多种协议、适合API调用 HTTP请求、文件传输、API测试
wget 下载工具 递归下载、断点续传、适合批量下载 网页镜像、文件下载

十、常见问题

Q: links显示乱码怎么办?

A: 可能是字符编码问题,尝试以下方法:

  1. 使用-codepage选项:links -codepage utf-8 URL
  2. 在配置文件中设置:document.codepage: "utf-8"
  3. 检查终端编码:echo $LANG,确保是UTF-8
  4. 使用iconv转换输出:links -dump URL | iconv -f GBK -t UTF-8
Q: 如何启用links的图形模式?

A: 图形模式需要相应的库支持:

# 安装图形库支持
sudo apt-get install svgalib  # Ubuntu/Debian

# 启用图形模式
links -g

# 指定图形驱动程序
links -g -driver fb

# 如果图形模式不可用,可能是缺少依赖或权限问题
# 尝试使用sudo或检查/dev/fb0权限
Q: links无法打开HTTPS网站

A: 可能是SSL证书问题,尝试:

  1. 更新CA证书:sudo apt-get install ca-certificates
  2. 使用-no-ssl-check选项(不安全)
  3. 检查links是否编译了SSL支持:links -version | grep SSL
  4. 重新编译links并启用SSL支持
Q: 如何保存links中的表单数据?

A: links本身不支持保存表单数据,但可以:

  1. 使用书签保存包含查询参数的URL
  2. 使用脚本生成预填充的URL
  3. 使用其他工具如curl配合cookies
  4. 手动记录表单数据并在需要时重新输入
注意事项:
  • links的某些功能(如图形模式、SSL)需要编译时启用
  • 图形模式可能需要root权限或特殊用户组
  • 现代网站大量使用JavaScript,links可能无法正常显示
  • links不支持JavaScript执行
  • 不同版本的links功能可能有差异
专业技巧:
  • 使用-dump选项快速获取网页内容用于脚本处理
  • 在图形模式下可以获得更好的显示效果(如果有图形环境)
  • 利用表格支持功能查看数据密集型网页
  • 使用配置文件定制links的行为和外观
  • 结合鼠标操作(如果终端支持)提高浏览效率