如何/etc/passwd
使用grep
and获取某人的名字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) 的《程序员相信名字的谎言》。