// 查找进程
ps -ef | grep jenkins
top
// 查找正在运行的java进程
jps
// 查看mysql, redis状态
sudo systemctl status mysql
sudo systemctl status redis
tree
// 递归删除本文件夹及子文件夹
rm -r
top
kill -9 163324
//查日志
cat
grep "keyword" filename
wc -l filename
tail -f
tail -n
head -n
//日志中查找IP地址
grep -E -o '([0-9]{1,3}\.){3}[0-9]{1,3}' /var/log/syslog
这是一个正则表达式,用于匹配IP地址的文本模式。它查找一个数字序列,其范围是1到3位,后跟一个点,重复3次,然后是最后一个数字序列,其范围也是1到3位。
CPU飙升排查:1、top 2、ps 某进程号,查看哪个线程出问题了 3、jstack定位问题来源
ufw allow 8080
1、查看内存(free)
2、整体负载(top)
(1)第⼀⾏: 系统时间 + 系统运⾏时间 + ⼏个⽤户 + 1/5/15分钟系统平均负载
(2)第⼆⾏:进程总数(total) + 正在运⾏进程数(running) + 睡眠进程数(sleeping) + 停⽌的进程数(stopped)+ 僵 ⼫进程数(zombie)
(3)第三⾏:⽤户空间CPU占⽐(us) + 内核空间CPU占⽐(sy)+ CPU空置率(id)
3、发送信号给进程
kill -信号 进程ID
# 例如,发送SIGTERM(优雅关闭)信号给PID为1234的进程
kill -SIGTERM 1234
常用信号:(列出所有信号kill -l)
SIGHUP:重新加载配置
SIGINT:相当于Ctrl+C,中断一个程序的执行
SIGKILL:杀死一个进程
SIGTERM:软件终止信号
SIGSTOP:相当于Ctrl+Z,暂停一个进程的执行
4、端口查看
lsof 查看端⼝占⽤语法格式:lsof -i:端⼝
查看所有端口:lsof -i
netstat
netstat -tunlp ⽤于显示 tcp/ip网络连接。
-t (tcp) 仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化为数字
-l 仅列出在Listen(监听)的服务状态
-p 显示建⽴相关链接的程序名
netstat 查看端⼝占⽤语法格式:netstat -tunlp | grep 端口号,比如:netstat -tunlp | grep 3306
查看端口占用:losf -i:端口号 、netstat -tunlp
cpu负载: top、uptime
内存占用: free -m、vmstat -s、top
查看磁盘: df、du
Linux命令netstat用过吗?
Linux如何查看哪些进程占用的内存最多: ps aux
traceroute命令了解吗?traceroute是一个网络诊断工具,用于确定数据包从源主机到目标主机所经过的路由器路径。它通过发送一系列UDP数据包,每个数据包的TTL(生存时间)值依次递增,并在数据包返回前等待响应。当某个路由器收到一个TTL值较小的数据包时,它会将该数据包丢弃并向源主机返回一个ICMP“超时”错误消息,同时该路由器的IP地址也被记录下来。当最终目标主机收到一个UDP数据包时,它会返回一个ICMP“端口不可达”错误消息,告知traceroute程序已经到达目标主机。
如何查看Linux机器上磁盘的IO: iostat、iotop
Linux查看文件命令: more、cat
Linux查看日志命令:head、cat
Linux查看进程TLB缺页率: perf stat -e dTLB-loads,dTLB-load-misses,iTLB-loads,iTLB-load-misses -p $PID
查询当前某程序的线程数:pstree -p 进程号 |wc -l
可通过降低stack大小、增加虚拟内存来调大每个进程可拥有的最大线程数;
查看当前进程打开的文件:lsof
perf CPU的占用率:perf stat task-clock
perf 上下文切换次数:perf context-switches
perf 缺页次数:perf page-faults
根据端口号查找相应的进程号 (必须以root用户执行)
netstat -anp | grep 8080
Linux下查看TCP网络连接情况
僵尸进程产生原因和解决方法
kill 的原理, kill -9 和 kill -15的区别?
kill 命令默认信号是 SIGTERM(15),当使用 kill -15 时,系统会发送一个SIGTERM的信号给对应的程序。当程序接收到该信号后,具体要如何处理是自己可以决定的:
`立即停止程序
`释放响应资源后停止程序
`忽略该信号,继续执行程序
因为kill -15信号只是通知对应的进程要进行"安全、干净的退出",程序接到信号之后,退出前一般会进行一些"准备工作",如资源释放、临时文件清理等等,如果准备工作做完了,再进行程序的终止。
但是,如果在"准备工作"进行过程中,遇到阻塞或者其他问题导致无法成功,那么应用程序可以选择忽略该终止信号。
这也就是为什么我们有的时候使用kill命令是没办法"杀死"应用的原因。
kill -9 相对强硬一点,系统会发出 SIGKILL(9)信号,他要求接收到该信号的程序应该立即结束运行,不能被阻塞或者忽略。
所以,相比于 kill -15 命令,kill -9 在执行时,应用程序是没有时间进行"准备工作"的,所以这通常会带来一些副作用,数据丢失或者终端无法恢复到正常状态等。
07-21
13万+
03-19
5万+
02-22
2万+