Linux的权限操作、资源占用命令和端口查看

常见的程序的错误:

1Java.lang.OutOfMemory(内存泄露) --->OOM  数据读写,上传文件的服务,下载文件的服务,淘宝发放优惠卷

2TimeOut,超时 主要指的是客户端不断的向服务端发送请求,服务端这边的资源有限(内存和CPU),那么有可能会出现超时

3Java空指针 Java.lang.NullPointException

4java.StackOverExpection 堆栈溢出

 

场景:

昨晚半夜3点程序崩溃,早上知道了,那么需要测试反馈问题给开发,然后开发来解决

查看日志 和开发一起找出可能是哪种逻辑导致这些问题

 

Man

Linux命令的软件开发⼈员编写⼀个⾼度结构化的⽂档⼿册,也就是man的⽂件。所以当⼀个软件在被安装后,它

man⽂件也会随着安装,所以可以使⽤man命令来查看该命令的具体使⽤⽅法

Info

使⽤man可以查看⼀个命令的帮助document,但是可以使⽤info,就会进⼊到⼀个完全交互式的环境

 

chmod

:r-->4

:w-->2

执行:x--->1

rwxrw-r-x 来说,所有者、所属组和其他⼈分别对应的权限值为:

所有者 = rwx = 4+2+1 = 7 所属组 = rw- = 4+2 = 6 其他⼈ = r-x = 4+1 = 5

所以,此权限对应的权限值就是 765。

Chmod 665 product.json

 

 

Chmod 777 l/

 

 

 

既然⽂件的基本权限就是 3 种⽤户身份(所有者、所属组和其他⼈)搭配 3 种权限(rwx),chmod 命令中⽤ u、 g、o 分别代表 3 种身份,还⽤ a 表示全部的身份(all 的缩写)。另外,chmod 命令仍使⽤ r、w、x 分别表示 读、写、执⾏权限。

使⽤字⺟修改⽂件权限的 chmod 命令,其基本格式如图 1 所示。

 

 

 

 

free查看内存

 

 1)free命令默认是以kb为单位显示的,可以⽤free -m ⽤Mb单位来显示。

 2)Mem⾏ : total = used + free 其中buffers和cached虽然计算在used内, 但其实为可⽤内存。

3) Mem下⼀⾏:used为真实已占内存,free为真实可⽤内存。

4)Swap:内存交换区的使⽤情况。

 

Uptime 最近一分钟 五分钟 十分钟 的平均负载

 

 

 

nmon第三方工具,查看系统的资源,需要额外的安装

 

 

 

1)第⼀⾏: 系统时间 + 系统运⾏时间 + ⼏个⽤户 + 1/5/15分钟系统平均负载

2)第⼆⾏:进程总数(total) + 正在运⾏进程数(running) + 睡眠进程数(sleeping) + 停⽌的进程数(stopped)+ 僵

⼫进程数(zombie)

3)第三⾏:⽤户空间CPU占⽐(us) + 内核空间CPU占⽐(sy)+ CPU空置率(id)

 

 

 

PID :进程ID

USER :⽤户名

PR :优先级

 

NI :负值表示⾼优先级,正值表示低优先级。

VIRT :虚拟内存

RES : 真实内存

SHR :共享内存

S :进程状态 D=不可中断的睡眠状态; R=运⾏; S=睡眠 ;T=跟踪/停⽌; Z=僵⼫进程

参数:

top -d 2 :每隔2秒显式所有进程的资源占⽤情况

top -c :每隔5秒显式进程的资源占⽤情况,并显示进程的命令⾏参数(默认只有进程名)

top -p 12345 -p 6789:每隔5秒显示pid是12345和pid是6789的两个进程的资源占⽤情况

 

 

 

top -d 2 -c -p 123456 :每隔2秒显示pid是12345的进程的资源使⽤情况,并显式该进程启动的命令⾏参数

top的命令⾥⾯,按m是对内存进⾏排序,按p是按cpu进⾏排序,具体如下:

 

Sudo lsof -i | grep mysql

 

Sudo lsof -i:3306              

Sudo lsof -i:8080

 

 

 

 

netstat查看端口是否被占用

netstat -tunlp ⽤于显示 tcp,udp 的端⼝和进程等相关情况

-t (tcp) 仅显示tcp相关选项

-u (udp)仅显示udp相关选项

-n 拒绝显示别名,能显示数字的全部转化为数字

-l 仅列出在Listen(监听)的服务状态

-p 显示建⽴相关链接的程序名

 

 

Netstst -tulnp(开放所有端口信息)

Netstat  -tulnp | grep 8080

 

 

 

 

windows操作系统中:

netstat -ano | findstr 80:查询端口占用的进程pid

使用进程PID查询那个程序占用

tasklist | findstr "2980"

 

 

 

 

posted @ 2022-07-29 18:02  丶空·  阅读(126)  评论(0)    收藏  举报