Linux(四)

sed介绍

Linux sed 命令是利用脚本来处理文本文件。
sed 可依照脚本的指令来处理、编辑文本文件。
Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序

sed命令

sed动作可以理解为操作:
a:新增,a的后面可以接字串,新增字符串会在目前的下一-行
c:取代,C的后面可以接字串,这些字串可以取代n1,n2之间的行
d:删除,因为是删除,所以d通常写在最后
i:插入,i的后面可以接字串,新增字串会在目前的上一行
p: 打印,将某个选择的数据显示出。 通常p会与参数 sed -n -起运行
s:替换,可以直接进行替换。通常这个s的动作可以搭配正则表示。例如
1,20s/old/new/g (是不是和vim的替换很像? )

sed简单命令

cat sed.test | sed -n '22222/p'  【在文件中查看包括22222的行】
sed -e '2a hello word' sed.test【在文件添加第三行,内容为hello】
cat -n sed.test | sed -e '2,3d' 【删除行,删除2到3行】
cat sed.test | sed '/22222/d' 【删除包括22222的行】
cat -n sed.test | sed '1,2c hahaha' 【将1-2行替换为hahaha】
sed 's\hello\haha\g'sed.test【将文本中hello换成haha】

awk介绍

什么是awk?
awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。它支持用户
自定义函数和动态正则表达式等功能,是linux/unix下的一 一个强大编程工具。
店awk命名来自于三位创始人Alfred Aho, Peter Weinberger,和Brian Kernighan的Family Name的首字符。

swk简单命令

以:分割,显示/etc/passwd的第一-列,即用户名列
cat /etc/passwd| awk -F : '{print $1}'
显示/etc/passwd的第 1列和第7列,用逗号分隔显示,所有行开始前添加
列名start1, start7, 最后一行添加,end1, end7
cat /etc/passwd | awk -F ':' 'BEGIN{print "start1,start7"}{print $1","$7}END {print "end1,end7"}'
匹配某段字符
cat /etc/passwd | awk -F : '$1 ~ /00/'"
显示/etc/passwd的前五行,显示每行的行号、列数,以及该行完整的内容
head -n5 /etc/passwd | awk -F : '{print NR " " NF " "$0 }'
累加前四行用户的uid
head -n4 /etc/passwd | awk -F : ((sum= sum+ 3)}:END{print sum}'

Linux x64 中,虚拟地址空间是 2^48 (256 TB)。为了管理这么大的地址空间,Linux 使用了级页表。 级页表包含了个级别的页表,每个页表的大小都是 512 个条目。每个条目的大小为 8 字节,因此一个页表的大小为 4 KB。因此,一个级页表的大小为 4 KB * 512 * 512 * 512 * 512 = 256 TB。 在级页表中,虚拟地址被划分为五个部分:PGD(Page Global Directory)、PUD(Page Upper Directory)、PMD(Page Middle Directory)、PTE(Page Table Entry)和偏移量。 - PGD:PGD 是最高级的页表,它包含了 512 个 PUD 条目。 - PUD:PUD 包含了 512 个 PMD 条目。 - PMD:PMD 包含了 512 个 PTE 条目。 - PTE:PTE 包含了物理页框号和一些标志。 - 偏移量:偏移量用于计算物理地址。 当 CPU 访问一个虚拟地址时,它首先使用 PGD 条目找到对应的 PUD 条目,然后使用 PUD 条目找到对应的 PMD 条目,依此类推。最后,CPU 使用 PTE 条目找到对应的物理页框号,并将虚拟地址中的偏移量添加到物理页框号中,得到物理地址。 Linux x64 中的页表是按需分配的。当进程第一次访问某个虚拟地址时,Linux 会分配一个物理页框,并将该页框映射到对应的虚拟地址。如果进程再次访问同一虚拟地址,则直接使用之前分配的物理页框。 这是 Linux x64 中页表的基本原理。理解页表的工作原理对于理解 Linux 内核的内存管理非常重要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值