Linux系统之pinky 命令详解 - 实践
pinky 命令详解
一、命令概述
pinky 是 GNU coreutils 中的轻量级用户信息查询工具,定位为 finger 命令的简化版本,核心功能是读取 /var/run/utmp 文件(记录当前系统登录用户的临时数据),输出用户的关键信息(如登录状态、所在终端、登录时间等)。
与 finger 相比,pinky 体积更小、输出更简洁,默认仅显示核心信息,适合快速查看当前在线用户状态。
二、命令语法
pinky [OPTION]... [USER]...
OPTION:控制输出格式的选项(如长格式/短格式、信息过滤),可选;USER:指定要查询的用户名(可多个,空格分隔),可选;- 若不指定
USER,默认查询所有当前在线用户的信息; - 若指定
USER,仅输出该用户的信息(若用户未登录,可能无输出)。
- 若不指定
三、选项详解
pinky 的选项主要分为「格式控制选项」(短格式/长格式)和「帮助版本选项」,其中短格式(-s)为默认输出模式,长格式(-l)需显式启用。
| 选项 | 功能描述 | 适用格式 | 示例 |
|---|---|---|---|
-l | 启用长格式输出,显示更详细的用户信息(如家目录、登录shell、项目/计划文件内容)。 | 长格式(强制) | pinky -l root(查看 root 用户的详细信息) |
-b | 长格式专用:省略用户的家目录(Home Directory) 和 登录shell 信息。 | 长格式 | pinky -l -b root(长格式查看 root,不显示家目录和 shell) |
-h | 长格式专用:省略用户的项目文件(Project File,通常为 ~/.project) 内容。 | 长格式 | pinky -l -h root(长格式查看 root,不显示项目文件) |
-p | 长格式专用:省略用户的计划文件(Plan File,通常为 ~/.plan) 内容。 | 长格式 | pinky -l -p root(长格式查看 root,不显示计划文件) |
-s | 启用短格式输出(默认模式),仅显示核心信息(用户名、终端、登录时间、远程主机等)。 | 短格式(默认) | pinky -s(默认短格式查看所有在线用户) |
-f | 短格式专用:省略输出的列头(表头) 行(如 “Login Name” “Tty” 等标题)。 | 短格式 | pinky -s -f(短格式查看所有用户,无表头) |
-w | 短格式专用:省略用户的全名(Full Name) 信息。 | 短格式 | pinky -s -w root(短格式查看 root,不显示全名) |
-i | 短格式专用:省略用户的全名和远程主机(Remote Host) 信息。 | 短格式 | pinky -s -i(短格式查看所有用户,不显示全名和远程主机) |
-q | 短格式专用:省略用户的全名、远程主机和空闲时间(Idle Time) 信息。 | 短格式 | pinky -s -q(短格式查看所有用户,仅显示用户名、终端、登录时间) |
--help | 显示帮助信息并退出。 | 通用 | pinky --help |
--version | 显示版本信息并退出(如 GNU pinky 8.32)。 | 通用 | pinky --version |
四、输出格式说明
4.1 短格式(默认 -s)
默认输出包含列头,核心字段如下(以 pinky 为例):
Login Name Tty Idle When Where
root tty1 Wed 10:00:01 console
user1 pts/0 Wed 10:30:45 192.168.1.100
- Login Name:用户名;
- Tty:登录终端(
tty1为本地终端,pts/0为远程 SSH 终端); - Idle:空闲时间(无活动的时长,空表示当前活跃);
- When:登录时间;
- Where:登录来源(
console为本地控制台,IP 为远程主机地址)。
4.2 长格式(-l)
长格式输出更详细,包含短格式所有信息,额外补充家目录、shell、项目/计划文件等(以 pinky -l root 为例):
Login: root Name: root
Directory: /root Shell: /bin/bash
On since Wed Oct 11 10:00:01 2024 on tty1 from console
No mail.
No Plan.
- Login:用户名;
- Name:用户全名(来自
/etc/passwd的注释字段); - Directory:家目录路径;
- Shell:默认登录 shell;
- On since:登录时间、终端、来源;
- Mail:邮件状态(是否有未读邮件);
- Plan:计划文件内容(若
~/.plan存在则显示,否则为No Plan); - Project:项目文件内容(若
~/.project存在则显示,否则为No Project)。
五、使用示例
示例 1:默认短格式查看所有在线用户
pinky
输出:
Login Name Tty Idle When Where
root tty1 Wed 10:00:01 console
user1 pts/0 Wed 10:30:45 192.168.1.100
user2 pts/1 Wed 11:15:22 10.0.0.5
示例 2:短格式查看指定用户,省略表头和全名
pinky -s -f -w user1
输出(无表头,无全名):
user1 pts/0 Wed 10:30:45 192.168.1.100
示例 3:长格式查看 root 用户,省略计划文件
pinky -l -p root
输出(无计划文件内容):
Login: root Name: root
Directory: /root Shell: /bin/bash
On since Wed Oct 11 10:00:01 2024 on tty1 from console
No mail.
No Project.
示例 4:长格式查看用户,省略家目录和 shell
pinky -l -b user2
输出(无家目录和 shell):
Login: user2 Name: User Two
On since Wed Oct 11 11:15:22 2024 on pts/1 from 10.0.0.5
No mail.
Plan:
Today's task: finish the report.
Project:
Current project: devops automation
六、注意事项
数据来源限制:
pinky仅读取/var/run/utmp文件,该文件记录的是当前登录用户的临时信息,因此:- 无法查询未登录用户的信息;
- 若用户登录后退出,
utmp中会删除该用户记录,pinky也无法查询。
文件权限依赖:
~/.plan和~/.project文件的内容仅在用户可读时才会显示(若文件权限为600,则仅所有者可查看,其他用户用pinky -l查看时会显示No Plan/No Project)。与
finger的区别:finger功能更丰富(如支持查询远程用户、邮件详情),但体积较大;pinky轻量简洁,适合嵌入式系统或仅需基础用户信息的场景。
七、相关参考
- 用户信息源文件:
/etc/passwd(静态用户信息,如用户名、家目录、shell)、/var/run/utmp(动态登录信息); - 类似工具:
finger(完整用户信息查询)、w(查看当前登录用户及进程)、who(简洁显示登录用户)。

浙公网安备 33010602011771号