在linux下做开发,经常要用到一些管理程序的命令,如查看进程,查看内存等情况。看网络情况。如下的笔记是看书时记下一些简单常用的命令。
1)top
[root@005 fsh]#top[-d数字]|top[-bnp]
选项与参数:
-d :后面可以接秒数,就是整个程序画面更新的秒数。预设是5秒;
-b :以批次的方式执行top,还有更多的参数可以使用喔!
 
通常会搭配数据流重导向来将批次的结果输出成为档案。
-n :与-b搭配,意义是,需要进行几次top的输出结果。
-p :指定某些个PID来进行观察监测而已。
 
在top执行过程当中可以使用的按键指令:
?:显示在top当中可以输入的按键指令;
P:以CPU的使用资源排序显示;
M:以Memory的使用资源排序显示;
N:以PID来排序喔!
T:由该Process使用的CPU时间累积(TIME+)排序。
k:给予某个PID一个讯号(signal)
r:给予某个PID重新制订一个nice值。
q:离开top软件的按键。
 
2) pstree
[root@005 fsh]#pstree[-A|U][-up]
选项与参数:
-A :各程序树之间的连接以ASCII字符来连接;
-U :各程序树之间的连接以万国码的字符来连接。在某些终端接口下可能会有错误;
-p :并同时列出每个process的PID;
-u :并同时列出每个process的所属账号名称。
 
3)killall
[root@005 fsh]#killall[-iIe][commandname]
选项与参数:
-i :interactive的意思,交互式的,若需要删除时,会出现提示字符给使用者;
-e :exact的意思,表示『后面接的commandname要一致』,但整个完整的指令
不能超过15个字符。
-I :指令名称(可能含参数)忽略大小写。
 
4) Priority与Nice值
  a)priority (PRI) 值越低代表越优先的意思。这个PRI核心动态调整程序的优先级。使用者无法直接调整PRI值的。
    [root@005 fsh]# ps -l
    F S UID PID    PPID C PRI NI ADDR  SZ WCHAN TTY TIME CMD
    4 R 0     1820  7000 0 80  0   - 27024 - pts/4 00:00:00 ps
    4 S 0     7000  6975 0   0   - 27108 wait pts/4 00:00:00 bash
 
  b)由于PRI是核心动态调整的,我们使用者也无权去干涉PRI!那如果你想要调整程序的优先执行序时,
     就得要透过Nice值了!Nice值就是上表的NI啦!一般来说,PRI与NI的相关性如下:
     PRI(new)=PRI(old)+nice
 
   c)我们必须注意到
    1.nice值可调整的范围为-20~19;
    2.root可随意调整自己或他人程序的Nice值,且范围为-20~19;
    3.一般使用者仅可调整自己程序的Nice值,且范围仅为0~19(避免一般用户抢占系统资源);
    4.一般使用者仅可将nice值越调越高,例如本来nice为5,则未来仅能调整到大于5;
 
   d)调整某个程序的优先执行序
    1.一开始执行程序就立即给予一个特定的nice值:用nice指令;
    2.调整某个已经存在的PID的nice值:用renice指令。
   
   e)nice
    [root@005 fsh]#nice[-n]command
    选项与参数:
    -n :后面接一个数值,数值的范围-20~19。
    如:
    范例一:用root给一个nice植为-5,用于执行vi,并观察该程序!
    [[root@005 fsh]# nice -n -5 vi &
    [1] 28923
    You have mail in /var/spool/mail/root
    [root@005 fsh]# ps -l
    F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
    4 S 0 7000 6975 0 80 0 - 27108 wait pts/4 00:00:00 bash
    4 T 0 28923 7000 0 75 -5 - 29245 signal pts/4 00:00:00 vi
    4 R 0 29121 7000 0 80 0 - 27031 - pts/4 00:00:00 ps
 
    [1]+ Stopped nice -n -5 vi
 
   f)renice:已存在程序的nice重新调整
    [root@005 fsh]#renice[number]PID
    选项与参数:
    PID:某个程序的ID啊!
 
5)free:观察内存使用情况
 [root@005 fsh]#free[-b|-k|-m|-g][-t]
选项与参数:
-b :直接输入free时,显示的单位是Kbytes,我们可以使用b(bytes),m(Mbytes)
k(Kbytes),及g(Gbytes)来显示单位喔!
-t :在输出的最终结果,显示物理内存与swap的总量。
 
一般来说,swap最好不要被使用,尤其swap最好不要被使用
超过20%以上,如果您发现swap的用量超过20%,那么,最好还是买物理内存来插吧!因为,Swap
的效能跟物理内存实在差很多,而系统会使用到swap,绝对是因为物理内存不足了才会这样做的。
 
6) uname:查阅系统与核心相关信息
[root@005 fsh]#uname[-asrmpi]
选项与参数:
-a :所有系统相关的信息,包括底下的数据都会被列出来;
-s :系统核心名称
-r :核心的版本
-m :本系统的硬件名称,例如i686或x86_64等;
-p :CPU的类型,与-m类似,只是显示的是CPU的类型!
-i :硬件的平台(ix86)
 
7)uptime:观察系统启动时间与工作负载
netstat:追踪网络或插槽文件
[root@005 fsh]#netstat-[atunlp]
选项与参数:
-a :将目前系统上所有的联机、监听、Socket数据都列出来
-t :列出tcp网络封包的数据
-u :列出udp网络封包的数据
-n :不已程序的服务名称,以埠号(portnumber)来显示;
-l :列出目前正在网络监听(listen)的服务;
-p :列出该网络服务的程序PID
 
如:
找出目前系统上已在监听的网络联机及其PID
[root@005 fsh]# netstat -tlnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2894/nginx
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1099/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1175/master
tcp 0 0 0.0.0.0:5050 0.0.0.0:* LISTEN 9605/python
tcp 0 0 0.0.0.0:5051 0.0.0.0:* LISTEN 9610/python
tcp 0 0 0.0.0.0:7100 0.0.0.0:* LISTEN 8726/nginx
tcp 0 0 0.0.0.0:93 0.0.0.0:* LISTEN 9611/python
 
8) dmesg:分析核心产生的讯息
系统在开机的时候,核心会去侦测系统的硬件,你的某些硬件到底有没有被捉到,那就与这个时候的侦测
有关。
范例一:输出所有的核心开机时的信息
[root@005 fsh]#dmesg|more
范例二:搜寻开机的时候,硬盘的相关信息为何?
[root@005 fsh]#dmesg|grep-ihd
 
9) vmstat:侦测系统资源变化
[root@005 fsh]#vmstat[-a][延迟[总计侦测次数]]<==CPU/内存等信息
[root@005 fsh]#vmstat[-fs] <==内存相关
[root@005 fsh]#vmstat[-S单位] <==设定显示数据的单位
[root@005 fsh]#vmstat[-d] <==与磁盘有关
[root@005 fsh]#vmstat[-p分割槽] <==与磁盘有关
选项与参数:
-a :使用inactive/active(活跃与否)取代buffer/cache的内存输出信息;
-f :将开机到目前为止,系统复制(fork)的程序数;
-s :将一些事件(开机至目前为止)导致的内存变化情况列表说明;
-S :后面可以接单位,让显示的数据有单位。例如K/M取代bytes的容量;
-d :列出磁盘的读写总量统计表
-p :后面列出分割槽,可显示该分割槽的读写总量统计表
 
 

linux 程序管理的更多相关文章

  1. linux 程序管理与SElinux

    此文涉及的命令:&.jobs.fg.bg.kill.nohup.ps.top.pstree.free.uname.uptime.netstat.dmesg.vmstat.fuser.lsof. ...

  2. Linux程序包管理之yum及源代码安装

    第十六章.Linux程序包管理之yum及源代码安装 目录 yum介绍 yum配置文件 yum的repo配置文件中可用的变量 yum命令的使用 使用光盘作为本地yum仓库 如何创建yum仓库 编译安装的 ...

  3. Linux程序包管理rpm与yum

    Linux程序包管理 Linux中软件的安装主要有两种形式:一种是直接下载源代码包自行编译后安装,另一种直接获取rpm软件包进行安装. 程序的组成部分: 二进制程序:程序的主体文件,比如我们运行一个l ...

  4. linux备忘录-程序管理与SELinux

    知识点 程序与程序(Process and Program) 通过执行一条指令或程序,则可以触发一个事件,并获得一个PID.当我们需要启动一个程序时,我们是启动一个二进制文件(binary file) ...

  5. 鸟哥的linux私房菜——第十六章学习(程序管理与 SELinux 初探)

    第十六章.程序管理与 SE Linux 初探 在 Linux 系统当中:"触发任何一个事件时,系统都会将他定义成为一个程序,并且给予这个程序一个 ID ,称为 PID,同时依据启发这个程序的 ...

  6. 浅谈Linux内存管理机制

    经常遇到一些刚接触Linux的新手会问内存占用怎么那么多?在Linux中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然.这是Linux内存管理的一个优秀特性,在这 ...

  7. linux内存管理

    一.Linux 进程在内存中的数据结构 一个可执行程序在存储(没有调入内存)时分为代码段,数据段,未初始化数据段三部分:    1) 代码段:存放CPU执行的机器指令.通常代码区是共享的,即其它执行程 ...

  8. Linux软件包管理

    Linux软件包管理 Linux软件包管理主要有2类:是二进制包管理.源码包管理 二进制包管理 主要有RPM和YUM两种 RPM包管理 安装 --ivh:-v ,-vv,-vvv显示的安装信息依次详细 ...

  9. 【CentOS】Linux日常管理

    /////////////////////////目录///////////////////////////////////////// 一.日常监控指标相关 1.监控系统状态命令 2.查看系统进程 ...

随机推荐

  1. C#中得到两个数百分比 (转)

    //此方法得到的百分比后小数太多,不行double percent=Convert.ToDouble(2)/Convert.ToDouble(34); string result=(percent*1 ...

  2. C# 之屏幕找图

    引言 最近,由于工作上的某些原因,又要写类似于外挂的程序,又要用到一个屏幕找图功能,很多程序(eg:按键精灵)都提供了类似的功能,其实在这之前,我也查找过很多类似的C#方法,因为之前有一个试过没有用得 ...

  3. C# 生成XML空元素/空节点自动换行解决方案

    使用DataSet可以直接输出XML,并可指定是否带有Schema: ds.WriteXml(XMLFile,XmlWriteMode.WriteSchema ) 不过,这样将不会输出值为Null的字 ...

  4. YII 的基本CURL操作

    Order::model()->updateAll(array('merchant_id'=>'bbb'), "id in ('140868169311','1408690584 ...

  5. DWR的Reverse Ajax技术实现

    DWR的逆向ajax其实主要包括两种模式:主动模式和被动模式.其中主动模式包括Polling和Comet两种,被动模式只有Piggyback这一种. 所谓的Piggyback指的是如果后台有什么内容需 ...

  6. Mysql进阶(二)

    一.触发器 对某个表进行[增/删/改]操作的前后如果希望触发某个特定的行为时,可以使用触发器,触发器用于定制用户对表的行进行[增/删/改]前后的行为. 创建视图 # 插入前CREATE TRIGGER ...

  7. Eclipse 出现Some sites could not be found. See the error log for more detail.错误 解决方法

    Eclipse 出现Some sites could not be found.  See the error log for more detail.错误 解决方法 Some sites could ...

  8. docker入门指南(转载)

    原文: http://bg.biedalian.com/2014/11/20/docker-start.html 关于 docker 今天云平台的同事提到, 现在的运维就是恶性循环, 因为大家都在申请 ...

  9. gulp入坑系列(3)——创建多个gulp.task

    继续gulp的爬坑路,在准备get更多gulp的具体操作之前,先来明确一下在gulp中创建和使用多个task任务的情况. gulp所要做的操作都写在gulp.task()中,系统有一个默认的defau ...

  10. SharePoint 2013 App Remote Event Receivers

    当我们在使用App的时候,就会发现一些问题,比如那些网站部署.更新或者卸载了,我们很关心我们的App是否有人用,这就需要远程事件接收器了. 1.在我们的测试App的解决方案上选中鼠标,按F4弹出属性, ...