1. 根据端口号查找对应的服务名

    1)grep -w 端口号 /etc/services

    2)grep "\b端口号\b" /etc/services

    以2049端口为例,执行grep -w 2049 /etc/services或grep "\b2049\b" /etc/services  即可查找到其对应的服务名为nfs

    grep -w 2049 /etc/services    
    nfs             2049/tcp        nfsd shilp      # Network File System
    nfs             2049/udp        nfsd shilp      # Network File System
    nfs             2049/sctp       nfsd shilp      # Network File System

    # grep "\b2049\b" /etc/services     
    nfs             2049/tcp        nfsd shilp      # Network File System
    nfs             2049/udp        nfsd shilp      # Network File System
    nfs             2049/sctp       nfsd shilp      # Network File System

    其中-w表示只显示全字符合的列,即精确匹配;"\b"表示匹配一个字边界,即字与空格间的位置。例如,“er\b”匹配“never”中的“er”,但不匹配“verb”中的“er”(若匹配“verb”中的“er”可使用"\B"进行非字边界匹配)。

  2. 根据服务名查找对应的端口号

    1)grep -w 服务名 /etc/services

    2)grep "\b服务名\b" /etc/services

    以nfs服务为例,执行grep -w nfs /etc/services 或grep "\bnfs\b" /etc/services即可查找到其对应的端口号为2049

    # grep -w nfs /etc/services 
    nfs             2049/tcp        nfsd shilp      # Network File System
    nfs             2049/udp        nfsd shilp      # Network File System
    nfs             2049/sctp       nfsd shilp      # Network File System

    # grep "\bnfs\b" /etc/services             
    nfs             2049/tcp        nfsd shilp      # Network File System
    nfs             2049/udp        nfsd shilp      # Network File System
    nfs             2049/sctp       nfsd shilp      # Network File System

    其中-w表示只显示全字符合的列,即精确匹配;"\b"表示匹配一个字边界,即字与空格间的位置。\bnfs\b即为精确匹配nfs。