Linux finger 命令
finger 命令用于查看本地或远程系统中用户的详细信息,包括登录名、全名、登录时间、空闲时间等。
它比 who 和 id 命令提供了更丰富的用户信息展示,适合在多人共用服务器上了解其他用户的状态。
finger 是早期 Unix 系统中常用的用户信息查询工具,名称源自「指向」某人的意思。
它可以从 /etc/passwd 的 GECOS 字段中读取用户的个人描述信息,并展示其登录状态。
虽然出于安全考虑,现代 Linux 发行版默认不再安装 finger,但它在内网环境和教学场景中仍然有使用价值。
finger需要系统运行fingerd服务才能查询远程用户信息。出于安全原因,大多数公网服务器已禁用该服务。
命令语法
finger 的基本语法如下:
finger [选项] [用户@主机]
如果不指定任何参数,则列出当前登录的所有用户的摘要信息。
如果指定用户名,则显示该用户的详细信息。
指定 用户@主机 格式可以查询远程主机上的用户信息。
finger 的常用选项整理如下:
| 选项 | 功能 | 示例 |
|---|---|---|
-s | 以简短格式显示用户信息 | finger -s |
-l | 以详细长格式显示用户信息 | finger -l runoob |
-p | 不显示 .plan 和 .project 文件内容 | finger -p runoob |
-m | 禁止对用户名进行匹配查找 | finger -m runoob |
详细用法
查看当前登录用户
不带参数运行 finger,会列出系统中所有已登录用户的摘要信息。
# 查看所有当前登录的用户 $ finger Login Name Tty Idle Login Time Office Office Phone root root tty1 May 19 09:00 runoob Zhang San pts/0 3 May 19 10:30 A-301 010-12345678
输出中包含登录名、全名、终端、空闲时间、登录时间、办公室和电话等信息。
查看指定用户详细信息
指定用户名可以查看该用户的完整信息。
# 查看 runoob 用户的详细信息 $ finger runoob Login: runoob Name: Zhang San Directory: /home/runoob Shell: /bin/bash Office: A-301, 010-12345678 Home Phone: 010-87654321 Last login Tue May 19 10:30 (CST) on pts/0 Mail last read Tue May 19 09:00 2026 (CST) No Plan.
详细信息包括用户主目录、默认 Shell、最后登录时间、邮件阅读时间等。
「No Plan.」表示用户主目录下没有
.plan文件。创建该文件后,其内容将在此处显示,可以用于展示个人简介或当前状态。
简短格式输出
使用 -s 选项可以只输出关键字段,适合快速查看。
# 以简短格式查看用户信息 $ finger -s runoob Login Name Tty Idle Login Time Office Office Phone runoob Zhang San pts/0 3 May 19 10:30 A-301 010-12345678
简短格式省略了主目录、Shell、最后登录时间等详细内容,输出为一行表格。
禁止模糊匹配
默认情况下,finger 会尝试匹配所有包含指定字符串的用户名、全名等信息。-m 可以禁用此行为,只精确匹配用户名。
# 精确匹配用户名,不搜索全名和其他字段 $ finger -m runoob
当系统中存在与目标用户名相似的全名或别名时,-m 可以避免返回意外的结果。
查看多个用户
可以同时指定多个用户名,一次性查看多个用户的信息。
# 同时查看多个用户 $ finger runoob root Login: runoob Name: Zhang San Directory: /home/runoob Shell: /bin/bash Office: A-301, 010-12345678 Home Phone: 010-87654321 Last login Tue May 19 10:30 (CST) on pts/0 No Plan. Login: root Name: root Directory: /root Shell: /bin/bash Last login Tue May 19 09:00 (CST) on tty1 No Plan.
查看远程用户信息
finger 支持查询远程主机上的用户,格式为 用户名@主机地址。
# 查看远程主机上的用户信息(需要远程主机开启 fingerd 服务) $ finger runoob@192.168.1.100 Login: runoob Name: Zhang San Directory: /home/runoob Shell: /bin/bash Last login Tue May 19 08:00 (CST) on pts/1 No Plan.
远程查询需要目标主机运行
fingerd(finger 守护进程)并对外开放 79 端口。大多数云服务器出于安全考虑已禁用此功能。
配置 .plan 和 .project 文件
用户可以在主目录下创建 .plan 和 .project 文件来展示个性化信息。
# 创建 .project 文件(单行项目说明) $ echo "RUNOOB Platform Development" > ~/.project # 创建 .plan 文件(多行计划或简介) $ cat > ~/.plan << 'EOF' 当前任务: 1. 负责 RUNOOB 后端 API 开发 2. 维护数据库迁移脚本 3. Code Review 本周三之前完成 EOF # 再次查看用户信息 $ finger runoob Login: runoob Name: Zhang San Directory: /home/runoob Shell: /bin/bash Office: A-301, 010-12345678 Home Phone: 010-87654321 Last login Tue May 19 10:30 (CST) on pts/0 Project: RUNOOB Platform Development Plan: 当前任务: 1. 负责 RUNOOB 后端 API 开发 2. 维护数据库迁移脚本 3. Code Review 本周三之前完成
.project 文件内容显示为单行,.plan 文件内容可以有多行,适合写个人简介或当前工作任务。
.plan 文件默认多出的缩进是为了对齐排版,如果想去除缩进,可以在内容前添加一个空行。
与 who 和 w 命令的区别
| 命令 | 信息丰富度 | 主要用途 | 典型场景 |
|---|---|---|---|
who | 基础 | 仅列出登录用户、终端和登录时间 | 快速检查谁在线上 |
w | 中等 | 显示登录用户及当前运行的程序 | 了解用户当前在做什么 |
finger | 详细 | 显示用户完整信息(含联系方式、计划等) | 查看某个用户的详细档案 |
常见问题
现代 Linux 发行版(如 Ubuntu、Debian、CentOS)默认不安装
finger。需要手动执行apt install finger或yum install finger进行安装。
finger的安装和使用可能带来安全风险:它会暴露用户的个人信息和登录状态。在企业服务器上使用前请确认安全策略允许。
finger 显示的办公室、电话等信息来源于 GECOS 字段,可使用 chfn 命令进行修改。
如果 finger 不显示任何用户信息,检查 /etc/passwd 中用户条目是否存在以及操作权限是否足够。
相关命令
| 命令 | 功能 |
|---|---|
who | 显示当前已登录的用户 |
w | 显示已登录用户及其当前活动 |
id | 显示用户的 UID、GID 和所属组 |
chfn | 修改用户的 finger 信息(全名、电话等) |
users | 以简洁列表显示当前登录用户 |
last | 显示用户的最近登录记录 |

Linux 命令大全