netstat: См. Имя процесса, как в `ps aux`

xterm uxterm ) все равно были там, а не вместо gnome-terminal , но полезно, когда gnome-terminal сломан (действительно).

На практике нет большой разницы между gnome-terminal и terminator , поскольку почти все функциональные возможности находятся в библиотеке VTE, которую используют оба. Как они сказали, красота только кожа глубокая.

Для выбора / вставки это FAQ (а также часто обсуждается здесь). Но лучше всего обратиться к FAQ:

8
24.10.2016, 11:11
3 ответа

Это самый интересный поиск "элегантного" решения, который у меня был за некоторое время. Спасибо.

Общий комментарий:

Вместо того, чтобы разбирать / proc / pid / cmdline , гораздо разумнее запустить readlink / proc / pid / exe .

Как это выглядит:

Я установил функцию оболочки full , чтобы избавиться от этой сложности - в основном, чтобы сэкономить на вводе.

Единственными зависимостями являются POSIX-совместимый ex и стандарт Linux readlink .

В следующем выводе терминала я для краткости пропустил головку .

[root@localhost ~]# netstat -tulpen | head
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       User       Inode      PID/Program name   
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      0          9581       1237/sshd           
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      0          10164      1493/master         
tcp        0      0 0.0.0.0:555                 0.0.0.0:*                   LISTEN      0          14326      2824/nc             
tcp        0      0 0.0.0.0:46638               0.0.0.0:*                   LISTEN      29         8848       960/rpc.statd       
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      0          8749       940/rpcbind         
tcp        0      0 :::22                       :::*                        LISTEN      0          9583       1237/sshd           
tcp        0      0 ::1:25                      :::*                        LISTEN      0          10166      1493/master         
tcp        0      0 :::47166                    :::*                        LISTEN      29         8856       960/rpc.statd       
[root@localhost ~]# netstat -tulpen | head | full
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       User       Inode      PID/Program name   
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      0          9581       1237/usr/sbin/sshd           
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      0          10164      1493/usr/libexec/postfix/master         
tcp        0      0 0.0.0.0:555                 0.0.0.0:*                   LISTEN      0          14326      2824/usr/bin/nc             
tcp        0      0 0.0.0.0:46638               0.0.0.0:*                   LISTEN      29         8848       960/sbin/rpc.statd       
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      0          8749       940/sbin/rpcbind         
tcp        0      0 :::22                       :::*                        LISTEN      0          9583       1237/usr/sbin/sshd           
tcp        0      0 ::1:25                      :::*                        LISTEN      0          10166      1493/usr/libexec/postfix/master         
tcp        0      0 :::47166                    :::*                        LISTEN      29         8856       960/sbin/rpc.statd       
[root@localhost ~]# 

Он также работает с любой формой netstat -p , даже с формами, которые содержат другие конечные данные в некоторых строках:

[root@localhost ~]# netstat -p | head
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 10.0.2.15:ssh               10.0.2.2:63550              ESTABLISHED 2557/sshd           
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node PID/Program name    Path
unix  11     [ ]         DGRAM                    8584   895/rsyslogd        /dev/log
unix  2      [ ]         DGRAM                    9124   1045/hald           @/org/freedesktop/hal/udev_event
unix  2      [ ]         DGRAM                    7116   340/udevd           @/org/kernel/udev/udevd
unix  2      [ ]         DGRAM                    16523  3537/pickup         
unix  2      [ ]         DGRAM                    15036  2865/su             
[root@localhost ~]# netstat -p | head | full
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 10.0.2.15:ssh               10.0.2.2:63550              ESTABLISHED 2557/usr/sbin/sshd           
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node PID/Program name    Path
unix  11     [ ]         DGRAM                    8584   895/sbin/rsyslogd        /dev/log
unix  2      [ ]         DGRAM                    9124   1045/usr/sbin/hald           @/org/freedesktop/hal/udev_event
unix  2      [ ]         DGRAM                    7116   340/sbin/udevd           @/org/kernel/udev/udevd
unix  2      [ ]         DGRAM                    16523  3537/usr/libexec/postfix/pickup         
unix  2      [ ]         DGRAM                    15036  2865/bin/su             
[root@localhost ~]# 

Как это определено:

[root@localhost ~]# type full
full is a function
full () 
{ 
    ex -c 'g/^.*\(\<[0-9]\+\)\/.*$/ya|pu|s::readlink /proc/\1/exe:|.!sh' -c 'g/^\//-ya|pu|-2s/^\(.*\<[0-9]\+\)\/[^[:space:]]*\(.*\)$/\1/|+2s//\2/|-2j!3' -c%p -c 'q!' /dev/stdin
}
[root@localhost ~]# 

Как это работает (пошаговая разбивка ):

(Скоро; а пока попробуйте и дайте мне знать, как вам это нравится.)

5
27.01.2020, 20:11

С xargs & ссылка для чтения :

$ netstat -tulpen \
    | grep chrome \
    | xargs -L1 bash -c 'echo $@ $(readlink /proc/${7//[A-Z\/]/}/exe)'
0 0 0.0.0.0:5353 0.0.0.0:* 1000 17007 2521/chrome /opt/google/chrome/chrome
0
27.01.2020, 20:11

Используйте инструмент Linux lsof. Но он не может быть установлен на некоторых разновидностях Unix.

lsof -i  tcp | grep -w "pid"
2
27.01.2020, 20:11

Теги

Похожие вопросы