1、Linux常用命令
命令 | 解释 | 备注 |
---|---|---|
rm -rf | 删除服务器所有的文件 | -r 代表递归删除;-f代表强制删除;rm -rf /* |
mkdir 文件夹名称 | 创建文件夹 | mkdir -p a/b/c;可以创建多级目录 |
tail -f xxx.log | 监控并输出最后几行内容 | 一般用于查看日志 |
pwd | 显示当前绝对路径 | |
echo | 输出内容到控制台,或者文本 | echo “xxx” > a.txt 覆盖原有文本;echo “xxx” >> a.txt追加到原有文本最后一行;touch xxx.txt 创建文件 |
ps -ef / ps aux | 查看系统进程 | 一般跟grep结合使用,查找某个进程用;例如:`ps -ef |
grep | 查找内容 | 可以查找文件中的内容 |
yum install -y xxx | 使用yum安装应用 | -y代表要输入yes或者no的时候,自动输入yes |
curl | 控制台访问某个文件 | curl ifconfig.me 可以查看本机公网ip |
wget | 一般用于下载文件 | |
uname -r | 显示正在使用的内核版本 | |
top | 实时监控系统使用情况 | 包括线程、内存、cpu等详细信息,ctl+c退出监控 |
find 路径 -name 关键字 | 查找路径下的某些文件 | 例如:find / -name a.log从根目录开始查找叫a.log的文件 关键字可以用*作为通配符,例如:find / -name *.log查找以log即为的文件 |
chmod | 给文件或者文件夹授权 | chmod -R 777 文件夹或者文件 |
df -h | 查看磁盘分区列表以及使用情况 | |
du -sh 文件夹或者文件 | 查看文件或者文件夹占用的磁盘空间 | |
cat 文件 | 输出文件内容到控制台 | 如果是大文件,会导致控制台输出过多,可以使用more或者less替代;more是从前往后一页一页的输入文件内容;按空格下一页,b上一页,q退出,more -n 文件从第n行开始查看;使用more查看文件时,会先加载整个文件,再按照条件显示;less也是一页一页查看文件内容个,less不会一次性加载整个文件内容,查看多少,加载多少 |
nohup | 后台运行进程 | 例如后台运行springboot的jar项目:nouhp java -jar xxx.jar > /dev/null 2>&1 & |
netstat -tunlp | grep 端口号 | 查看端口占用情况 |
2、服务器CPU一直100%,如何定位问题谈谈你能想到的思路
1、通过top -c 命令找出当前的进程列表,接着按P(大写)可以按照CPU使用率排序,然后找到进程对应使用率高的进程ID
2、然后通过top -Hp 进程PID列举出当前进程的所有线程,按P(大写)排序,找到对应线程的PID,转为16进制备用
3、然后通过jstack -l 线程PID > 文件,导出线程快照到这个文件里
4、然后通过grep命令查找文件中这个16进制的线程PID的行为进行分析