Linux下如果我们需要知道2809号端口的情况的话,我们可以这样,如下命令:

  $netstat -pan|grep 2809

  tcp    0   0 0.0.0.0:2809   0.0.0.0:*   LISTEN   9493/java

  下面是常用参数的解释:

  NETSTAT [-a] [-b] [-e] [-n] [-o] [-p proto] [-r] [-s] [-v] [interval]

  -a            显示所有连接和监听端口。

  -b            显示包含于创建每个连接或监听端口的可执行组件。在某些情况下已知可执行组件

   拥有多个独立组件,并且在这些情况下

   包含于创建连接或监听端口的组件序列被显示。这种情况下,可执行组件名

   在底部的 [] 中,顶部是其调用的组件,等等,直到 TCP/IP 部分。注意此选项

   可能需要很长时间,如果没有足够权限可能失败。

  

  -e            显示以太网统计信息。此选项可以与 -s选项组合使用。

  

  -n            以数字形式显示地址和端口号。

  -o            显示与每个连接相关的所属进程 ID。

  -p proto      显示 proto 指定的协议的连接;proto 可以是

   下列协议之一: TCP、UDP、TCPv6 或 UDPv6。

   如果与 -s 选项一起使用以显示按协议统计信息,proto 可以是下列协议之一:

   IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6。

  -r            显示路由表。

  -s            显示按协议统计信息。默认地,显示 IP、

   IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的统计信息;

   -p 选项用于指定默认情况的子集。

  

  -v            与 -b 选项一起使用时将显示包含于

   为所有可执行组件创建连接或监听端口的组件。

  

  interval      重新显示选定统计信息,每次显示之间

   暂停时间间隔(以秒计)。按 CTRL+C 停止重新

   显示统计信息。如果省略,netstat 显示当前

   配置信息(只显示一次)

netstat -nl | grep 110

看到有结果的话就是可以使用了(则端口号开启了)

先可以看看/etc/services文件,改文件定义了linux里所有的服务及其使用的端




Linux环境下如何查找哪个线程使用CPU最长

这是一个比较偏实践的问题,这种问题我觉得挺有意义的。可以这么做:

(1)获取项目的pid,jps或者ps -ef | grep java,这个前面有讲过

(2)top -H -p pid,顺序不能改变

这样就可以打印出当前的项目,每条线程占用CPU时间的百分比。注意这里打出的是LWP,也就是操作系统原生线程的线程号,我笔记本山没有部署Linux环境下的Java工程,因此没有办法截图演示,网友朋友们如果公司是使用Linux环境部署项目的话,可以尝试一下。

使用”top -H -p pid”+”jps pid”可以很容易地找到某条占用CPU高的线程的线程堆栈,从而定位占用CPU高的原因,一般是因为不当的代码操作导致了死循环。

最后提一点,”top -H -p pid”打出来的LWP是十进制的,”jps pid”打出来的本地线程号是十六进制的,转换一下,就能定位到占用CPU高的线程的当前线程堆栈了

使用RPM命令查询一个软件是否安装了

rpm -qa|grep 软件名

rpm -qa | grep nfs 』與『 rpm -qa | grep rpcbind