目录
查看进程
ps
top
pstree
终止进程
kill
killall
pkill
后台进程
jobs
fg
bg
定时任务
crond
系统监控
vmstat
free
uname
lsof
ps
命令用途:查看系统进程的状态。
命令语法:ps [选项]
常用选项:
a:显示所有进程;
u:以用户为主的格式进行显示;
x:不以终端机来区分;
e:列出程序时,显示每个程序所使用的环境变量。
-a:显示所有进程;
-e:显示所有进程;
-f:显示uid,ppid,c与stime字段。
-l:显示f,s,pri,ni,addr,sz,wchan字段。
//使用bsd系统命令格式,查看所有进程
ps aux
//使用linux标准命令格式,查看所有进程
ps -efl
下图详细列出了使用ps aux命令所查看到的内容各字段所代表的含义。
top
命令用途:查看系统运行的状态。
命令语法:top [选项]
常用选项:
-d:指定屏幕刷新时间间隔,单位秒,默认3秒;
//查看系统运行状态,设置屏幕每两秒刷新一次
top -d 2
交互模式:
?或h:显示交互模式的帮助;
p:按照cpu使用率排序,默认选项;
m:按照内存的使用率排序;
n:按照pid排序;
q:退出;
下图详细列出了使用top命令所查看到的内容各字段所代表的含义。
pstree
命令用途:以树状图的方式展现进程之间的派生关系。
命令语法:pstree [选项]
常用选项:
-p:显示进程的pid;
-u:显示进程所属的用户;
//查看进程树,并显示pid号
pstree -up
kill
命令用途:根据进程pid来结束进程。
命令语法:kill [信号量] [pid]
常用信号量:
1(sighup):重启进程;
9(sigkill):强制结束;
15(sigterm):正常结束;
//强制结束pid为45548的进程
kill -9 45548
//重启pid为14845的进程
kill -1 14845
使用kill -l命令可以查看kill命令支持的所有信号量,如下图所示。
killall
命令用途:根据进程名来结束进程。
命令语法:killall [选项][信号量] [进程名]
常用选项:
-i:交互式,杀死进程前会询问确认;
-i:忽略进程名的大小写;
//结束进程名称为httpd(不区分大小写)的进程,结束进程前询问确认
killall -ii httpd
pkill
命令用途:pkill命令和killall命令类似,根据进程名来结束进程。
命令语法:pkill[选项][信号量] [进程名]
常用选项:
-t:根据终端号踢出用户;
//踢出终端号为tty1的用户
pkill -9 -t tty1
将一个普通进程放入后台执行有以下两种方式:
1)在执行的命令后面跟一个 “&” 符号,进程会被放入后台继续执行;
2)命令执行过程中,按下ctrl z快捷键,进程会被放入后台,进入停止状态;
jobs
命令用途:查看任务列表及任务的状态。
命令语法:jobs[选项]
常用选项:
-l:显示进程号;
-r:显示运行状态(running)的任务;
-s:显示停止状态(stoped)的任务;
//查看任务列表,并显示进程号
jobs -l
fg
命令用途:将任务列表中的任务恢复到前台执行。
命令语法:fg [%任务号]
//将任务号为1的任务恢复到前台执行
fg %1
bg
命令用途:将任务列表中的任务恢复到后台执行。
命令语法:bg [%任务号]
//将任务号为2的任务恢复到后台执行
bg %2
crond
在linux中如果要使用定时任务功能需先开启crond服务。
//开启crond服务
service crond start
//设置crond服务开机自启动
chkconfig --level 2345 crond on
crontab
命令用途:管理定时任务。
命令语法:crontab [选项]
常用选项:
-l:查看当前用户的定时任务;
-e:编辑定时任务表;
-r:删除当前用户所有的定时任务;
//查看当前用户的定时任务
crontab -l
//删除当前用户的所有定时任务
crontab -r
//编辑定时任务表
crontab -e
在创建定时任务时,需使用cron表达式来设置任务的执行时间和周期,cron表达式用五个“*”星号来分别表示分钟、小时、天、月、周,各个“*”星号的具体含义如下表。
项目 | 含义 | 取值范围 |
第一个“*” | 一小时当中的第几分钟 | 0-59 |
第二个“*” | 一天当中的第几小时 | 0-23 |
第三个“*” | 一月当中的第几天 | 1-31 |
第四个“*” | 一年当中的第几月 | 1-12 |
第五个“*” | 一周当中的星期几 | 0-7(0和7都代表星期日) |
以下是一些cron表达式的示例用法。
//每个星期一和星期二的晚上10点45分执行一次
45 22 * * 1,2
//每隔10分钟执行一次
*/10 * * * *
//每周一和每个月的1号、15号的0点0分执行一次
0 0 1,15 * 1
//每周一到周五的上午7点40分执行一次
40 7 * * 1-5
定时任务设置语法:cron表达式 [要执行的命令]
//每隔一分钟向/test/cron.log文件末尾写入数字1
*/1 * * * * /bin/echo 1 >> /test/cron.log
vmstat
命令用途:查看进程、内存、io等系统整体运行状态。
命令语法:vmstat [刷新延时] [刷新次数]
//查看系统运行状态,每隔3秒刷新一次,刷新两次
vmstat 3 2
dmesg
命令用途:查看系统开机时的内核检测信息。
命令语法:dmesg
//查看系统自检信息中与“cpu”相关的内容
dmesg | grep cpu
free
命令用途:查看系统内存使用状态。
命令语法:free [选项]
常用选项:
-b:以字节为单位显示;
-k:以kb为单位显示,默认选项;
-m:以mb为单位显示;
-g:以gb为单位显示;
//查看系统内存使用状态,以mb为单位显示
free -m
注:使用cat /proc/cpuinfo命令,可以查看更为详细的cpu信息。
uname
命令用途:查看系统内核相关信息。
命令语法:uname[选项]
常用选项:
-a:查看所有系统内核相关信息;
-r:查看系统内核版本;
-s:查看系统内核名称;
//查看所有系统内核相关信息;
uname -a
注:
- 使用file命令查看任意系统外部命令文件可以用来查看当前系统的位数,例如 file /bin/ls
- 使用lsb_release -a命令可以查看当前系统的发行版本。
lsof
命令用途:查看进程所打开的文件。
命令语法:lsof[选项] [进程名|pid]
常用选项:
-c:根据进程名查看;
-p:根据进程pid查看;
-u:查看与指定用户相关的进程;
//查看进程init打开的文件
lsof -c init
//查看进程962打开的文件
lsof -p 962
//查看与root用户相关的进程打开的文件
lsof -u root