lsof -c apa
-c后面的指令可以不用写完
按文件类型查找: -type f
按名字查找: -name *.txt
[root@test05 ab]# find . -type f -name "*.txt"
[root@test05 ab]#
按大小来找 -size
# find / -size +30M
# 其中30前面的+-号代表,大于小于;
$free -m
total used free shared buffers cached
Mem: 48262 7913 40349 0 14 267
-/+ buffers/cache: 7631 40631
Swap: 2047 336 1711
# 上面的情况下我们总的内存有48262M,用掉了7913M(其中包括了buffers+cached)。
# 其中buffer+cache总共14+267=281M, 由于这种类型的内存是可以回收的,虽然我们用掉了7913M,但是实际上我们如果实在需要的话,这部分buffer/cache内存是可以放出来的。
# buffer: 作为buffer cache的内存,是块设备的读写缓冲区
# cache: 作为page cache的内存, 文件系统的cache
缓存(cache)是把读取过的数据保存起来,重新读取时若命中(找到需要的数据)就不要去读硬盘了,若没有命中就读硬盘。其中的数据会根据读取频率进行组织,把最频繁读取的内容放在最容易找到的位置,把不再读的内容不断往后排,直至从中删除。 ——-把频繁读取的数据cache起来
缓冲(buffers)是根据磁盘的读写设计的,把分散的写操作集中进行,减少磁盘碎片和硬盘的反复寻道,从而提高系统性能。linux有一个守护进程定期清空缓冲内容(即写如磁盘),也可以通过sync命令手动清空缓冲。 —–把分散写集中进行
[root@server test]# sync
[root@server test]# echo 3 > /proc/sys/vm/drop_caches
# To free pagecache, use 1
# to free dentries and inodes, use 2
# to free pagecache, dentries and inodes, use echo 3
The awk function split(s,a,sep) splits a string s into an awk array a using the delimiter sep.
awk ‘{pattern + action}’ {filenames}
root@pythonLang# echo `echo "<Hlz>value</Hlz>" | awk '{split($0, arr, "<|>"); print arr[3]}'`
value
root@pythonLang# date
Sat Jun 10 16:07:15 HKT 2017
root@pythonLang# echo `echo $(date) | awk '{split($0,a,":" ); for (i=1; i<=3; i++) print a[i]}'`
Sat Jun 10 16 07 16 HKT 2017
参数 -i/I
[root@test05 ab]# find . -type f -name "*.txt" | xargs -i cp {} /tmp/k/
#加-i 参数直接用 {}就能代替管道之前的标准输出的内容;
[root@test05 ab]#
[root@test05 ab]# find . -type f -name "*.txt" | xargs -I {} cp {} /tmp/n/
#加 -I 参数 需要事先指定替换字符
贪婪模式:匹配尽可能多的字符(默认执行);
懒惰模式:匹配尽可能少的字符;— 在原有的基础上加?即可;
代码/语法 | 说明 |
---|---|
*? | 重复任意次,但尽可能少重复 |
+? | 重复1次或更多次,但尽可能少重复 |
?? | 重复0次或1次,但尽可能少重复 |
{n,m}? | 重复n到m次,但尽可能少重复 |
{n,}? | 重复n次以上,但尽可能少重复 |