菜鸟笔记
提升您的技术认知

菜鸟教程

rapidjson 构造数组将函数实现放在头文件中RapidJSON解析和生成Json绝对路径和相对路径gcc 优化选项 -O1 -O2 -O3 -Os 优先级Python求一个整数位数的方法python中判断数字位数的几种方法python计算分位数查看hive的版本如何查看hadoop的版本elasticsearch查看所有indexsublime 列模式 列编辑shell遍历目录下所有文件http-parser解析http报文详解supervisor守护工具配置lnmp为已有站点手动更新ssl证书记录java 最长回文、最长回文子串ssh免密码登录为Linux内核开启BBR加速frp服务开机自启x86架构下,页面大小为什么是4K?如何限制对象只能建立在堆上或者栈上进程间通信的方式SyntaxError: Non-ASCII character '\xe5'TCP 连接半关闭问题ucontext 协程库代码分析python中yield的用法详解为PHP7.0安装redis扩展ucontext 简单协程库ImportError: No module named cv2的完美解决方法HashMap扩容全过程关于HashMap常见面试考点(底层原理+扩容机制)DOS批处理中的字符串处理详解(字符串截取)Linux下如何查找.sh后缀的文件core文件出现“is not a core dump: File format not recognized”的原因和解决方法(看/proc/pid/limits)记一次docker问题定位(perf,iostat等性能分析)Protocol Buffers 2.5.0 安装python 使用thrift序列化与反序列化对象PHP的base64_decode乱码linux中后台运行 java -jarLinux常用命令--文件搜索Linux常用命令--文件基础操作与文件权限变更Linux常用命令--软件包管理之(RPM包管理)Linux常用命令--文件编辑与查看Linux常用命令--文件压缩与挂载Linux常用命令--系统管理Linux常用命令--系统管理之(用户管理、用户组管理)Linux常用命令--系统管理之(进程管理、定时任务、系统监控)Linux常用命令--软件包管理之(服务管理)Linux常用命令--软件包管理之(yum与源码包安装)Linux初窥:Linux下SSH免密码登录配置如何查看CentOS7的版本信息Linux环境变量文件介绍Linux下Tomcat的安装与配置CentOS解决-bash: vim: command not found10 个提高效率的 Linux 命令别名shell比较浮点数和整数crontab 30秒执行一次Python中字典合并的四种方法shell查看CPU 硬盘 内存使用率Python 四大主流 Web 编程框架python:web后台框架简单实现如何使用 BRPC Dummy Serverlist、vector使用erase()时需要注意的地方——迭代器失效容器删除元素后迭代器失效_STL源码剖析——vector容器STL的erase()陷阱-迭代器失效总结.bashrc中定义实用的别名和函数

Linux常用命令--系统管理之(进程管理、定时任务、系统监控)

阅读 : 143

目录

查看进程

ps

top

pstree

终止进程

kill

killall

pkill

后台进程

jobs

fg

bg

定时任务

crond

crontab

系统监控

vmstat

dmesg

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