Linux学习七 磁盘空间管理和初步了解变量
知识点磁盘空间管理
lsblk命令 列出系统上的所有磁盘列表
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1000M 0 part /boot
NAME | MAJ | MIN | RM | SIZE | R0 | TYPE | MOUNTPOINT |
---|---|---|---|---|---|---|---|
装置名称 | 主要装置代码 | 次要装置代码 | 是否为可卸除装置(0、1) | 容量 | 是否为只读装置 | 是磁盘(disk)、分区槽(partition)、只读存储器(rom)、lvm | 挂载点 |
选项 参数 | 举例 | 说明 |
---|---|---|
-d | lsblk -d /dev/sda | 仅列出磁盘本身,并不会列出该磁盘的分区数据 |
-f | lsblk -f /dev/sda | 列出文件系统与装置的UUID(全局单一标识符) |
-i | lsblk -i /dev/sda | 使用ASCLL线段输出(不是很懂,区别好像就前面线条不一样) |
-m | lsblk -m /dev/sda | 同时输出该装置再/dev 底下的权限数据(rwx的数据) |
-p | lsblk -p /dev/sda | 列出完整文件名(就是文件名是绝对路径) |
-t | lsblk -t /dev/sda | 列出磁盘装置的详细数据,磁盘队列机制,预读写的数据量大小 |
parted命令 列出磁盘的分区表类型与分区信息
parted [装置] [ 指令 [参数] ]
功能 | 格式 | 举例 |
---|---|---|
新增分区 | mkpart [primary|logical|extended] [ext4|vfat | xfs] 开始 结束 | |
显示分区 | parted /dev/sdb2 print | |
删除分区 | rm [partition] | parted /dev/sdb rm 2 |
磁盘分区:gdisk/fdisk
- MBR分区表使用fdisk分区
- GPT分区表使用gdisk分区
磁盘格式化(建置文件系统 mkfs mkswap)
mkfs.xfs
选项 | 参数 | 说明 |
---|---|---|
-b | 512~4k | block容量 |
-d | agcount=xxx | xxx个储存群组(AG) |
agsize=xxx | 每个AG设定多大容量 | |
file | 格式化的是文件不是个装置(如虚拟磁盘) | |
size=xxx | data section的容量,就是设置的话就会留下容量,默认用完 | |
-f | 如果装置内已有文件系统,需要强制格式化 | |
-i | 与inode相关设定 | |
-L | Label name | 设置文件系统的标头名称 |
mkswap /dev/sdb2 #格式化为swap文件系统
swapon -s #查看swap空间组成员
swapon /dev/sdb2 #启用/dev/sdb2交换分区
swapoff /dev/sdb2 #停用
文件扩展swap空间
dd if=/dev/zero of=/opt/swap.db bs=1M count=2048
#dd命令字 if读取数据来源 of数据写到哪里 bs每次读取和写入数据大小为1M count为读取和写入的次数为2048次
mkswap /opt/swap.db #格式化为swap文件系统
swapon /opt/swap.db #启用swap.db
swapon -s #查看swap空间
Filename Type Size Used Priority
/dev/dm-1 partition 2097148 25940 -2
/opt/swap.db file 2097148 0 -3
swapoff /opt/swap.db #停用swap.db
变量
变量的设置和读取
- 变量与变量内容以一个等号来连接
- 等号两边不能直接接空格符
- 变量名称只能是英文字母、某些特殊字符、数字,但是开头不能是数字
- 可使用”或’来使变量内容结合空格
- 可以使用`指令`或$(指令) 来取得变量
- 若该变量为扩增变量时,可以用” 变 量 名 称 “ 或 变量名称“或 变量名称“或{变量}累加内容
- 若该变量需要在其他子程序中执行,需要export暴露为环境变量
- 取消变量的方法为:unset [变量名(不加$)]
- 读取变量的方法:echo $变量名
- ”“与’‘的区别 双引号仍然可以保有变量的内容,但单引号内仅能是一般字符,而不会有特殊符号
直白讲就是”“能套娃
[root@localhost ~]# name='cjh'
[root@localhost ~]# myname='my name is $name'
[root@localhost ~]# myname2="my name is $name"
[root@localhost ~]# echo $name;echo $myname;echo $myname2
cjh
my name is $name #myname变量定义的时候是用单引号,$name并不能转义
my name is cjh #myname2变量定义的时候是用双引号,$name转义成了cjh
- 没有变量提升的机制
[root@localhost ~]# myname3="my name is $sss"
[root@localhost ~]# sss='xxxx'
[root@localhost ~]# echo $myname3
my name is #sss定义在myname3之后 所以就为空了
[root@localhost ~]# source .bashrc
[root@localhost ~]# echo $name #.bashrc中已经设置了name变量
yu xian she ding de bian liang
[root@localhost ~]# name='hehe' #设置name变量
[root@localhost ~]# echo $name #name变量被修改了
hehe
[root@localhost ~]# unset name #释放
[root@localhost ~]# echo $name #name空了
-
env命令列出所有环境变量
-
set命令列出所有变量(含环境变量与自定义变量)
-
读入变量命令read
read -p "请输入名字:" -t 30 name #-p提示字符 -t 时间限制
请输入名字:zhangsan
[root@localhost ~]# echo $name
zhangsan
变量类型
- declare / typeset
declare/typeset命令
命令参数 | 说明 |
---|---|
-a | 将变量定义为数组(array)类型 |
-i | 将变量定义为整数数字(integer)类型 |
-x | 与export一样,就是将变量设置为环境变量 |
-r | 将变量设置为readonly类型,不能被修改内容,也不能unset |
-p | 列出变量类型 |
######################## #-i测试
[root@localhost ~]# sum=100+32
[root@localhost ~]# echo $sum #默认字符串类型
100+32
[root@localhost ~]# declare -i sum=100+23 #定义为整数数字类型
[root@localhost ~]# echo $sum
123
[root@localhost ~]# declare -i sum=100+0.2 #只能整数 所以报错了
bash: declare: 100+0.2: syntax error: invalid arithmetic operator (error token is ".2")
[root@localhost ~]# declare -i sum=1/3 #精度只能达到整数
[root@localhost ~]# echo $sum
0
[root@localhost ~]# declare -r sum #添加只读属性
[root@localhost ~]# declare -p sum #查看sum类型属性
declare -ir sum="0"
[root@localhost ~]# declare +r sum #因为是只读属性,无法修改
bash: declare: sum: readonly variable
[root@localhost ~]# declare -p sum
declare -ir sum="0"
[root@localhost ~]# declare -x sum #添加为环境变量
[root@localhost ~]# declare -p sum
declare -irx sum="0"
[root@localhost ~]# declare +x sum #通过+来取消属性,取消环境变量
[root@localhost ~]# declare -p sum
declare -ir sum="0"
################################# #数组测试
[root@localhost ~]# var[0]='xiaoming'
[root@localhost ~]# var[1]='xiaowang'
[root@localhost ~]# var[2]='xiaochen'
[root@localhost ~]# echo "$var[0],$var[1],$var[2]" #错误示范输出
xiaoming[0],xiaoming[1],xiaoming[2]
[root@localhost ~]# echo "${var[0]},${var[1]},${var[2]}" #正确示范输出
变量内容的删除、取代与替换
to be continue…