news 2026/6/14 18:52:11

Linux命令-pinky(轻量级finger查询工具)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux命令-pinky(轻量级finger查询工具)

Linux命令-pinky(轻量级finger查询工具)

📋快速参考pinky是 GNU coreutils 的一部分,用于查询远程主机上的用户信息(finger 协议)。它是finger命令的简化版本,输出更简洁,适合脚本调用。


📌 目录

  • 命令简介
  • 语法格式
  • 常用选项
  • 输出字段说明
  • 实战示例
  • 与其他命令对比
  • 常见问题
  • 自动化脚本

🔰 命令简介

pinky是一个轻量级 finger 查询工具,用于查询远程主机上的用户信息。它通过Finger 协议(RFC 1288)与远程主机通信,获取用户登录状态、空闲时间等信息。

💡 适用场景

场景说明
远程用户查询查询远程主机上有哪些用户在线
脚本集成输出格式简单,适合脚本解析
快速检查finger命令更轻量,启动更快

⚠️注意:现代系统中 Finger 协议通常被禁用(安全风险),pinky主要用于查询允许 Finger 协议的主机


📖 语法格式

pinky[选项][user@]host

参数说明

参数说明
user可选指定查询的用户名(不指定则查询所有用户)
host必填远程主机地址(IP 或域名)

基本用法

# 查询远程主机上的所有用户pinky example.com# 查询指定用户pinky alice@example.com

⚙️ 常用选项

选项说明
-l, --long使用长格式输出(更多字段)
-b, --brief使用简短格式输出(默认)
-s, --short使用极简格式输出
-h, --help显示帮助信息
-V, --version显示版本信息

输出格式对比

格式选项输出字段适用场景
-b(默认)用户名、终端、登录时间、闲置时间快速查看
-l(长格式)包含办公室、电话等扩展信息详细信息查询
-s(短格式)仅用户名和终端脚本解析

📊 输出字段说明

默认输出(brief 格式)

Login TTY FROM IDLE Host alice tty1 192.168.1.100 2m workstation bob tty2 10.0.0.5 10m laptop
字段说明
Login用户名
TTY终端类型(tty1,pts/0等)
FROM来源 IP 地址或主机名
IDLE闲置时间(2m= 2分钟,1h= 1小时)
Host来源主机名(如果有反向 DNS)

长格式输出(-l 选项)

Login name: alice In real life: Alice Smith Office: /office/301 Home phone: +1-555-1234 Directory: /home/alice Shell: /bin/bash Last login: Thu Jun 12 09:30:00 2026 on tty1 from workstation New mail received: Thu Jun 12 08:00:00 2026

🔥 实战示例

1️⃣ 基本查询

# 查询远程主机上的所有用户pinky example.com# 查询指定用户pinky alice@example.com

输出示例

Login TTY FROM IDLE Host alice tty1 192.168.1.100 2m workstation

2️⃣ 使用长格式查询

# 获取详细信息pinky-lexample.com# 查询指定用户(长格式)pinky-lalice@example.com

输出示例

Login name: alice In real life: Alice Smith Office: /office/301 Home phone: +1-555-1234 Directory: /home/alice Shell: /bin/bash Last login: Thu Jun 12 09:30:00 2026 on tty1 from workstation

3️⃣ 脚本集成(解析输出)

#!/bin/bash# 查询远程主机,检查是否有用户在线HOST="example.com"USERS=$(pinky-s"$HOST"|tail-n+2|wc-l)if["$USERS"-gt0];thenecho"✅$HOST上有$USERS个用户在线"pinky-b"$HOST"elseecho"⚠️$HOST上没有用户在线或无法查询"fi

关键点

  • 使用-s(short) 格式输出更简洁,适合脚本解析
  • tail -n +2跳过标题行
  • wc -l统计用户数量

4️⃣ 批量查询多个主机

#!/bin/bash# 批量查询多个主机的用户状态HOSTS=("host1.example.com""host2.example.com""host3.example.com")forhostin"${HOSTS[@]}";doecho"📡 查询$host..."ifping-c1"$host"&>/dev/null;thenecho"✅$host可达,用户列表:"pinky-b"$host"2>/dev/null||echo" Finger 协议被禁用"elseecho"❌$host不可达"fiecho"---"done

5️⃣ 结合finger命令对比

# 使用 pinky 查询(轻量级)pinky example.com# 使用 finger 查询(功能更全)finger @example.com# 对比输出格式echo"=== pinky (brief) ==="&&pinky-bexample.comecho"=== finger ==="&&finger @example.com

区别

  • pinky:输出简洁,适合脚本
  • finger:输出详细,支持更多选项(如-m,-s,-l

🔍 与其他命令对比

命令协议输出详细度适用场景
pinkyFinger⭐⭐脚本调用、快速查询
fingerFinger⭐⭐⭐⭐交互式查询、详细信息
who本地⭐⭐查询本地登录用户
w本地⭐⭐⭐查询本地用户 + 正在执行的命令
users本地仅显示用户名列表

典型对比示例

# 查询本地用户(who 命令)who# 输出:alice tty1 2026-06-12 09:30# bob tty2 2026-06-12 09:35# 查询远程用户(pinky 命令)pinky example.com# 输出:Login TTY FROM IDLE Host# alice tty1 192.168.1.100 2m workstation

💡提示pinkyfinger查询远程主机,而who/w/users查询本地系统


❓ 常见问题

Q1:pinky命令找不到?

A: 安装coreutils包:

# Debian/Ubuntusudoapt-getinstallcoreutils# RHEL/CentOSsudoyuminstallcoreutils# Arch Linuxsudopacman-Scoreutils

Q2: 查询远程主机时提示 “Connection refused”?

A: 远程主机的 Finger 服务未运行被防火墙拦截

排查步骤

# 1. 检查网络连通性pingexample.com# 2. 检查 Finger 端口(79)是否开放nc-zvexample.com79# 或telnet example.com79# 3. 如果端口关闭,说明远程主机未运行 Finger 服务echo"⚠️ 远程主机未运行 Finger 服务(端口 79 未开放)"

🔒安全提示:现代系统通常禁用 Finger 服务(端口 79),因为它会暴露用户信息(安全风险)。


Q3: 如何启用 Finger 服务(服务器端)?

A: 在允许 Finger 查询的主机上安装并启动服务:

# Debian/Ubuntusudoapt-getinstallfingerdsudosystemctlenablefingerdsudosystemctl start fingerd# RHEL/CentOSsudoyuminstallfinger-serversudosystemctlenablefingersudosystemctl start finger

验证服务运行

# 检查端口 79 是否监听sudoss-tlnp|grep:79# 或sudonetstat-tlnp|grep:79

Q4:pinkyfinger的输出有什么区别?

A: 对比示例:

# pinky 输出(简洁)pinky-bexample.com# Login TTY FROM IDLE Host# alice tty1 192.168.1.100 2m workstation# finger 输出(详细)finger @example.com# Login Name TTY Idle Login Time Office Phone# alice Alice Sm tty1 2m Jun 12 09:30 /off/301 +1-555

关键区别

  • pinky:输出字段少,适合脚本解析
  • finger:输出字段多(包含办公室、电话等),适合人工阅读

🤖 自动化脚本

脚本1:定期检查远程主机用户活动

#!/bin/bash# 定期检查远程主机用户活动,如有新用户登录则告警HOST="example.com"LOG_FILE="/var/log/pinky_monitor.log"INTERVAL=300# 5分钟检查一次whiletrue;doTIMESTAMP=$(date'+%Y-%m-%d %H:%M:%S')USERS=$(pinky-s"$HOST"2>/dev/null|tail-n+2)if[-n"$USERS"];thenecho"[$TIMESTAMP]$HOST用户活动:">>"$LOG_FILE"echo"$USERS">>"$LOG_FILE"echo"---">>"$LOG_FILE"elseecho"[$TIMESTAMP]$HOST无用户活动">>"$LOG_FILE"fisleep"$INTERVAL"done

使用方法

# 赋予执行权限chmod+x pinky_monitor.sh# 后台运行nohup./pinky_monitor.sh&# 查看日志tail-f/var/log/pinky_monitor.log

脚本2:HTML 格式输出(适合邮件报告)

#!/bin/bash# 生成 HTML 格式的用户报告HOST="example.com"HTML_FILE="pinky_report.html"cat>"$HTML_FILE"<<'EOF' <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Pinky 查询报告</title> <style> body { font-family: Arial, sans-serif; margin: 20px; } table { border-collapse: collapse; width: 100%; } th, td { border: 1px solid #ddd; padding: 8px; text-align: left; } th { background-color: #f2f2f2; } tr:hover { background-color: #f5f5f5; } </style> </head> <body> <h1>🖥️ 远程主机用户报告</h1> <p>生成时间:<kbd>$(date)</kbd></p> <h2>主机:<kbd>$HOST</kbd></h2> <table> <tr><th>用户名</th><th>终端</th><th>来源 IP</th><th>闲置时间</th><th>主机名</th></tr> EOF# 解析 pinky 输出并转换为 HTML 表格行pinky-b"$HOST"2>/dev/null|tail-n+2|whileread-rline;doLOGIN=$(echo"$line"|awk'{print $1}')TTY=$(echo"$line"|awk'{print $2}')FROM=$(echo"$line"|awk'{print $3}')IDLE=$(echo"$line"|awk'{print $4}')HOSTNAME=$(echo"$line"|awk'{print $5}')cat>>"$HTML_FILE"<<ROW_EOF <tr><td>$LOGIN</td><td>$TTY</td><td>$FROM</td><td>$IDLE</td><td>$HOSTNAME</td></tr> ROW_EOFdonecat>>"$HTML_FILE"<<'EOF' </table> </body> </html> EOFecho"✅ HTML 报告已生成:$HTML_FILE"

输出示例

<!DOCTYPEhtml><html><head><title>Pinky 查询报告</title></head><body><h1>🖥️ 远程主机用户报告</h1><p>生成时间:<kbd>Thu Jun 12 10:00:00 CST 2026</kbd></p><h2>主机:<kbd>example.com</kbd></h2><table><tr><th>用户名</th><th>终端</th><th>来源 IP</th><th>闲置时间</th><th>主机名</th></tr><tr><td>alice</td><td>tty1</td><td>192.168.1.100</td><td>2m</td><td>workstation</td></tr></table></body></html>

📚 扩展阅读

Finger 协议(RFC 1288)

  • 端口:79(TCP)
  • 用途:查询远程主机的用户信息
  • 安全风险暴露用户名、登录时间等敏感信息,现代系统通常禁用

相关命令

命令说明用法
finger功能完整的 Finger 客户端finger @host
who显示本地登录用户who
w显示本地用户 + 正在运行的命令w
users显示本地用户名列表users
last显示登录历史last

🎯 总结

要点说明
命令类型远程用户查询工具(Finger 协议)
输出特点简洁,适合脚本解析
典型用法pinky hostpinky user@host
适用场景查询允许 Finger 协议的主机
注意事项现代系统通常禁用 Finger 服务(端口 79)

快速参考卡片

# 🚀 快速命令pinkyhost# 查询主机上的所有用户pinky user@host# 查询指定用户pinky-lhost# 长格式输出pinky-shost# 短格式输出(适合脚本)# 🔍 检查 Finger 服务是否运行nc-zvhost79# 检查端口 79telnethost79# 连接 Finger 服务# 📋 解析输出(脚本用)pinky-shost|tail-n+2|awk'{print $1}'# 仅提取用户名

📢 注意事项

  1. Finger 服务通常不启用:现代 Linux 发行版默认不安装Finger 服务器,需要手动安装fingerdin.fingerd
  2. 防火墙可能拦截:即使安装了 Finger 服务,防火墙也可能拦截端口 79
  3. 安全风险:Finger 协议会暴露用户信息,建议在内部网络使用,外部网络禁用。
  4. 替代方案:如果需要查询用户信息,可以考虑使用SSH+who/w命令(更安全)。

🏷️ 标签

Linux运维网络工具用户管理Finger协议


📅 最后更新

  • 日期:2026-06-13
  • 适用系统:GNU/Linux (所有发行版)
  • 命令版本:GNU coreutils 9.x

上一篇:ping - 网络连通性测试
下一篇:pipe - 管道命令(待发布)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/14 18:51:28

鸿蒙原生开发——从零构建随机选择器

一、引言 我们每天都在无意识中做随机选择。午餐吃什么、今晚看哪部电影、周末去哪里玩——这些决策有一个共同特点&#xff1a;选项太多&#xff0c;但决策本身不重要&#xff0c;“选哪个都行”。这时候&#xff0c;把决策权交给随机数生成器反而能打破犹豫不决的心理僵局。 …

作者头像 李华
网站建设 2026/6/14 18:50:30

3步安装8000+蓝图:戴森球计划工厂布局终极解决方案

3步安装8000蓝图&#xff1a;戴森球计划工厂布局终极解决方案 【免费下载链接】FactoryBluePrints 游戏戴森球计划的**工厂**蓝图仓库 项目地址: https://gitcode.com/GitHub_Trending/fa/FactoryBluePrints 你是否曾在戴森球计划中花费数小时设计生产线&#xff0c;却发…

作者头像 李华
网站建设 2026/6/14 18:49:52

3000+戴森球计划蓝图:从新手到大师的工厂设计宝库

3000戴森球计划蓝图&#xff1a;从新手到大师的工厂设计宝库 【免费下载链接】FactoryBluePrints 游戏戴森球计划的**工厂**蓝图仓库 项目地址: https://gitcode.com/GitHub_Trending/fa/FactoryBluePrints 还在为戴森球计划中复杂的工厂布局而烦恼吗&#xff1f;看着传…

作者头像 李华
网站建设 2026/6/14 18:44:42

PiliPlus深度解析:如何构建跨平台B站第三方客户端的完整指南

PiliPlus深度解析&#xff1a;如何构建跨平台B站第三方客户端的完整指南 【免费下载链接】PiliPlus PiliPlus 项目地址: https://gitcode.com/gh_mirrors/pi/PiliPlus PiliPlus是一款基于Flutter框架开发的全平台B站第三方客户端&#xff0c;支持Android、iOS、Windows、…

作者头像 李华
网站建设 2026/6/14 18:40:11

MPC8272ADS开发板硬件配置与调试实战指南

1. 项目概述与核心价值在嵌入式系统开发领域&#xff0c;拿到一块功能强大的评估板&#xff0c;比如基于PowerPC架构的MPC8272ADS&#xff0c;第一步往往不是急着写代码&#xff0c;而是如何正确地“点亮”它&#xff0c;并理解其硬件行为。这就像组装一台高性能电脑&#xff0…

作者头像 李华
网站建设 2026/6/14 18:39:55

Obsidian REST API实战:全面解锁知识库自动化新境界

Obsidian REST API实战&#xff1a;全面解锁知识库自动化新境界 【免费下载链接】obsidian-local-rest-api A secure REST API and Model Context Protocol (MCP) server for your vault. 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-local-rest-api Obsidia…

作者头像 李华