p32


block的大小:1024、2048、4096三种类型。
QQ截图20220219220433.png

QQ截图20220219220643.png

QQ截图20220219220802.png

p33

交换分区

虚拟地址/线性地址:假设一台计算机有4G内存,去掉内核运行内存还剩3G留个软件使用,这些软件默认都会有3g的内存可用。但实际上映射到物理地址上的内存要小于3g,因此实际的内存可用被划分多个空间,同时供不同的软件使用。此时的内存被称为 虚拟地址/线性地址。
物理地址:虚拟地址映射的对象称为物理地址

交换空间(swap 分区必须是单独的分区):交换空间的存在允许内存的过载使用。物理地址会将长时间不用的数据暂存到交换空间中,此时就空出了空间供应其他的软件使用。

page out 【内存数据放大磁盘中】对应swap in; page in 对应 swap out

QQ截图20220221213321.png

查看物理内存和交换内存命令
free -m
QQ截图20220221214225.png

交换分区不足时,可以自己通过fdisk增加交换分区。【主要要调整分区类型为交换分区类型即82】

创建交换分区:
mkswap /dev/sda3

分区创建后需要挂载才可以使用,交换分区挂载命令比较特殊
swapon【启用交换分区】
-a:启用所有的定义在/etc/fstab文件中的交换设备
swapoff【关闭交换分区】

回环设备【当没有剩余分区来创建交换分区时,且系统有一个分区的空间又空着,此时可以用软件模拟并创建交换分区】
loopback:使用软件模拟实现硬件

dd命令:是一个复制命令,命令结果和cp相同,但过程不同。【优点在于可以只复制数据的一部分】
if= :指定起始来源
of= :指定存储目标
bs= :指定复制多少个zijie
count= :指定复制多少个bs
seek= :创建数据文件时,跳过的空间大小
dd if=/dev/sda of=/mnt/usb/mdr.back bs=512 count=1 【备份MDR
dd if=/mnt/usb/mdr.back of=/dev/sda bs=512 count=1 【MDR拷贝回去】

QQ截图20220221220251.png

创建一个文件作为临时的交换分区使用:
QQ截图20220221221132.png
QQ截图20220221221607.png

mount命令,可以挂在iso镜像:

QQ截图20220221222247.png

文件系统的配置文件/etc/fstab
OS在初始化时,会自动挂在此文件中定义的的每个文件系统
要挂在的设备 挂载点 文件系统类型 挂在选项 转储频率【没多少天做一次文件备份,0不备份,1每隔一天备份】 文件系统检测次序【只有根为1】

QQ截图20220221223253.png

fuser :验证进程正在使用的文件或套接字文件
-v 查看某文件上正在运行的进程
-k
-m
fuser -km MOUNT_POINT :终止正在访问此挂载点的所有进程

p34linu压缩及归档

QQ截图20220223204842.png

gzip:.gz
gzip file 压缩完成后会删除源文件
-d:相当于gunzip
-9 :指定压缩9倍
gunzip file 解压后会删除源文件

bzip2:.bz2 有着更大的压缩比
bzip2 file 压缩文件后会删除源文件
-d :相当于bunzip2
-k:压缩后不删除源文件
-# :1-9,默认是6

xz:.xz
xz file 压缩文件
-d:相当于unxz
-k
-#:1-9
gzip、bzip2、xz只能压缩单个文件,不可压缩目录

archive:归档,归档不会压缩文件

zip:即归档又压缩

tar:归档工具,.tar
-c:创建归档文件
-f:file.tar 做错的归档文件
-x:展开归档
—xattrs:归档时,保留文件的扩展属性信息
-t:不展开归档,直接查看归档了哪些文件

-zcf:归档并调用gzip压缩
-zxf:调用gzip解压

-jcf:归档调用bzip2压缩
-jxf:解压缩

-jtf:不展开归档,直接查看归档了哪些文件

cpio:归档工具

read命令实现交互
-p 显示提示语句
-t 超过多长时间不输入就关闭输入
QQ截图20220223212401.png

脚本编程:
顺序结构:
选择结构:if、case
循环结构:for、while、until

while循环适用于循环次数位置的场景,但一定要有退出条件
语法:
while connmand;do
statement
……
done

计算100以内的所有正整数和

  1. #/bin/bash
  2. declare i=1
  3. declare sum=0
  4. while [ i -et 100 ];do
  5. let sum=${sum}+${i}
  6. let i=${i}+1
  7. #let sum+=${i}
  8. #let i++
  9. done
  10. echo "SUM IS ${sum}"

输入quit退出循环否则将小写字符串替换成大写:

  1. #/bin/bash
  2. read -p "input string:" STRING
  3. while [ ${STRING} != quit ];do
  4. echo ${STRING} | tr "a-z" "A-Z"
  5. read -p "input string:" STRING #一定要加这句退出条件
  6. done
  7. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 不知道为什么加了-a不行
  8. #/bin/bash
  9. read -p "input string:" STRING
  10. while [ ${STRING} != quit -a QUIT ];do
  11. echo ${STRING} | tr "a-z" "A-Z"
  12. read -p "input string:" STRING #一定要加这句退出条件
  13. done

每隔5s执行这个脚本,直到hadoop用户登录则退出
QQ截图20220223221817.png