Linux常用命令混淆点记录
ls命令单位问题
ls命令的默认单位为字节。
若使用ls时需要指定单位显示的时候,需要添加参数-h或–block-size进行操作。具体操作方法如下:
|
|
makefile中函数的用法与变量类似,变量的用法是在变量前面加上$,函数的用法一样,也是使用$开头,$之后加一个括号,括号中的第一个参数是函数名,后面紧跟此函数需要的参数,用逗号分隔。下面介绍几个常用的函数。
wildcard的中文意思是通配符,它的功能类似于正则表达式,用于展开一列所有符合其参数描述的文件名,文件之间用空格分割。
实例:
|
|
此时SOURCE的值为所有的以.cpp为后缀的文件集合,以空格隔开。
其功能是一个匹配替换的函数(pattern substitute)。
实例:
TARGET表示与SOURCE中同名的目标文件.
上述几个变量的含义:
实例:
其中$@标识all, $<表示library.cpp ,$^表示library.cpp main.cpp
参考:http://blog.he96.com/2011/01/linux-timewhat-do-real-user-and-sys.html
我们常用linux中的time命令计算某个程序的运行耗时,用户态CPU耗时,系统态COU耗时。
例如:
现在我们探讨一下上述三个时间分别代表的含义:
然后我们讲一下用户态和核心态:
区分内核态和用户态的作用:隔离保护,使得系统更稳定。
使用这三个时间我们可以计算当前程序CPU的使用率:
CPU Usage = (user + sys) / real_time
linux内核提供了一种通过/proc文件系统来在运行时访问内核内部数据结构,改变内核设置的机制,各种硬件平台上的linux系统的/proc文件系统的基本概念都是相同的。
/proc文件系统是一种内核和内核模块用来向进程发送信息的机制。这个伪文件系统可以和内核内部的数据结构进行交互,获取实时的进程信息。注意,/proc文件系统是存储与内存而不是硬盘,/proc虚拟文件系统实质是以文件系统的形式访问内核数据的接口。
linux系统中/proc/meminfo这个文件用来记录了系统内存使用的详细情况。其中top,free命令中的数据是通过这个文件中的信息计算并按照特定的格式进行显示。
/proc/meminfo内容详解:
详解:
http://man.linuxde.net/free
目前我们希望实时获取系统中内存的使用情况,实际可以挪用的内存数为free+cache+buffer,实际使用的内存数为used-cache-buffer(total-free-cache-buffer),
/proc文件系统是一个伪文件系统,它存在于内存中,不占用外存空间。它以文件系统的方式为内核与进程提供通信接口。用户和应用程序可以通过/proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程是动态改变的,所以用户或应用程序读取/proc目录中的文件的时,/proc文件系统是动态从系统内核读出所需信息并提交的。
在linux或Ubuntu系统中,/proc/stat文件记录了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累计到当前的值。我们可以通过一个较小的时间段的CPU利用率值来估算某一个时刻的CPU利用率。首先我们先来查看一下/proc/stat中的内容:
上面的信息中前八个是比较重要的。
总的CPU时间为:total = user+nice+system+idle+iowait+irq+softrq
我们使用距离当前时刻较小的间隔的时间段的CPU使用率近似当前时刻的CPU使用率。
在linux多任务环境的系统中,系统是根据进程的优先级(priority)给进程进行分配资源。优先级越高的进程越有优先执行的权利。配置进程优先权碎玉linux很有用,可以大大改善系统的性能。还可以把指定的进程运行在指定的cpu上。
在linux中使用ps 的-l参数可以对进程的优先权信息进行查看:
从上面可以看出,上表中打印出一些有用的信息:
注意:进程的nice值不是进程的优先级,但是会影响进程优先级的变化。
1.nice的作用是启动时设置nice的值
-n参数用于指定nice值
2.renice的作用是修改已经存在的进程的nice值
上述的意思是将PID为10000的nice值置为-5,-p参数用于指定PID。
author.bio
Tencent