进程可以理解为正在运行中的程序,都有自己的地址空间,并占用一定的系统资源,任何程序包括系统命令都至少包含一个进程。
例如,ls命令也有进程,不过它执行的很快,执行完了,进程就关闭了,我们很难观察到它。
进程管理的主要工作包括
top [选项]
-d 指定状态更新的周期,默认是3s
top命令的交互模式可以执行的命令
?或h 显示帮助
P 以CPU使用率排序,默认就是此项,注意大小写
M 以内存的使用率排序
N 以PID来排序
q 退出
top命令执行后,在顶部会有5行统计信息,其中比较重要的有:
ps aux //查看系统中所有进程,包含其他使用者的进程,使用BSD操作系统格式,注意这种格式的选项没有“-”。a显示所有前台进程,x显示所有后台进程,u显示用户信息
ps -le //查看系统中所有进程,使用Linux标准命令格式。l长格式,显示详细信息,e显示所有进程。
显示参数的含义:
案例:
pstree [选项]
选项:
-p: 显示进程的PID
-u: 显示进程的所属用户
注意:
kill –l //查看可用的进程信号
进程信号很多,常用的有
案例:
killall [选项][信号] 进程名 //按照进程名杀死进程
选项:
-i: 交互式,询问是否要杀死某个进程
-I: 忽略进程名的大小写
pkill [选项] [信号] 进程名 //按照进程名终止进程
选项:
-t 终端号: 按照终端号踢出用户
例如:
w //使用w命令查询本机已经登录的用户
pkill -9 -t pts/1 //强制杀死从pts/1虚拟终端登录的进程
killall和pkill与kill的区别在于,它能按照进程名杀死一类进程,pkill和killall的区别,在于可以提出终端用户
两种方式:&和ctrl + z
tar -zcf etc.tar.gz /etc &
top //在top命令执行的过程中,按下ctrl+z快捷键
这两种方式的区别在于,&放入后台的程序,还在运行,但是ctrl + z放入后台的程序会暂停运行
注意: vim, top等命令不能放入到后台运行,因为他们运行的目的就是和用户交互的,放到后台并且运行,对于他们来说没有意义。但是打包、压缩、查找这些命令是可以放入后台执行的。
查看后台的工作
jobs [-l] 选项:
-l: 显示工作的PID
注意: “+”号代表最近一个放入后台的工作,也是工作恢 复时,默认恢复的工作。“-”号代表倒数第二个放入后台的工作。
将后台暂停的工作恢复到前台执行
fg %工作号
参数:
%工作号: %号可以省略,但是注意工作号和PID的区别
把后台暂停的工作恢复到后台执行
bg %工作号
注意:后台恢复执行的命令,是不能和前台有 交互的,否则不能恢复到后台执行,例如vim
vmstat [刷新周期 刷新次数]
这是top命令的简化版,主要用来查看剩余内存和CPU的占用情况
dmesg | grep -i cpu 忽略大小写
dmesg用来显示内核环缓冲区(kernel-ring buffer)内容,内核将各种消息存放在这里。在系统引导时,内核将与硬件和模块初始化相关的信息填到这个缓冲区中。内核环缓冲区中的消息对于诊断系统问题 通常非常有用。例如,如果发现硬盘性能低下,可以使用dmesg来检查它们是否运行在DMA模式。
开机信息亦保存在/var/log/dmesg的文件中。
free [-b|-k|-m|-g] //查看内存使用状态,选项是显示的单位,默认为kb
缓冲区和缓存的区别和联系
查看cpu信息
top命令的第一行,时间、开机时长、用户数、平均负载等
uptime/top/w都可以看到这些信息
查看系统及内核的相关信息
uname -a //查看系统所有相关信息
file /bin/ls //判断当前系统的位数
lsb_release -a //查看系统的发行版本
lsof [选项] //列出进程调用或打开的文件的信息
选项:
lsof abc.txt 显示开启文件abc.txt的进程
lsof -c abc 显示abc进程现在打开的文件
lsof -p 1234 列出进程号为1234的进程所打开的文件
Linux默认安装和提供的定时任务管理工具,一般不需要启动和重启
service crond restart
chkconfig –list | grep crond 查看服务
crond对应的配置文件在/etc/crontab
crontab [选项]
选项:
-e: 编辑crontab定时任务
-l: 查询crontab任务
-r: 删除当前用户所有的crontab 任务
任务的格式:
* * * * * 执行的任务
注意:10 * * * * 表示每个小时的第10个分钟,而不是每隔十分钟,如果要用每隔十分钟需要配合特殊符号 */10
特殊符号:
案例:
注意:
date +%y%m%d 表示格式化日期显示,但是这个命令放在crondtab中会报错,%需要转义,date +\%y\%m\%d