当前位置: 首页 > news >正文

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 :后面列出分割槽,可显示该分割槽的读写总量统计表
 
 

转载于:https://www.cnblogs.com/fangshenghui/p/3458630.html

相关文章:

  • mysql 索引使用教程
  • C#操作MongoDB
  • 分页器(自定制)
  • [转]Linux下防止进程使用swap及防止OOM机制导致进程被kill掉
  • springMVC集成activiti-explorer5.22(一)
  • freebsd为网卡设置别名
  • KVM命令集管理虚拟机
  • ORA-38301:can not perform DDL/DML Over Object in Recycle Bin 11.2.0.4
  • 实验:CentOS下构建私有CA
  • startActivityForResult()的用法(超好用啊)
  • [MongoDB]------windos下的安装部署与基础使用
  • JS小技巧
  • 【研究任务】热迁移方式——pre-copy、post-copy和x-multifd
  • 创建用于自定义SharePoint解决方案部署的Visual Studio项目
  • JavaScript中的对象个人分享
  • CSS实用技巧干货
  • Hibernate【inverse和cascade属性】知识要点
  • HTTP中GET与POST的区别 99%的错误认识
  • PHP的Ev教程三(Periodic watcher)
  • uni-app项目数字滚动
  • vue.js框架原理浅析
  • 分类模型——Logistics Regression
  • 关于extract.autodesk.io的一些说明
  • 基于webpack 的 vue 多页架构
  • 容器服务kubernetes弹性伸缩高级用法
  • 提醒我喝水chrome插件开发指南
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • 通过调用文摘列表API获取文摘
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​批处理文件中的errorlevel用法
  • #DBA杂记1
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • (AngularJS)Angular 控制器之间通信初探
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (分享)一个图片添加水印的小demo的页面,可自定义样式
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (转)memcache、redis缓存
  • (转)Sql Server 保留几位小数的两种做法
  • (转)Sublime Text3配置Lua运行环境
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .Net Memory Profiler的使用举例
  • .NET MVC第三章、三种传值方式
  • .NET命令行(CLI)常用命令
  • @Autowired 与@Resource的区别
  • [ 云计算 | AWS 实践 ] Java 如何重命名 Amazon S3 中的文件和文件夹
  • [AHOI2009]中国象棋 DP,递推,组合数
  • [AutoSAR 存储] 汽车智能座舱的存储需求
  • [BJDCTF 2020]easy_md5