虚拟内存和物理内存(虚拟地址物理地址)
物理内存是实际的内存空间,只有4g,所有进程共享的
虚拟内存空间是每个进程独有的内存空间(4G),各个进程的内存空间具有类似的结构(内核空间,栈,堆,代码段),每次访问虚拟内存空间的某个地址都需要把虚拟地址转换为物理地址,需要借助页表,页表分两个部分,第一部分记录此页是否存在,第二部分记录对应的物理页,当访问的时候发现该页不存在就引发缺页中断,然后再加载到内存,如果内存已经满了,就进行页面置换(常见的页面置换算法最优置换(最近的将来不会被访问到的淘汰),FIFO,LRU(最近最久未使用的淘汰掉))
可以把同一块物理内存映射到不同进程的不同的虚拟空间就是共享内存的实现。
正则表达式:
[] | []里面的某一个,或者的意思 |
^ | 放在[]里面表示非,在外面表示一行打头的意思 |
- | 连续 |
$ | 行尾 |
. | 任意一个字符 |
* | 零个或者多个 |
{n,m} | 连续n到m个前一个字符 |
扩展正则表达式
+ | 一个或多个,至少一个 |
? | 一个或0个 |
| | 或者的意思 |
sed
sed 'n1,n2[a,d,c] [字符串]' 将n1到n2行,a(增加某个字符串) d(删除) c(替换) sed -n 'n1,n2p'(打印,截取)
sed 's/word1/word2/g' 取代word1为word2
sed -i ’ ‘ 文件名 直接修改文件
awk 数据处理工具,可以处理字段,一行一行的处理,以行为处理的单位
awk '条件{操作} 条件{操作}' awk '{print $1}'
$0当前行 $1第一个字段值
NF 字段数 NR 第几行 FS 分割符