7.29——Linux命令(二)
常见的程序的错误:
1、Java.lang.OutOfMemory(内存泄露) --->OOM 数据读写,上传文件的服务,下载文件的服务,淘宝发放优惠卷
2、TimeOut,超时 主要指的是客户端不断的向服务端发送请求,服务端这边的资源有限(内存和CPU),那么有可能会出现超时
3、Java空指针 Java.lang.NullPointException
4、java.StackOverExpection 堆栈溢出
场景:
昨晚半夜3点程序崩溃,早上知道了,那么需要测试反馈问题给开发,把日志信息发给开发,开发根据日志信息来验证可能是那个场景出现问题,然后来解决。
Linux命令
帮助命令
- 1.help
命令 --help - 2.man
man 命令 - 3.info
info 命令
Linux权限操作
读:r-->4
写:w-->2
执行:x--->1
1.权限
⽂件的基本权限就是 3 种⽤户身份(所有者、所属组和其他⼈)分别搭配 3 种权限(rwx)。
chmod 命令中⽤ u、g、o 分别代表 3 种身份(u是所有者,g是所属组,o是其他人),还⽤ a 表示全部的身份(all 的缩写)。
另外,chmod 命令仍使⽤ r、w、x 分别表示读、写、执⾏这三个权限。
例:r w x r w - r - -(所有者可读可写可执行,所属组可读可写,其他人可读)
2.数字法添加权限:
chmod 数字 文件名
一个数字代表三个字母之和,第一个代表所有者的三个权限之和,第二个代表所属组的三个权限之和,第三个代表其他人的三个权限之和。
r --> 4 读
w --> 2 写
x --> 1 执行
最大权限是777 即rwxrwxrwx
例:
例如:chmod 765 login.json(给login.json文件赋予765权限,即rw-r-xr-x)

3、字母法添加/取消权限
chmod 谁+/- 权限 文件名
u是所有者,g是所属组,o是其他人, a 是全部的身份(all 的缩写)。

资源占用命令
1、free——查看内存
(1)free命令默认是以kb为单位显示的,可以⽤free -m ⽤Mb单位来显示。
(2)Mem⾏ : total = used + free 其中buffers和cached虽然计算在used内, 但其实为可⽤内存。
(3)Mem下⼀⾏:used为真实已占内存,free为真实可⽤内存。
(4)Swap:内存交换区的使⽤情况。

ps auxw | head -1;ps auxw|sort -rn -k4|head -5 -->内存占⽤前五的进程
ps auxw|head -1;ps auxw|sort -rn -k3|head -3--->cpu占⽤前三的进程
2、top整体负载
(1)第⼀⾏: 系统时间 + 系统运⾏时间 + users⼏个⽤户 + load average1/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进⾏排序.
3、nmon
使⽤该命令可以监控Linux的各个资源信息,输⼊nmon,输出如下:

端口查看
1、lsof
操作命令 lsof -i:端⼝
reboot:重新启动系统命令
ssh端口22;http端口 80; https端口 443;Email 端口25;mySQL 端口3306;
例ssh 22,server服务运行中端口就被监听或被占用,停止运行就没有被监听。
2、netstat
- netstat -tunlp ⽤于显示 tcp,udp 的端⼝和进程等相关情况。
- -t (tcp) 仅显示tcp相关选项
- -u (udp)仅显示udp相关选项
- -n 拒绝显示别名,能显示数字的全部转化为数字
- -l 仅列出在Listen(监听)的服务状态
- -p 显示建⽴相关链接的程序名
- grep是筛选的意思
netstat 查看端⼝占⽤语法格式:
netstat -tunlp | grep 端⼝号
例如:80的端口被nginx应用程序占用

进程查看
1、ps
ps命令——查看静态的进程统计信息(⼀般结合选项使⽤ ps aux 或 ps -elf 命令) 建议使⽤ ps -elf 查询,输出的信息更详细些,包括 PPID (对应的⽗进程的PID 号)
kill -9 pid 杀死进程
进程的状态:开始启动;启动中;运行中,休眠/假死;停止。(关注PID和状态)

以上输出信息中,第⼀⾏为列表标题,其中各字段的含义描述如下。
USER:启动该进程的⽤户账号名称;
PID:该进程在系统中的数字 ID 号,在当前系统中是唯⼀的;
%CPU:CPU占⽤的百分⽐;
%MEM:内存占⽤的百分⽐;
VSZ:占⽤虚拟内存(swap 空间)的⼤⼩;
RSS:占⽤常驻内存(物理内存)的⼤⼩;
TTY:表明该进程在哪个终端上运⾏。
“ ?” 表示未知或不需要终端;
STAT:显示进程当前的状态,S(休眠)、R(运⾏)、Z(僵死)、<(⾼优先级)、N(低优先级)、s(⽗进程)、+ (前台进程);
START:启动该进程的时间;
TIME:该进程占⽤的CPU时间;
浙公网安备 33010602011771号