ps/top/kill/jobs/crontab等常用命令的总结
希望大家提些宝贵的意见。
一.进程
进程:就是内存空间中的一个或者多个线程,是用户的代理。其他所有的进程都是由init进程所延伸出来的。用PID(进程号 1-32767)来标示各个进程。其中init的进程号为1。
1.pstree:用来查看进程树
clip_p_w_picpath002
2.ps :用来列出进程,ps的一些选项:
a 列出与终端有关的进程
x 列出与终端无关的进程
-e 列出所有的进程
u 列出与用户有关的进程
一些常用的ps 命令:
ps aux 列出所有的与用户有关的进程
ps –ef 和ps aux 的效果是一样的,一般ef选项前面带---
3.ps aux 的一些说明
clip_p_w_picpath004
USER: 用户名
PID : 进程的PID号
%CPU: 进程获得的cpu和总的cpu的比值
%MEM:进程获得的内存和总内存的比值
VSZ :虚拟内存的大小
RSS :非虚拟内存的大小
TTY :所用的终端
STAT :进程的状态
START :进程开始的时间
TIME :运行进程时总共获得cpu的时间
COMMAND:每个命令的子进程
4.查找特定的进程
(1)–o 可以指定特定的字段
e.g:ps axo comm,tty |grep tty1
clip_p_w_picpath006
(2)pgrep 支持正则表达式
e.g:pgrep –U root
clip_p_w_picpath008
(3)pidof 可以精确查找其进程号
e.g:pidof sshd
clip_p_w_picpath010
5.终止进程
(1) kill pid 用PID来终止进程
(2) killall 进程名 终止以此进程名命名的所有进程
(3)pkill –u 指定用户名 –i 进入交互模式
6.进程的优先级
每个进程都有一个优先级,命名为nice值,nice值的范围为-20~~~19,进程的nice值越小,优先级就会越高。默认启动的程序的优先级都为0
clip_p_w_picpath012
(1)在启动进程的时候可以指定其优先级
e.g: nice –n 5 command
(2)renice 5 -p PID 调整正在运行的进程的优先级,普通用户只能把nice值调大,只有root用户可以把nice值调小
.TOP
top动态显示进程运行状态,类似于windows下的任务管理器。
(1)top的说明:
clip_p_w_picpath014
“top – 07:40:54…..” 是自linux启动后运行的时间,4个用户正在登陆系统,平均负载值
“Task:119….” 有119个任务,有3个正在运行,116个处于睡眠状态,0个停止,0个“僵尸”进程
“Cpu(s):……” us:用户发起的进程所用的cpu与总cpu的比值
sy:系统发起的进程所用的cpu与总cpu的比值
ni:nice值经过改变的进程占总进程cpu的比值
wa:(wait),当发起进程的时候,要从硬盘读取文件,此时cpu的等待时间与运行此程序时间的比值
hi:硬件的中断时间
si:软件的中断时间
st:(stole)当前系统中运行虚拟机使用的cpu
“Mem :……” 内存的使用情况
“Swap:……….” swap分区的使用情况,其中buffers为缓冲,cached为缓存。
PID :进程号
USER:用户名
PR :相对nice值的偏移
NI:nice值
VIRT,RES,SHR :内存的情况
S:进程的状态
%CPU:使用cpu 的百分比
%MEM:使用内存的百分比
TIME:总体使用cpu的时间比
COMMAND:运行进程的子进程
(2)top 的一些常用选项:
-b 进入批处理模式
-d 指定刷新时间
-n 指定刷新的次数
.信号
信号:进程之间交流的方法。信号传送是靠名字和数字进行的。下面列出常用的命令的信号值:
可以用kill –l 查看信号的相关信息:
clip_p_w_picpath016
常用的有:
1 重新读取一下配置文件
2 相当于ctrl + c
9 立刻终止子进程
15 先终止子进程,然后再终止父进程
19 相当于ctrl + z
.jobs
1 ctrl + z 把程序放在后台运行,但是程序不会运行
2 查看放在后台的作业:jobs
clip_p_w_picpath018
3 把作业调回前台: fg %1 其中%是可以省略的
clip_p_w_picpath020
4.jobs的一些选项
-l 显示器进程号
-r 查看处于运行的作业
-s 产看处于停止的作业
5.bg %1 让程序在后台继续运行
6. kill %1 删除作业,其中%是不能省略的
clip_p_w_picpath022
.at
at:在某个特定的时间运行的命令
1.at 支持模糊的时间匹配,比如说:tea time ,midnight
2.at 支持相对时间和绝对的时间
相对时间:e.g:at now +1min ifconfig
绝对时间:e.g:at 17:23 ifconfig
3.at的一些常用选项
-l 看计划 也可以用atq
-f 读取一个文件中的命令
clip_p_w_picpath024
clip_p_w_picpath026
执行命令之后,会给root用户发一封邮件
-d 删除尚未执行的计划,相当于atrm
-q 指定队列
4./etc/at.deny在此文件中可以指定不能使用at命令的用户
5.计划保存在/var/spool/cron中
.crontab
crontab:可以循环执行任务或者计划,可以分为用户crontab和系统crontab
1. crontab是由进程crond进程发起的
2. 用户crontab
(1) crontab –e :编辑自己的crontab
(2)格式:
M(分钟) H(小时) D(天) M(月) DoW(一周的第几天) command(执行的命令)
(3) 文件保存在/var/spool/cron下
(4) DoW 的值可以用逗号隔开表示离散的数值
(5) */2 表示每个两个单位执行脚本
(6) crontab –l 查看列表
(7) crontab –r 删除计划
(8) crontab –U redhat 可以为用户指定计划
(9) /etc/crontab.deny中可以定义拒绝哪个用户运行crontab命令
3.系统 crontab
(1) 系统的文件在/etc/crontab,其中和用户crontab不同的是run-parts 是系统crontab运行的脚本
4.anacron 不是crontab的替代品,而是用来弥补crontab的不足的,因为当crontab的开发是为服务器开发的,假如关机的话,任务就不能执行了。
(1)anacrontab的配置文件/etc/anacrontab ,配置文件中可以定义在开机多长时间来执行任务,单位为minute
.捕捉信号
格式:trap command SIGNAL,下面用一个脚本来说明:
1.编写一个脚本
p_w_picpath
2.调试,并执行
clip_p_w_picpath030
当输入命令“ctrl+c”的是后会出现如图红线的提示,然后程序一直执行下去,不理会“ctrl+c”命令,而是会显示“Do not interrupt me........”
.变量
1.env:显示所有的环境变量
clip_p_w_picpath032
2.PATH:定义命令的搜索路径
clip_p_w_picpath034
3.hash :显示曾经执行过的命令
clip_p_w_picpath036
4.set 显示所有的变量(包括环境变量和本地变量)
clip_p_w_picpath038
5.一些常用的变量
PS1:定义命令提示符
clip_p_w_picpath040
u:当前用户
h:主机名
W:表示当前的相对路径
.Aliases
1.定义别名
alias cls=clear
clip_p_w_picpath042
2.撤销别名
unalias cls
clip_p_w_picpath044
.shell所用的配置文件
1.全局配置文件:/etc/profile ,/etc/profile.d/* 和/etc/bashrc
用户配置文件:~/.bash_profile
~/.bashrc
2.login shell运行时读取的配置文件:
/etc/profile----->~/.bash_profile-------->/etc/profile.d/*---------->~/.bashrc-------->/etc/bashrc
3.非login shell 运行时读取的配置文件:
~/.bashrc--------->/etc/bashrc-------->/etc/profile.d/*
4.profile文件中主演方的是环境变量
bashrc 主要设置本地的变量和别名
5.两个常用的命令
source .bashrc 重新读取一下配置文件
. bashrc 和source的效果是一样的