LINUX入门:Linux系统监控命令和软件安装

LINUX入门:Linux系统监控命令和软件安装,第1张

概述介绍《LINUX入门:Linux系统监控命令和软件安装》开发教程,希望对您有用。

《liNUX入门:linux系统监控命令和软件安装》要点:
本文介绍了liNUX入门:linux系统监控命令和软件安装,希望对您有用。如果有疑问,可以联系我们。

linux监测命令的运行时间 time command $ time sleep 5real    0m5.003s # 程序开始至结束的时间,包括其它进程占用的时间片和IO时间user    0m0.001s # 进程真正执行占用cpu的时间sys    0m0.002s    # 进程在内核中调用所消耗的cpu时间 user+sys是进程实际的cpu时间.如果多线程执行,这个时间可能大于Real.如果IO是瓶颈,则real会大于user+sys (单线程). 查看正在运行的命令和其资源使用 top

统计信息区第一行:任务队列信息,与uptime命令执行结果相同17:32:34:系统当前时间up 3 days,8:04:主机已运行时间5 users:用户连接数(不是用户数,who命令)load average: 0.09,0.12,0.19:系统平均负载,统计最近1,5,15分钟的系统平均负载补充:uptime -V可查询版本 第二行:进程信息Tasks: 287 total:进程总数2 running:正在运行的进程数285 sleePing:睡眠的进程数0 stopped:停止的进程数0 zombIE:僵尸进程数第三行:cpu信息(当有多个cpu时,这些内容可能会超过两行)1.5 us:用户空间所占cpu百分比0.9 sy:内核空间占用cpu百分比0.0 ni:用户进程空间内改变过优先级的进程占用cpu百分比97.5 ID:空闲cpu百分比0.2 wa:等待输入输出的cpu时间百分比0.0 hi:硬件cpu中断占用百分比0.0 si:软中断占用百分比0.0 st:虚拟机占用百分比第四行:内存信息(与第五行的信息类似与free命令)8053444 total:物理内存总量7779224 used:已使用的内存总量274220 free:空闲的内存总量(free+used=total)359212 buffers:用作内核缓存的内存量

第五行:swap信息

8265724 total:交换分区总量33840 used:已使用的交换分区总量8231884 free:空闲交换区总量4358088 cached Mem:缓冲的交换区总量,内存中的内容被换出到交换区,然后又被换入到内存,但是使用过的交换区没有被覆盖,交换区的这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入.进程信息区PID:进程IDPPID:父进程IDRUSER:Real user name(看了好多,都是这样写,也不知道和user有什么区别,欢迎补充此处)UID:进程所有者的IDUSER:进程所有者的用户名GROUP:进程所有者的组名TTY:启动进程的终端名.不是从终端启动的进程则显示为?PR:优先级NI:nice值.负值表示高优先级,正值表示低优先级P:最后使用的cpu,仅在多cpu环境下有意义%cpu:上次更新到现在的cpu时间占用百分比TIME:进程使用的cpu时间总计,单位秒TIME+:进程所使用的cpu时间总计,单位1/100秒%MEM:进程使用的物理内存百分比VIRT:进程使用的虚拟内存总量,单位kb.VIRT=SWAP+RESSWAP:进程使用的虚拟内存中被被换出的大小RES:进程使用的、未被换出的物理内存的大小CODE:可执行代码占用的物理内存大小DATA:可执行代码以外的部分(数据段+栈)占用的物理内存大小SHR:共享内存大小nFLT:页面错误次数nDRT:最后一次写入到现在,被修改过的页面数S:进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)COMMAND:命令名/行WCHAN:若该进程在睡眠,则显示睡眠中的系统函数名Flags:任务标志默认情况下,只显示比较重要的列 文件系统和磁盘信息监测查看系统硬盘大小和分配@H_403_204@df -h

du -sh *

软件安装不同于windows,linux下软件安装的方式比较多样,有些也比较复杂.每种安装方式都有自己的优点和局限,也都有可能遇到问题.在我们理解了原理之后,借助谷歌,可以更好地帮助解决问题.系统包管理器安装软件安装最方便的、一般也不容易出问题的是利用系统自带的包管理工具,可以解决大部分的依赖问题.但也有一些不足,主要3点:需要根用户的权限.如果系统版本老,安装的软件版本也会比较老.使用新版本有时又会发生冲突.生物信息学中不少软件不在系统的安装源里面.解决这些问题,就需要自己去软件官网查找最新的分发包,又有两种可能,一种是分发包直接就是编译好的软件,下载下来设置下可执行属性并放入环境变量就可以运行了,如blast或bowtIE这样的工具. 另一种则是需要从源码编译安装,下面主要讲解下这个. 源码编译安装源码编译经典的三部曲configure,make,make install.如果不出问题,一步步执行下来就安装好了.但出了问题,就不是比较容易解决的.如果知道这背后的机制,对解决问题会有很大帮助的. configure是检查系统的库文件、类文件、依赖软件是否存在以及它们的版本是否满足需求,并根据实际检测结果生成Makefile的工具.一般是一堆bash命令的组合.通常也需要在这一步配置一些参数.最常用的就是指定软件的安装目录--prefix=/home/ct/soft/specific_name. make则是具体的编译过程.编译的语句都写在了Makefile中.make默认编译Makefile中出现的第一个target,也可以指定target编译,并根据Makefile的设置方式依次编译所有依赖的东西. Makefile通常的格式和布局如下# 假设当前文件夹下Makefile文件中内容如下 # first: target名字# echo "compile first": target对应的命令,任何linux命令都可以$ cat Makefilefirst:    echo "compile first"all: first second    echo "compile all"second:    echo "compile second"  # 直接运行make,会make第一个出现的target$ makeecho "compile first"compile first# make first与直接make相同,因为它出现在第一个 $ make firstecho "compile first"compile first# all依赖于first,second,因此make all会先执行make first,make second# 然后才是自己所代表的命令 @H_627_403@$ make allecho "compile first"compile firstecho "compile second"compile secondecho "compile all"compile all有些软件的安装,在执行完make后就获得了可执行程序,可以跳过make install的过程,只需要放入环境变量就可以运行了.但部分软件还需要一些依赖关系,所以需要执行make install才算完成了完整的安装.make install通常是拷贝make编译出来的可执行文件或者依赖的库文件(如果有的话)到configure时的--prefix指定的目录下.安装好的软件放入环境变量,就可以快乐的运行了.两点注意:从源码编译最难解决的问题就是依赖的库文件、头文件、依赖软件的缺失或版本不匹配,没有统一的解决办法,原则就是缺啥补啥.后面提到的Anaconda,会对库文件的依赖提供一个简便的解决办法.三部曲每一步的执行,屏幕上都会输出比较多的信息,一定仔细看最后有没有ERROR类的字样,对判断软件有无安装成功和下一步要怎么解决问题会很有帮助.linux包的安装通用方式主要是这些,后面还会提到两种虚拟安装方式,都是为了简化安装而提出的. Python包的安装在没有Anaconda(或其前身canopy)出现之前,Python包以其管理混乱、安装困难著称.有了Anaconda后,不只python包的安装简单了,其它软件的安装也都方便了 (详见后面Anaconda的两个福利).首先下载Anaconda的安装包 https://www.continuum.io/downloads.Anaconda的安装包做的很人性化,一个bash脚本,只要运行bash Anacond*x86_64.sh,然后依照提示 *** 作就可以了.安装好后,设置或刷新下环境变量就可以使用了.此后再安装python的包只需要执行pip install pakcage_name或conda install pakckage_name就可以了.这里唯一需要注意的就是确认使用的python或pip确实是Anaconda安装的python或pip.which python查看使用的python命令.如果使用的还是系统默认的python,则需要检查下环境变量的设置.Anaconda的两个福利1、头文件和库文件库这是Anaconda安装后的目录结构
bin   envs  Examples  imports  lib    liCENSE.txt  pkgs     share  varconda-Meta  etc   gcc include  lib64  mkspecsplugins  ssl@H_748_502@其中lib目录下,一部分是依赖的动态链接库,.so文件;这也是在源码编译时最常见的拦路虎.通常,只需要把这个目录放入环境变量LD_liBRARY_PATH里面比如export LD_libarY_PATH=${LD_libarY_PATH}:anaconda_path/lib就可以解决问题.
cairo                    libitm.a              libQtScript.so.4cmake                    libitm.la             libQtScript.so.4.8engines                  libitm.so             libQtScript.so.4.8.7gcc                      libitm.so.1           libQtScriptTools.lagcj-4.8.5-14             libitm.so.1.0.0       libQtScriptTools.prlglib-2.0                 libitm.spec           libQtScriptTools.solibargtable2.a           libjpeg.a             libQtScriptTools.so.4libargtable2.la          libjpeg.la            libQtScriptTools.so.4.8libargtable2.so          libjpeg.so            libQtScriptTools.so.4.8.7libargtable2.so.0        libjpeg.so.8          libQtsql.lalibargtable2.so.0.1.8    libjpeg.so.8.4.0      libQtsql.prllibasan.a                libmkl_avx2.so        libQtsql.solibasan.la               libmkl_avx512_mic.so  libQtsql.so.4libasan_preinit.o        libmkl_avx512.so      libQtsql.so.4.8libasan.so               libmkl_avx.so         libQtsql.so.4.8.7@H_748_502@2、biocondabioconda提供了一个虚拟环境,方便软件的编译安装. R包的安装需要注意的也是依赖的软件或库文件的版本,同样的Anaconda提供的lib库也可以直接拿来用.

本文永久更新链接地址

学习更多liNUX教程,请查看站内专栏,如果有liNUX疑问,可以加QQ交流《liNUX入门:linux系统监控命令和软件安装》。

总结

以上是内存溢出为你收集整理的LINUX入门:Linux系统监控命令和软件安装全部内容,希望文章能够帮你解决LINUX入门:Linux系统监控命令和软件安装所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1042119.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存