如何使用 grep 和 whoami 从 /etc/passwd 中获取某人的名字?

如何使用 grep 和 whoami 从 /etc/passwd 中获取某人的名字?

如何/etc/passwd使用grepand获取某人的名字whoami

答案1

我不确定你的意思first name,但如果你想获取存储在第五个字段中的用户的真实名字和姓氏,你可以这样做:

grep "^$(whoami):" /etc/passwd | cut -d: -f5

如果你真的只想要名字:

grep "^$(whoami):" /etc/passwd | cut -d: -f5 | cut -d' ' -f1

答案2

getent passwd $(whoami) | cut -d: -f5 | cut -d, -f1 | cut '-d ' -f1

getent passwd与 相比,getent 往往是获取用户信息的更好方法grep [pattern] /etc/passwd,因为如果系统配置为使用 LDAP 或 NIS 进行用户管理,getent 还支持 LDAP 或 NIS。

cut -d: -f5从冒号分隔的密码条目中获取第 5 个字段。该字段传统上称为 gecos,包含用户的全名,但也包含其他内容。

cut -d, -f1然后采用逗号分隔的 gecos 字段的第一个子字段:用户全名。

cut '-d ' -f1取名字的第一个单词,应该是用户的名字。

请注意,最后一步实际上只采用名称的第一个单词,这实际上可能不是正确的做法。更多相关内容可以在热门文章中找到帕特里克·麦肯齐 (Patrick McKenzie) 的《程序员相信名字的谎言》。

相关内容