摘要:
下面这个名单会因为 不同Unix的实现而发生变化,所以或许准确性有了水份。请注意子进程得到的是 这些东西的 拷贝,不是它们本身。由子进程自父进程继承到:①进程的资格(真实(real)/有效(effective)/已保存(saved)用户号(UIDs)和组号(GIDs))②环境(environment)③堆栈④内存⑤打开文件的描述符(注意对应的文件的位置由父子进程共享, 这会引起含糊情况)⑥执行时关闭(close-on-exec)标志(译者注:close-on-exec标志可通过fnctl()对文件描 述符设置,POSIX.1要求所有目录流都必须在exec函数调用时关闭。更详细说明, 参见《UN 阅读全文
摘要:
1、!$是一个特殊的环境变量,它代表了上一个命令的最后一个字符串。如:你可能会这样:可以改成:$mkdir mydir$mv !$ yourdir #$mv mydir yourdir$cd !$2、^old^new替换前一条命令里的部分字符串。场景:echo "wanderful",其实是想输出echo "wonderful"。只需要^a^o就行了,对很长的命令的错误拼写有很大的帮助。(陈皓注:也可以使用!!:gs/old/new)3、列出当前目录下最大的几个文件du -s * | sort -n | tail -n 34、date -d@123456 阅读全文
摘要:
Linux Shell中的延时函数在 linux shell脚本中经常需要做一些延时处理。所以经常要用到 sleep或usleep函数。下面来说一下 sleep和usleep的区别:sleep :默认以秒为单位。usleep :默认以微秒为单位。1s = 1000ms = 1000000ussleep不但可以用秒为单位,还可以指定延迟的单位,例如:sleep 1s表示延迟一秒sleep 1m表示延迟一分钟sleep 1h表示延迟一小时sleep 1d表示延迟一天原文:http://hi.baidu.com/fangqianshu/item/1128d317ed41c46d1009b53e 阅读全文
摘要:
VIRT:1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据,以及malloc、new分配的堆空间和分配的栈空间等;2、假如进程新申请10MB的内存,但实际只使用了1MB,那么它会增长10MB,而不是实际的1MB使用量。3、VIRT = SWAP + RESRES:1、进程当前使用的内存大小,包括使用中的malloc、new分配的堆空间和分配的栈空间,但不包括swap out量;2、包含其他进程的共享;3、如果申请10MB的内存,实际使用1MB,它只增长1MB,与VIRT相反;4、关于库占用内存的情况,它只统计加载的库文件所占内存大小。5、RES = CODE + DATASHR:1 阅读全文
摘要:
查看内存使用情况1.top“2 users”为当前登录到系统的用户,更确切的说是登录到用户的终端数--同一个用户同一时间对系统多个终端的连接将被视为多个用户连接到系统,这里的用户数也将表现为终端的数目;“load average”为当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数,一般的可以认为这个数值超过CPU数目时,CPU将比较吃力的负载当前系统所包含的进程;第五行(Swap)表示类别同第四行(Mem),但此处反映着交换分区(Swap)的使用情况。通常,交换分区(Swap)被频繁使用的情况,将被视作物理内存不足而造成的。2.freetotal:总计物理内存 阅读全文
摘要:
Swap基本原理众所周知,现代操作系统都实现了“虚拟内存”这一技术,不但在功能上突破了物理内存的限制,使程序可以操纵大于实际物理内存的空间,更重要的是,“虚拟内存”是隔离每个进程的安全保护网,使每个进程都不受其它程序的干扰。Swap空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。计算机用户会经常遇这种现象。例如,在使 阅读全文
摘要:
1、伪终端这个术语暗示对于一个应用程序而言,它看上去像一个终端,但实际上应用程序被欺骗了。从内核角度看,伪终端看起来像一个双向管道。而事实上Solaris的伪终端就是用STREAMS构建的。/dev/ptyAX -- 伪终端Pseudo Terminal的主设备/dev/ttyAx --伪终端的从设备/dev/pts/n -- 在Xwindows模式下第n个shell进程所使用的伪终端(伪终端的从设备)2、随着计算机技术的发展,出现了对一种特殊"终端设备"的需要,这个设备在逻辑上是终端设备,可是实际上却不是,所以称为"伪终端"(pseudo tty)。伪 阅读全文
摘要:
调试core文件当获得了core文件以后,就可以利用命令gdb进行查找,参数一是应用程序的名称,参数二是core文件。也可以用-c来指定core文件。如:gdb [paremeter] app [paremeter] /app.core然后输入bt(backtrace)或者where找到错误发生的位置和相应的堆栈信息。就可知道发生错误时的函数调用关系,然后可以使用up或者down查看上一条和下一条具体详细信息。这样便能对问题进行大概定位,然后看源代码,进行分析。此外,还可以用f堆栈号 打印该对堆栈进一步的信息;l(ist)查看源码,n(ext),s(step)进行查看。原文:http://ww 阅读全文
摘要:
expr命令一般用于整数值,但也可用于字符串。一般格式为:expr argument operator argument①用空格隔开每个项;②用\(反斜杠)放在shell特殊字符前面;③对包含空格和其他特殊字符的字符串要用引号括起来1、用于数字$expr 10 + 10$expr 20 \* 22、用于字符串(1)、计算字串长度> expr length "this is a test" //output : 14(2)、抓取字串> expr substr "this is a test" 3 5 //output : is is(3)、抓取 阅读全文
摘要:
time简介time命令 用于 打印出一条命令或一个程序的执行时间time命令以秒为单位将一条命令执行期间所用的时间、系统时间和time命令的执行时间打印在标准错误中。用法:time [ -p ] Command [ Argument ... ]举例:想知道 列举home文件夹这一命令 花费的时间:time ls /home想知道 将文件复制到某一文件夹 花费的时间:time cp /home/***/h /home/***/Documents想知道 一个脚本运行的时间:time ./helloWorld.shtime命令结果有三行组成:real、user和sys。我们这里用的都是real值, 阅读全文
摘要:
awk数组实例awk的数组,一种关联数组(Associative Arrays),下标可以是数字和字符串。因无需对数组名和元素提前声明,也无需指定元素个数 ,所以awk的数组使用非常灵活。首先介绍下几个awk数组相关的知识点:<1>建立数组array[index] = value:数组名array,下标index以及相应的值value。<2>读取数组值{ for (item in array) print array[item]} #输出的顺序是随机的{for(i=1;i<=len;i++) print array[i]} # Len是数组的长度<3> 阅读全文
摘要:
seq用于产生从某个数到另外一个数之间的所有整数例一:# seq 1 10结果是1 2 3 4 5 6 7 8 9 10例二:#!/bin/bashfor i in `seq 1 10`;doecho $i;done或者用for i in $(seq 1 10)例seq -s " " 1 10seq -f %05g 1 10seq -w 1 10for i in $(seq 1 20); do touch test$i;donefor i in{1..20}; do touch test$i;donetouch test$(seq 1 20)原文:http://bbs.li 阅读全文