Linux的权限操作、资源占用命令和端口查看
常见的程序的错误:
1、Java.lang.OutOfMemory(内存泄露) --->OOM 数据读写,上传文件的服务,下载文件的服务,淘宝发放优惠卷
2、TimeOut,超时 主要指的是客户端不断的向服务端发送请求,服务端这边的资源有限(内存和CPU),那么有可能会出现超时
3、Java空指针 Java.lang.NullPointException
4、java.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"



浙公网安备 33010602011771号