• linux 程序管理


    在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 80  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 :后面列出分割槽,可显示该分割槽的读写总量统计表
     
     
  • 相关阅读:
    P2043 质因子分解
    CODE[VS] 3164 质因数分解
    借过
    CODE[VS] 1165 字符串的展开 || P1098 字符串的展开
    CODE[VS] 1144 守望者的逃离 || P1095 守望者的逃离
    CODE[VS] 2914 吹空调
    AC日记
    AC日记
    山科日记—回文
    山科日记—编写函数myFloor和myCeil(编程题)
  • 原文地址:https://www.cnblogs.com/fangshenghui/p/3458630.html
Copyright © 2020-2023  润新知