感谢支持
我们一直在努力

Linux程序管理与SELinux初探

1.jobs [-lrs]:观察目前的背景中的工作状态,参数,

-l:除了列出job number与指令串之外,同时列出PID的号码

-r:进列出正在背景run的工作

-s:仅列出正在背景中暂停的工作

指令执行后的+号表示最近最后被放到背景的工作号码,-代表最后第二个放置到背景中的工作号码。而超过第三个以后的工作就不再有+/-号了。

2.fg %jobnumber:将背景中的工作拿到前景来处理,参数:

1)%jobnumber为工作号码(数字),这个%是可有可无的,如果不加任何参数,则表示将+(最近最后)的那个背景工作拿到前景中来执行,fg -代表将-那个工作号码拿出来到前景中取运行。

3.bg:让工作在背景中的指令由暂停状态运行状态(ctr+z可使程序在背景中暂停),参数同fg。

4.kill -signal %jobnumber;kill -l:管理背景中的工作,参数,

1)-l:列出目前kill能够使用的讯号

2)signal:代表给予后面接的那个工作什么样的指示,用man 7 signal可知:

-1:重新读取一次参数的配置文件

-2:代表由键盘输入ctr+c同样的动作

-9:立刻强制删除一个工作

-15:以正常的程序方式终止一项工作

5.背景是指终端机模式下,可以避免ctr+c中断的一个情景,并不是放到系统的背景去,所以工作管理的背景依旧与终端机有关,在这样的情况下,如果是以远程联机的方式连接的linux主机,并且将工作以&方式放到背景中处理,工作尚未结束的情况下脱机,该工作不会继续进行了,就会到此终止掉。

6.nohup [指令与参数]:在终端机前景中工作;nohup [指令与参数] &在终端机背景中去工作。需要注意的是nohup并不支持bash的内建指令,因此你的指令必须是外部指令才行。

7.ps :将某个时间点的程序运作情况撷取下来,几个常用的组合,

1)ps aux:观察所有的程序数据

2)ps -IA:观察所有的系统数据

3)ps axjf:连同分程序树状态

4)ps -l:只查阅自己bash的程序

各个分参数:

1)-A:所有的process均显示出来,与-e具有同样的效用

2)-a:不与terminal有关的所有process

3)-u:有效使用者相关的process

4)x:通常与a一起用,可以列出较完整的信息

输出格式规划:

5)l:较长,较详细的将该PID的信息列出

6)j:工作格式

7)-f:做一个更为完整的输出

ps -l:中各项参数的意义:

F:代表这个程序的标识(flag),常见的有:

4:表示这个程序的权限为root

1:表示此子程序仅进行fork而没有实际执行exec

S:代表这个程序的状态,主要的状态有:

R:该程序正在运作中

S:改程序目前处于睡眠状态,但可以被唤醒

D:不可被唤醒的睡眠状态,通常这只程序在等待IO的情况

T:停止状态,可能是在工作控制(背景暂停)或除错状态

Z:僵尸状态,程序已经终止但无法被移除至内存外

UID/PID/PPID:代表此程序被该UID所拥有的/程序的PID号码/此程序的PID号码

C:代表CPU使用率,单位为百分比

PRI/NI:priority/nice的缩写,代表此程序被CPU所执行的优先级,数值越小代表该程序越快被CPU执行

ADDR/SZ/WCHAN:都与内存由关,ADDR是kernel function,指出该程序在内存的哪个部分,如果是running的程序,一般会显示-,/SZ代表此程序的用掉了多少内存/WCCHAN表示目前程序是否在运行中

,同样若为-表示运作中

TTY:登入者的终端机位置,若为远程登录则使用动态终端接口(pts/n)

TIME:使用掉的CPU时间,是此程序实际花掉的cpu时间,而不是系统时间

CMD:指令

ps aux中各项参数的含义,

USER:该process属于哪个使用者账号

PID:进程ID

%CPU:CPU利用率

%MEM:占用内存的百分比

VSZ:该process使用掉的虚拟内存(Kbytes)

RSS:该process占用的固定内存(Kbytes)

TTY:该程序跑的终端设备,tty1-6是本机的,ps/0等,表示由网络连接进主机的程序

STAT:该程序目前的状态

START:该process被触发启动的时间

TIME:该process实际使用的CPU时间

COMMAND:该程序实际使用的指令

8.僵尸程序:通常造成僵尸程序的成因是因为该程序应该已经执行完毕,或者是因故应该要终止了,但是该程序的父进程却无法完整的讲该程序结束掉,而造成那个程序一直在内存中。这样的程序在cmd后面还会接上<defunct>表示该程序是僵尸程序

更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2015-01/111235p2.htm

1.top [-d 数字];top [-bnp]:动态观察程序的变化,参数,

1)-d:后面接秒数,就是整个程序画面更新的秒数。预设是5秒

2)-b:以批次的方式执行top,通常会搭配数据流从导向来将批次结果输出成为档案。

3)-n:与-b搭配,意义是,需要进行几次top输出结果

4)-p:指定某些个PID来进行观察检测而已。

在top执行过程中可以使用的按键指令:

?:显示在top当中可以输入的指令按键

P:以cpu的使用资源;排序

M:以Memery的使用资源排序显示

N:以PID来排序

T:由该Process使用的CPU时间累积(TIME+)排序

k:给予某个PID一个讯号

r:给予某个PID重新定制一个nice值

q:离开top软件的按键

top界面介绍,top分为两个界面,上面的画面为整个系统的资源使用情况,基本总共有6行,显示的内容表示:

第一行,这一行显示的信息分别为(各个信息以空格分开):

目前的时间,

开机到目前所经过的时间

已经登入系统的人数

系统在1,5,15分钟的平均负载

第二行,显示目前程序的总量,与个别程序在什么状态(running,sleeping,stopped,zombie)。

第三行,显示的是cpu的整体负载,包括用户拥有的进程数所占的百分比,系统运行的进程数的百分比,io等待的进程所占的百分比等

第四、五行,表示目前无力内存与虚拟内存的使用情况。

第六行,表示当在top中输入指令时,显示状态的地方

下面部分则是每个process的资源使用情况,分别代表,

PID,进程编号

USER,该进程的所有者

PR,Priority的简写,优先级,越小越先执行

NI,nice的简写,是priority的的修正值,也是越小越先执行,可参考,http://www.kuqin.com/linux/20090424/47813.html

%CPU,CPU利用率

%MEM,内存使用率

TIME+:CPU使用事件的累加

top预设以cpu的使用率来排序的

2.pstree [-a|U][-up]:以树形结构显示进程状态信息,参数,

1)-a:各程序树之间的连接以ASCII字符来连接

2)-U:各程序树之间的连接是以UTF-8编码码的字符来连接。在某些终端接口下可能会有错误,

3)-p:并同时列出每个process的pid

4)-u:并同时列出每个process的所属账号名称

3.killall -signal [-iIe] 指令名称:通过下达指令的名称来杀死进程,参数

1)-i:interactive,交互式,会提示字符给用户

2)-e:exact的意思,表示后面接的command name要一致,但整个完整的指令不能超过15个字符

3)-I:指令名称(可能含有参数)忽略大小写

signal的值参见上一篇博客(http://7613577.blog.51cto.com/7603577/1598771)

4.PRI和Nice的关系:Nice是PRI的修正值,需要注意的是,

1)Nice的可调整范围为-20~19

2)root可以随意调整自己或他人程序的Nice值,且范围为-20~19

3)一般用户的仅可以调整自己程序的nice值,且范围为0-19(避免一般用户抢占资源

4)一般用户仅可将nice值越调越高,

5.nice [-n 数字] command:新执行的指令即给予新的nice值

-n:后面接一个数值,数值范围-20~19

6.renice [number] PID:已存在的程序重新调整nice

值。

7.nice值可以由父程序向子程序之间传递。

1.free [-bkmg][-t]:观察内存使用情况,参数,

1)-b:直接输入free时,显示的单位是Kbytes,我们可以使用b(bytes),m(Mbytes)

2)-t:在输出的最终结果,显示物理内存与swap总量

2.uname [-asrmpi]:系统核心相关的信息,参数,

1)-a:所有系统相关的信息都i将被列出来

2)-s:系统的硬件统核心名称

3)-r:核心的版本

4)-m:本系统的硬件名称,例如i686等

5)-p:CPU类型,与-m类似,只是显示的是CPU类型

6)-i:硬件的平台

3.upname:观察系统启动时间与工作负载,即显示top的第一行信息

4.netstat [-atunlp]:追踪网络或插槽文件,经常被用在网络监控方面,基本上netstat的输出分为两部分,分别是网络与系统自己的程序相关的部分,参数,

1)-a:将目前系统上面所有的联机、监听、Socket数据列出来

2)-t:列出tcp网络封包的数据

3)-u:列出udp网络封包的数据

4)-n:以端口号来显示

5)-l:列出目前正在网络监听的服务

6)-p:列出该网络服务的程序PID

结果显示解读:

Active Internet connection(w/o servers)与网络相关的部分

Proto:网络的封包协议,主要分为TCP与UDP封包,

Recv-Q:非由用户程序链接到此sockets的赋值的总bytes数

Send-Q:非由远程主机传送过来的acknowledge总bytes

Local Address:本地端的IP:port情况

Foreign:远程主机的IP:port情况

State:联机状态主要有建立(ESTABLISED)及监听(LISTEN)

Active UNIX domain sockets (w/o servers)与本机程序自己的相关性,结果中socket file的输出字段有,

Proto:一般是unix

RefCnt:链接到此socket的程序数量

Flags:联机的旗标

Type:socket存取的类型。主要有确认链接的STREAM与不需要确认的DGRAM

State:若为CONNECTED表示多个程序之间已经联机建立

Path:连接到此socket的相关程序的路径,或者是相关数据输出路径

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-01/111235.htm

1.dmesg:分析核心产生的信息,系统在开机的时候会侦测系统的硬件,这些信息被记录到内存中的某个保护区段,该指令就是将这些信息取出来。

2.vmstat [-a][延迟[总计侦测次数]],cpu内存、等信息;vmstat[-fs],内存相关,vmstat [-S 单位],设定显示单位;vmstat [-d],与磁盘相关;vmstat [-p 分隔槽],与磁盘相关:侦测系统资源变化,可以侦测CPU,内存,磁盘输入输出状态等等。参数,

1)-a:使用inactive/active(活跃与否)取代buffer/cache的内存输出信息

2)-f:将开机到目前为止,系统复制(fork)的程序数

3)-s:将一些事件(开机至目前为止)导致的内存变化情况列表说明

4)-S:后面可接单位,让显示的数据有单位,例如K/M取代bytes的容量

5)-d:列出磁盘的读写总量统计表

6)-p:后面列出分隔槽,可显示该分割槽的读写总量统计表

结果解读:

r:等待运作中的程序数;b:不可被唤醒的程序数量;这两个项目越多,代表系统越繁忙

swpd:虚拟内存被使用的容量;free:未使用的内存容量;buff:用于缓冲存储器;cache:用于高速缓存

si:由磁盘中将程序取出的量;so:由于内存不足而将没用到的程序写入到磁盘的swap的容量。如果si/so的数值太大,表示内存的数据常常得在磁盘与主存储器之间穿来穿去,系统效能会很差

bi:由磁盘写入区块数量;bo:写入到磁盘去的区块数量;如果这部分数值越高,代表系统的I/O非常忙碌

in:每秒被中断的程序次数;cs:每秒钟进行的时间切换次数;这两个数值越大,代表系统与接口设备沟通非常频繁,这些接口设备当然包括磁盘,网络卡,时间钟等

us:非核心的CPU使用状态;sy:核心层所使用的CPU状态;id:闲置的状态;wa:等待I/O所耗费的CPU状态;st:被虚拟机所盗用的CPU使用状态

3.fuser [-umv] [-k [i] [-signal]] file/dir:查看程序在启动的过程中开启了多少档案。参数:

1)-u:除了程序的PID之外,同时列出该程序的拥有者

2)-m:后面接的那个档名主动的上提到该文件系统的最顶层,对umount不成功很有效

3)-v:可以列出每个档案与程序还有指令的完整相关性

4)-k:找出使用该档案/目录的PID,并试图以SIGKILL这个讯号给予改PID

5)-i:必须与-k配合,在删除PID之前会先询问使用者意愿

6)-signal:例如-1 -15等等,若不加,预设是SIGKILL(-9)

该指令只有root才可以执行,在带有参数-v时,ACCESS选项的代表的意义为:

c:此程序在当前目录下(非次目录)

e:可悲触发为执行状态

f:代表顶层目录

F:该档案被开启了,不过在等待回应中

m:可能为分享的动态函数库

4.lsof [-aUu] [+d]:查询某个程序开启 数,

1)-a:多项数据需要同时建立才显示出结果

2)-U:进列出Unix like系统的socket文件类型

3)-u:后面接username,列出该用户相关程序所开启的档案

4)+d:后面接目录,亦即找出某个目录底下已经被开启的档案。

5.pidof [-sx] program_name:找出某只正在执行的程序的PID,后面可以同时接多个程序名,参数:

1)-s:仅列出一个PID而不是列出所有的PID

2)-x:同时列出该program name尽可能的PPID那个程序的PID。

赞(0) 打赏
转载请注明出处:服务器评测 » Linux程序管理与SELinux初探
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏