linux getent 命令

262 阅读1分钟

getent - get entries(entry的复数,条目、项目、记载、记录)
getent命令可以用来察看系统的数据库中的相关记录

经常使用getent查看用户账号:

  • 之前实验我们创建了一个UID为1001的lighthouse系统账号,我们现在要查看lighthouse账号的信息
  • 通常的做法是我们cat etc下的passwd得到账号lighthouse信息
  • 因为passwd也是系统的一种数据库,我们这时候就可以使用getent命令查看
root@VM-4-7-ubuntu:~# cat /etc/passwd | grep lighthouse
lighthouse:x:1001:1001::/home/lighthouse:/bin/bash
root@VM-4-7-ubuntu:~# getent passwd lighthouse
lighthouse:x:1001:1001::/home/lighthouse:/bin/bash

语法

getent [OPTION...] database [key ...]

root@VM-4-7-ubuntu:~# getent --help
Usage: getent [OPTION...] database [key ...]
Get entries from administrative database.

  -i, --no-idn               disable IDN encoding
  -s, --service=CONFIG       Service configuration to be used
  -?, --help                 Give this help list
      --usage                Give a short usage message
  -V, --version              Print program version

Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.

Supported databases:
ahosts ahostsv4 ahostsv6 aliases ethers group gshadow hosts initgroups
netgroup networks passwd protocols rpc services shadow

For bug reporting instructions, please see:
<https://bugs.launchpad.net/ubuntu/+source/glibc/+bugs>.

参考实例#

从hosts库中得到my-test-host的IP信息:

[root@my-test-host ~]# getent hosts
127.0.0.1       localhost localhost.localdomain localhost4 localhost4.localdomain4
127.0.0.1       localhost localhost.localdomain localhost6 localhost6.localdomain6
10.200.62.14    my-test-host
[root@my-test-host ~]# getent hosts ito
[root@my-test-host ~]# getent hosts my-test-host
10.100.10.10    my-test-host

从passwd库中得到账号lighthouse信息:

[root@my-test-host ~]# getent passwd lighthouse
lighthouse:x:1001:1001::/home/lighthouse:/bin/bash

从services中获取22、10050端口信息:

[root@my-test-host ~]# getent services 22
ssh                   22/tcp
[root@my-test-host ~]# getent services 10050
lighthouse-agent          10050/tcp

普通用户netstat -tlnp无法看到非自己的进程名,这时getent命令非常有用