Skip to main content

Linux Command -- Chapter Network

MarshioAbout 3 minLinuxls

Note

如下命令使用中,

  • [] 代表可选参数,
  • <> 代表可自由输入输入的字符
  • - 后面跟的是缩写
  • -- 后面跟的是全拼

ping

packet Internet grouper,是一种因特网包探索器,用于测试网络连接量的程序。 ping是TCP/IP体系中应用层的一个命令。 ping可以通过向目标IP发送一个ICMP(Internet Control Message Protocol,因特网报文控制信息协议)报文,测试目的IP是否可达及了解其有关状态。

功能

  • 检测网络连通性
  • 检测时延

netstat

显示网络链接,路由,接口统计和其他网络相关信息的命令。

参数

参数解释
-a --all显示所有的Socket链接
-n以数字形式显示地址和端口号
-p显示PID和名称

默认输出

[root@iZuf6ipaofe0zmf15z5lttZ sbin]# netstat
# 网络连接
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 iZuf6ipaofe0zmf15:41028 100.100.36.108:http     TIME_WAIT  
tcp        0      0 iZuf6ipaofe0zmf15:49392 100.100.30.27:http      ESTABLISHED
# 通过ssh链接到本机的网络通信
tcp        0     52 iZuf6ipaofe0zmf15z5:ssh 180.158.222.49:56755    ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ]         DGRAM                    13367    /var/run/chrony/chronyd.sock
unix  2      [ ]         DGRAM                    10567    /run/systemd/shutdownd
unix  4      [ ]         DGRAM                    8047     /run/systemd/notify
unix  2      [ ]         DGRAM                    8049     /run/systemd/cgroups-agent
unix  5      [ ]         DGRAM                    8067     /run/systemd/journal/socket
unix  14     [ ]         DGRAM                    8069     /dev/log

netstat -lnt

已知端口查进程

很多情况下,我们因为种种原因,会遇到 Address already in use 的错误,所以我们已知端口,想要知道是那个服务在占用这个端口。

netstat

netstat -anp | grep port

netstat -anp | grep 80

[root@demo sbin]# netstat -anp | grep 80
# 可以看到 80 端口在被 nginx 服务占用,PID 是 22286
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      22286/nginx: master 
tcp        0      0 172.26.208.232:49392    100.100.30.27:80        ESTABLISHED 8759/AliYunDun      
tcp        0      0 172.26.208.232:41092    100.100.36.108:80       TIME_WAIT   -                   
tcp        0     52 172.26.208.232:22       180.158.222.49:56755    ESTABLISHED 8050/sshd: root@pts 
tcp6       0      0 :::80                   :::*                    LISTEN      22286/nginx: master 
udp        0      0 0.0.0.0:68              0.0.0.0:*                           801/dhclient        
unix  4      [ ]         DGRAM                    8047     1/systemd            /run/systemd/notify
unix  2      [ ]         DGRAM                    8049     1/systemd            /run/systemd/cgroups-agent
unix  2      [ ACC ]     STREAM     LISTENING     8064     1/systemd            /run/systemd/journal/stdout
unix  5      [ ]         DGRAM                    8067     1/systemd            /run/systemd/journal/socket
unix  14     [ ]         DGRAM                    8069     1/systemd            /dev/log
unix  2      [ ]         DGRAM                    5606054  8050/sshd: root@pts  
unix  3      [ ]         STREAM     CONNECTED     16680    1079/master          
unix  2      [ ]         DGRAM                    14833    801/dhclient 

lsof

lsof -i :port

lsof -i :5555
COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
celery  16931 root    7u  IPv6 1028387      0t0  TCP ip6-localhost:5555->ip6-localhost:53622 (CLOSE_WAIT)
celery  16931 root    9u  IPv4  249368      0t0  TCP *:5555 (LISTEN)
celery  16931 root   11u  IPv6  249369      0t0  TCP *:5555 (LISTEN)
celery  16931 root   46u  IPv6 1028389      0t0  TCP ip6-localhost:5555->ip6-localhost:53630 (CLOSE_WAIT)

fuser

fuser port/tcp

fuser 5555/tcp
5555/tcp:            72699

ps

lsof

lsofopen in new window,lsofopen in new window is a command listing open files.

more detail on readthedocsopen in new window.

Options

  • -a

  • -c

  • -d

  • -g

  • -i

display Internet socket files

# list all internet socket files
lsof -i 

lsof -i :port
  • -N

  • -U

telnet


ps

Process Status,用于显示当前进程的状态。

用法:

ps [options]ps [--help]

ps aux

a:显示所有用户的所有进程。如果没有这个选项,ps 只会显示当前终端会话的进程。 u:以用户友好的格式显示进程信息,包括更多的细节,如进程的用户、进程状态、CPU 使用率、内存使用率等。 x:显示没有控制终端的进程。通常,一个进程会与一个终端相关联,但有些后台进程可能没有控制终端,这个选项确保这些进程也被列出。

输出

USER:进程的所有者用户名。 PID:进程的ID。 %CPU:进程使用的CPU百分比。 %MEM:进程使用的物理内存百分比。 VSZ:进程使用的虚拟内存大小(KB)。 RSS:进程使用的物理内存大小(KB)。 TTY:与进程关联的终端设备。 STAT:进程的状态(D=不可中断的睡眠,R=运行,S=睡眠,T=停止,Z=僵尸进程,等等)。 START:进程启动的时间。 TIME:进程已运行的时间。 COMMAND:进程的命令行,通常包括可执行文件的路径和任何传递给它的参数。

🌰

# 查找所有的Java进程  -a代表查询所有 | 代表管道  grep代表过滤出
ps -a | grep java

# 排除结果中的grep进程
ps -a | grep java | grep -v grep

参考