ps/top
/kill/jobs/crontab
等常用命令的总结
希望大家提些宝贵的意见。
一.
进程
进程:就是内存空间中的一个或者多个线程,是用户的代理。其他所有的进程都是由init进程所延伸出来的。用PID(进程号 1-32767)来标示各个进程。其中init的进程号为1。
1.pstree
:用来查看进程树
2.ps
:用来列出进程,
ps
的一些选项:
a 列出与终端有关的进程
x 列出与终端无关的进程
-e 列出所有的进程
u 列出与用户有关的进程
一些常用的ps 命令:
ps aux 列出所有的与用户有关的进程
ps �Cef 和ps aux 的效果是一样的,一般ef选项前面带---
3.ps aux
的一些说明:
USER: 用户名
PID : 进程的PID号
%CPU: 进程获得的cpu和总的cpu的比值
%MEM:进程获得的内存和总内存的比值
VSZ :虚拟内存的大小
RSS :非虚拟内存的大小
TTY :所用的终端
STAT :进程的状态
START :进程开始的时间
TIME :运行进程时总共获得cpu的时间
COMMAND:每个命令的子进程
4.
查找特定的进程
(1)�Co 可以指定特定的字段
e.g:ps axo comm,tty |grep tty1
(2)pgrep 支持正则表达式
e.g:pgrep �CU root
(3)pidof 可以精确查找其进程号
e.g:pidof sshd
5.
终止进程
(1) kill
pid 用PID来终止进程
(2) killall
进程名 终止以此进程名命名的所有进程
(3)pkill �Cu
指定用户名 �Ci
进入交互模式
6.
进程的优先级
每个进程都有一个优先级,命名为nice值,nice值的范围为-20~~~19,进程的nice值越小,优先级就会越高。默认启动的程序的优先级都为0
(1)在启动进程的时候可以指定其优先级
e.g: nice �Cn 5
command
(2)renice 5
-p
PID 调整正在运行的进程的优先级,普通用户只能把nice值调大,只有root用户可以把nice值调小
二
.TOP
top
:动态显示进程运行状态,类似于windows下的任务管理器。
(1)top的说明:
“top �C 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 �Cl 查看信号的相关信息:
常用的有:
1 重新读取一下配置文件
2 相当于ctrl + c
9 立刻终止子进程
15 先终止子进程,然后再终止父进程
19 相当于ctrl + z
四
.jobs
1 ctrl + z 把程序放在后台运行,但是程序不会运行
2 查看放在后台的作业:jobs
3 把作业调回前台: fg %1 其中%是可以省略的
4.jobs的一些选项
-l 显示器进程号
-r 查看处于运行的作业
-s 产看处于停止的作业
5.bg %1 让程序在后台继续运行
6. kill %1 删除作业,其中%是不能省略的
五
.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 读取一个文件中的命令
执行命令之后,会给root用户发一封邮件
-d 删除尚未执行的计划,相当于atrm
-q 指定队列
4./etc/at.deny在此文件中可以指定不能使用at命令的用户
5.计划保存在/var/spool/cron中
六
.crontab
crontab
:可以循环执行任务或者计划,可以分为用户
crontab
和系统
crontab
。
1. crontab是由进程crond进程发起的
2. 用户crontab
(1) crontab �Ce :编辑自己的crontab
(2)格式:
M(分钟) H(小时) D(天) M(月) DoW(一周的第几天) command(执行的命令)
(3) 文件保存在/var/spool/cron下
(4) DoW 的值可以用逗号隔开表示离散的数值
(5) */2 表示每个两个单位执行脚本
(6) crontab �Cl 查看列表
(7) crontab �Cr 删除计划
(8) crontab �CU
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.编写一个脚本
2.调试,并执行
当输入命令“ctrl+c”的是后会出现如图红线的提示,然后程序一直执行下去,不理会“ctrl+c”命令,而是会显示“Do not interrupt me........”
八
.
变量
1.env:显示所有的环境变量
2.PATH:定义命令的搜索路径
3.hash :显示曾经执行过的命令
4.set 显示所有的变量(包括环境变量和本地变量)
5.一些常用的变量
PS1:定义命令提示符
u:当前用户
h:主机名
W:表示当前的相对路径
九
.Aliases
1.定义别名
alias cls=clear
2.撤销别名
unalias cls
十
.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的效果是一样的