Linux 查看端口占用情况

查看端口占用情况

  1. lsof -i 所有端口情况
    lsof -i:8080 端口8080的占用情况
  2. netstat -tunlp 所有端口情况
    netstat -tunlp |grep 8080 端口8080的占用情况

lsof:

losf : list open files 是一个列出当前系统打开文件的工具,

 lsof命令需要访问核心内存和各种文件,所以需要root用户执行。  
 用于查看你进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP)。

语法: lsof (参数)
- a:列出打开文件存在的进程;
-c<进程名>:列出指定进程所打开的文件;
-g:列出GID号进程详情;
-d<文件号>:列出占用该文件号的进程;
+d<目录>:列出目录下被打开的文件;
+D<目录>:递归列出目录下被打开的文件;
-n<目录>:列出使用NFS的文件;
-i<条件>:列出符合条件的进程。(4、6、协议、:端口、 @ip )
-p<进程号>:列出指定进程号所打开的文件;
-u:列出UID号进程详情;
-h:显示帮助信息;
-v:显示版本信息。

lsof -i:9006
这里写图片描述


netstat:

Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。
也就是字面意思:网络状态相关的信息

语法: netstat (参数)

 - -a (all)显示所有选项,默认不显示LISTEN相关
    -t (tcp)仅显示tcp相关选项
    -u (udp)仅显示udp相关选项
    -n 拒绝显示别名,能显示数字的全部转化成数字。
    -l 仅列出有在 Listen (监听) 的服務状态
    -p 显示建立相关链接的程序名
    -r 显示路由信息,路由表
    -e 显示扩展信息,例如uid等
    -s 按各个协议进行统计
    -c 每隔一个固定时间,执行该netstat命令。
    提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到

这里写图片描述

netstat -tunlp |grep 9006
这里写图片描述


grep:

grep:文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

  • 语法:grep [-acinv] [–color=auto] ‘搜寻字符串’ filename
    • -a :将 binary 文件以 text 文件的方式搜寻数据
      -c :计算找到 ‘搜寻字符串’ 的次数
      -i :忽略大小写的不同,所以大小写视为相同
      -n :顺便输出行号
      -v :反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行!
      –color=auto :可以将找到的关键词部分加上颜色的显示喔!

ps:

ps命令就是最基本进程查看命令,显示进程号,进程的状态

  • 语法:ps [参数]
    • a 显示所有进程
      -a 显示同一终端下的所有程序
      -A 显示所有进程
      c 显示进程的真实名称
      -N 反向选择
      -e 等于“-A”
      e 显示环境变量
      f 显示程序间的关系
      -H 显示树状结构
      r 显示当前终端的进程
      T 显示当前终端的所有程序
      u 指定用户的所有进程
      -au 显示较详细的资讯
      -aux 显示所有包含其他使用者的行程
      -C<命令> 列出指定命令的状况
      –lines<行数> 每页显示的行数
      –width<字符数> 每页显示的字符数
      –help 显示帮助信息
      –version 显示版本显示

这里写图片描述

top:

top:性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.就是进程消耗资源的情况

  • 语法:top(选项)
    • -b:以批处理模式操作;
      -c:显示完整的治命令;
      -d:屏幕刷新间隔时间;
      -I:忽略失效过程;
      -s:保密模式;
      -S:累积模式;
      -i<时间>:设置间隔时间;
      -u<用户名>:指定用户名;
      -p<进程号>:指定进程;
      -n<次数>:循环显示的次数。

这里写图片描述

find 与 xargs:

find命令在目录结构中搜索文件,并执行指定操作。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

  • 语法:find pathname -options [-print ] [-exec -ok command ] {}\;
    -pathname:find命令所查找的目录路径。.来表示当前目录,/用来表示系统根目录
    -print:find命令将匹配的文件输出到标准输出
    -exec command {}: 将查到的文件执行command操作,{}和\;之间有空格
    -ok 和 -exec 相同,只不过在操作前要询用户
    -name filename:查找名为filename的文件
    -perm:按执行权限来查找
    -user:按文件属主来查找
    -group:按组来查找
    -mtime -n +n:按文件更改时间来查找文件,-n指yn天以内,+n指n天以前
    -atime -n +n:按文件访问时间来查看
    -ctime -n +n:按文件创建时间来查找文件,-n 指n天以内,+n指n天以前
    -nogroup:查无有效属组的文件,即文件的属组在/etc/groups中不存在
    -nouser:查无有效属主的文件,即文件的属主在/etc/passwd中不存在
    -type: b/d/c/p/l/f:查找是块设备、目录、字符设备、管道、符号链接、普通文件
    -size:查找文件长度为n字节的文件
    -mount:查文件时不跨越文件系统mount点

在查找/etc/目录下以host开头的文件并输出

[root@ping ~]# find /etc -name "host*" -print
/etc/hosts
/etc/hosts.allow
/etc/hosts.deny
/etc/host.conf

在查找rootl目录下查找以一个字母和一个数字开头的文件并输出

[root@ping ~]# find ~ -name "[a-z][0-9].conf" -print
/root/a9.conf

xargs:

xargs命令应该紧跟在管道操作符后面,以标准输入作为主要的源数据流。
给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。
xargs也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。

之所以要用到xargs,是因为由于很多命令不支持使用管道|来传递参数,例如:

find /sbin -perm +700 |ls -l     //这个命令是错误,因为标准输入不能作为ls的参数
find /sbin -perm +700 |xargs ls -l  //这样才是正确的
  • 语法:xargs [选项] [command]
    –0:如果输入的stdin含有特殊字符,例如反引号`、反斜杠\、空格等字符时,xargs可以将它还原成一般字符。为xargs的默认选项。
    -e ,-E ,–eof=:eof是end of file string的意思。flag可以是一个字符串或者是由空格分隔的多个字符串,当xargs分析到这个flag时,就会停止工作。见示例2。
    -p:当每次执行一个argument的时候询问一次用户。
    -n :表示命令在执行的时候一次使用的argument的个数,由num指定,默认是用所有的参数。
    -t:表示先打印命令,然后再执行。
    -a :从文件中读入作为sdtin。
    -i,-I:其中-I某些Linux版本不支持。将xargs的输出每一项参数,单独赋值给后面的命令,参数需要用{}代替。见示例3。
    -r:或者–no-run-if-empty,当xargs的输入为空的时候则停止xargs,不用再去执行后面的命令了,-r是xargs的默认选项。
    -s :命令行的最大字符数,指的是xargs后面那个命令的最大命令行字符数,包括命令、空格和换行符。每个参数单独传入xargs后面的命令。见示例4。
    -L :设置标准输入中最大的行数作为命令每一次执行的参数。见示例5。
    -d , –delimiter=: xargs处理标准输入默认是按换行符和空格作为分隔符,输出arguments的分隔符是空格,这里修改xargs处理标准输入时的分隔符。
    -x:eXit的意思,主要是配合-s使用,当命令行字符数大于-s指定的数值时,退出xargs。
    -P:修改最大的进程数,默认是1,为0时候为as many as it can。该选项比较少用,目前还不清楚该用法。

find && xargs:

在使用find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行。但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出现 溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是xargs命令的用处所在,特别是与find命令一起使用。find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。

实例1: 用grep命令在所有的普通文件中搜索hostname这个词:

    命令:find . -type f -print | xargs grep "hostname"

实例2: 查找系统中的每一个普通文件,然后使用xargs 命令来测试它们分别属于哪类文件

  命令: find  . -type f -print | xargs file 

猜你喜欢

转载自blog.csdn.net/Growing_way/article/details/81780020
今日推荐