Linux命令

如果线上某台虚机CPU Load过高,该如何快速排查原因?

一个应用占用CPU很高,除了是计算密集型应用之外,通常原因都是出了死循环。

w命令:都有谁,在做什么? 快速了解系统中目前有哪些用户登录着。

ps命令和top命令:列出运行的进程

ps:进程的静态列表,用于显示当前系统中的进程,ps命令显示的进程列表不会随时间而更新,是静态的。

不加任何参数:只显示当前用户在当前终端的进程。

ps -ef:列出所有进程  ps -ef | less

ps -efH:以乔木状列出所有进程

ps -u 用户名:列出此用户运行的进程

pstree:以树形结构显示进程

ps -aux:通过CPU和内存使用来过滤进程

根据CPU使用率来降序排列:    ps -aux --sort -pcpu | less

根据内存使用率来降序排列:ps -aux --sort -pmem | less

将CPU和内存合并到一起:ps -aux --sort -pcpu,+pmem | head

 

free命令可以显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer。

 

top:进程的动态列表,实时监控系统进程

ps是静态的只能记录当下那一刻的进程列表,ps命令并不能帮助我们实时监控系统的进程

top:这些进程是按照使用处理器的比率来排序的,top命令无法显示全部进程,只显示一页

一些按键:q退出  h显示帮助文档  B加粗某些信息  f/F在进程列表中添加或删除某些列,改变进程列表排序所参照的列

    u依照用户来过滤显示  k结束某个进程  s改变刷新页面时间

 

系统监控软件:glance

yum install epel* -y

yum install python -pip python -devel -y

yum install glances -y

 

htop软件

yum install -y epel-release

yum install -y htop

 

停止进程:ctrl+C;kill

ctrl+C:中止终端中正在运行的程序(进程);在终端中拷贝粘贴用ctrl+shift+c,ctrl+shift+v

kill:结束一个进程,后接需要结束的进程号

  同时结束几个进程,用空格隔开pid即可

  kill -9强制立即结束进程

    killall 接程序名,结束全部进程

 

halt和reboot:停止和重启系统

  halt:关闭系统,需要root身份

  reboot:重启系统,需要root身份

  halt和reboot都调用了shutdown命令

  poweroff:关机,不需要root身份就可以运行

  

管理前后台进程:

&符号和nohup命令:后台运行进程,可以实现在同一个终端运行好几个命令

前台进程:默认情况下,用户创建的进程都是前台进程;前台进程从键盘读取数据,并把处理结果输出到显示器

后台进程的优点是不必等待程序运行结束,就可以输入其他命令,可以与键盘数据无关

在要运行的命令最后加上&符号:cp file.txt file-copy.txt &  注意空格隔开

  sudo find / -name "*log" &

  sudo find / -name "*log" > output_find &

  sudo find / -name "*log" > output_find 2>&1 &

&缺点:后台进程与终端相关联,一旦终端关闭或者用户登出,进程就自动结束

 

nohup:使进程与终端分离,使得命令不受hangup信号的影响

nohup cp file.txt file-copy.txt

 

ctrl+Z,jobs,bg和fg命令:控制进程的前后台切换

ctrl+Z:转到后台并暂停运行

bg:使进程转到后台,将命令转到后台运行;加入后台有暂停的命令,bg会使其进入运行状态;不加任何参数,bg命令会默认作用于最近的一个后台进程;如果后面加%1,%2这样的参数,则会作用于指定编号的进程

ctrl+Z-->bg:为什么不直接bg,因为如果不先用ctrl+Z将此进程暂停,此进程就一直在前台运行,没法再命令提示符后面输入

sudo grep -r "log" / > grep_log 2>&1 &

 

5种常见的进程状态:

运行:正在运行会在运行队列中等待,对应的状态码R

中断:休眠中,受阻,当某个条件形成后或接收到信号时,则脱离该状态,S

不可中断:进程不响应系统异步信号,即使用kill命令也不能使其中断,D

僵死:进程已终止,但进程描述符依然存在,直到父进程调用wait4系统函数将进程释放,Z

通知:进程收到SIGSTOP、SIGSTP、SIGTIN、SIGTOU等停止信号后停止运行,T

 

jobs:显示当前终端中的后台进程状态

 

fg:使进程转到前台,如果不加参数,作用于最近的一个进程;加%数字,%可以省略

 

 

任务的定时和延期

date:调节时间

定制date的输出:date "+%H:%M:%S"   date "+%H时%M分%S秒"

用date修改系统时间:sudo date 10121430  需要root身份 -->10月12日14点30分

 

at:延时执行一个程序,设定一个程序的执行时间

注意:at只能让程序执行一次

在指定时刻执行程序:先用at命令后接想要程序执行的确定时刻,再输入想要在以上指定时刻执行的命令

at 22:10  回车后会进入交互模式,需要输入需要执行的命令     at 22:10 tommorow    at 22:10 12/10/19 月/日/年

使用ctrl+D结束并退出at命令

在指定间隔之后执行程序:

at还有第二种用法,就是在指定时间间隔之后执行程序

at now +10 minutes 10分钟之后执行       

 

atq和atrm命令:列出和删除正在等待执行的at任务

atq:列出正等待执行的at任务

atrm:删除正在等待执行的at任务 atrm 后接任务编号

 

;-->用于分隔两个命令,使得命令依次执行

sleep命令:休息一会

touch file.txt; sleep 10; rm file.txt  默认为秒

touch file.txt; sleep 10m; rm file.txt

 

&&和||符号  逻辑与和逻辑或

和分号类似,分隔命令

区别:&&号前的命令执行成功才会执行后面的命令

   ||号前的命令执行失败才会执行后面的命令

   不论分号前的命令执行成功与否都会执行分号后的命令

 

crontab命令:定时执行程序

可以重复执行命令

sudo yum install vixie-cron crontabs

sudo apt install cron

crontab用于修改crontab文件,cron用于实际执行定时的程序

参数

-l:显示crontab文件

-e:修改

-r:删除

 

https://www.cnblogs.com/lzghyh/p/13035675.html

https://blog.csdn.net/yushouxiang2014/article/details/82876405  kill -9

 

posted @ 2020-03-14 23:46  LinBupt  阅读(131)  评论(0编辑  收藏  举报