笔记
1、作业
1、挂载硬盘的步骤?
挂载硬盘 --> 分区 ---> 制作文件系统 ---> 挂载
2、动态扩容硬盘的步骤
制作PV -> 制作VG -> 制作LV -> 制作文件系统 -> 挂载 -> 制作PV -> 扩容VG -> 扩容LV -> 更新硬盘空间
3、为什么不建议缩容
可能丢失部分数据
4、实时计算内存空闲百分比
[root@localhost ~]# while true; do sleep 1; clear; FREE=`free | awk 'NR==2{print $4}'`; TOTAL=`free | awk 'NR==2{print $2}'`; NUM=`echo " $FREE * 100 / $TOTAL" | bc`; echo $NUM%; done
2、复习
1、MBR
1、分区2TB以下的硬盘
2、MBR有4个主分区
fdisk [硬盘路径]
n : 创建分区
p : 查看分区
d : 删除分区
w :写入分区
q : 退出
m : 查看帮助
2、GPT
1、分区2TB以上的硬盘
2、有128个分区
gdisk [硬盘路径]
?:查看帮助
n : 创建分区
p : 查看分区
d : 删除分区
w :写入分区
q : 退出
3、制作文件系统
mkfs.xfs [分区路径]
4、修复文件系统
5、备份与恢复
xfsdump -L [备注] -M [媒体备注] -l [等级] -f [备份路径] [备份源路径]
xfsrestore -f [备份路径] 数据恢复的路径
6、LVM动态扩容
用多少,给多少?
3、shell基础
1、变量
在程序运行过程中,值不断变化的标识符
定于:先定义,后引用。
$ : 取某个变量中的值
知识储备:read -p '解释' [变量]
例1:编写一个脚本,实现登录功能?
#!/bin/bash
read -p '请输入用户名:' username
read -p '请输入密码:' password
if [[ $username == "admin" && $password == "123" ]];then
echo "登录成功"
fi
知识储备: ping
-c : 探测几次
-t : 超时时间
ping命令探测成功,$?返回0 ;探测失败,$?返回非0
例2:给定一个IP,写一个脚本测试IP是否正常使用
#!/bin/bash
IP="192.168.230.10"
ping -c 1 -t 1 $IP
if [ $? -eq 0 ];then
echo "可以正常访问"
else
echo "不可以"
fi
2、单引号与双引号之间的区别
单引号=》强引⽤
双引号=》弱引⽤
------------------------------------------------------------------------
👇符号区别:👇
'' :单引号 强引用,无论引号中的字符串为什么,都原封不动的显示
"": 双引号 弱引用,其中的变量会做变量替换,相当于变量值。
`` : 反引号 实现命令替换,注意是针对命令,相当于命令结果。
$(): 实现命令替换,与反引号作用相同,相当于命令结果。
------------------------------------------------------------------------
例1:定义一个变量num=123, 用单双引号分别打印,看结果
[root@localhost ~]# num=123
[root@localhost ~]# echo $num
123
[root@localhost ~]# echo "$num" # 弱引用,识别$
123
[root@localhost ~]# echo '$num' # 强引用,将$识别为普通字符
$num
结论:双引号可以解析变量,但是单引号则不行。
例2:定义一个变量num,其值等价于100 * 10的结果,并打印
[root@localhost ~]# num=`echo "100 * 10" | bc`
[root@localhost ~]# echo $num
1000
[root@localhost ~]# num=$(echo "100 * 10" | bc)
[root@localhost ~]# echo $num
1000
结论:反引号和$() 将括号里面的命令的运行结果放在括号的地方。
3、变量作⽤域
环境变量: 在当前shell及⼦shell⽣效!
⾃定义变量: 仅在当前shell⽣效!
set 查看所有变量(包括⾃定变量和环境变量)
env 查看环境变量
系统环境变量配置⽂件:(系统定义的)
1、/etc/profile
2、/etc/bashrc
3、~/.bashrc
4、~/.bash_profile
4、元字符
例1:实时计算内存空闲百分比,要求保留2位小数
[root@localhost ~]# while true; do sleep 1; clear; FREE=`free | awk 'NR==2{print $4}'`; TOTAL=`free | awk 'NR==2{print $2}'`; NUM=`echo "scale=2;$FREE * 100 / $TOTAL" | bc`; echo $NUM%; done
; : 前面执行无论成功与否,后面都执行
&& : 前面执行成功之后,后面才执行
|| :前面执行失败之后,后面才执行
习题1:创建1到100个txt文件
touch {1..100}.txt
习题2:判断80端口是否被占用
[root@localhost ~]# netstat -nutlp | grep -E '\<80\>'
[root@localhost ~]# netstat -nutlp | awk 'NR>2{print $4}'| awk -F: '{print $NF}' | sort |uniq