磁盘管理
查看交换空间
命令:free
作用:查看物理内存和交换空间的使用情况。
备注:默认是以字节显示。
free -m
以兆显示
buffers:缓冲区可以近似认为是存放元数据。
cached:缓存可以近似是认为存放数据。
-/+ buffers/cached: 对于used的来讲减去buffers和cached后只使用了多少。
对于used的来讲加上buffers和cached后只剩余了多少。
创建交换分区
命令:mkswap
格式:mkswap /dev/sdb2
操作过程:fdisk /dev/sdb
回车后执行操作:n-->p-->L-->t(调整分区的类型为82)-->p-->w
备注:为磁盘指定文件系统类型。
-->格式化swap交换分区,开启交换空间。
附加说明:如果磁盘没有剩余空间,但是有分区中还剩余很多空间,那么如何应急呢?
解决方案:
创建回环设备:loopback
作用:使用软件来模拟实现硬件。
命令:dd
说明:dd和cp都是复制,不同之处dd除了可以复制文件和目录之外还能复制片段。
格式:dd if=数据来源 of=数据存储目标 bs=一次复制多大单元(单位:字节) count=一次复制多少个这样的单元
备注: if=input file
of=output file
bs=block size,一次复制多大单位,单位:字节
count:一共复制多少个这样的字节
seek= #:创建数据时,跳过的空间大小
例1:
-->使用造0器在/var/swapfile1文件中写入3*1M信息,位置在1023字节之后
-->使用ls(文件的大小)和du(查看文件所占空间的大小)两种方式进行查询
例2:
-->将文件做成交换空间
备注:swapon有一个参数-a,启用所有定义在/etc/fstab文件下的交换空间设备
引例1:dd可以备份和还原硬盘中的MBR(主引导记录)
引例2:cat命令可以创建镜像文件
mount挂载镜像文件
参数:-o loop:挂载本地回环设备(非光盘上的镜像,就是镜像包。挂载光盘上的镜像直接挂载光盘就好)
/etc/fstab配置文件的作用
以往在mount命令挂载之后,重启,再自动挂载的过程中,原来挂载的信息就不能使用了,但是使用df -h(用于查看挂载磁盘的相关信息)还是能看到很多设备被挂载,这是为什么?
文件系统的配置文件/etc/fstab
作用:所有卸载这个表中的文件系统在开机时,系统的初始化进程会自动分析这个表,并将写在这个表中的每一个设备进行挂载。
配置文件格式分析
要挂载的设备 挂载点 文件系统 挂载选项 转储频率
文件系统检测次序(只有根为1,开机先检查。其他可以同是为2,0表示不检查)
(多久对此文件系统进行一次完全备份,0表示不备份,1表示每天,2表示隔一天)。
/dev/mapper/centos-root / xfs defaults 0 0
mount -a挂载在/etc/fstab文件中定义的所有文件系统,如果挂载有略过,没有挂载的挂载
例1:
-->在/etc/fstab文件中添加新的挂载项(首先格式化sdb1)
-->重启查看挂在信息
备注:显示已经挂载!
有这么一种情况,当你挂载上就是为了做实验,若是你不想用了要卸载,但另一个终端在使用不能卸载一直显示busy,怎么办?
命令:fuser
作用:验证进程正在使用某个文件或套接字
参数: -v:查看某文件上运行的进程
-k:杀死访问文件进程
-m:针对挂载点
例1:
-->创建一个普通用户,在另一个用户中对挂载点进行操作(实验环境)
-->查看挂载文件上运行的进程,取消挂载进行尝试,针对挂载点杀死访问文件进程
-->取消挂载就好!
练习脚本
用交互的方式显示硬盘,内存和交换分区的使用情况。
方法:写相应的脚本
#!/bin/bash
-->显示提示信息
cat <<EOF
d|D) show disk usages.
m|M) show memory usages.
s|S ) show swap usages.
*) quit.
EOF
-->设置提示信息和相关的变量
read -p ”your choice:” CHOICE
-->设置控制变量输出的因式
while [ $CHOICE != ’quit’ ];do
case $CHOICE in
d | D)
echo”Disk usages:”
df -Ph;;
m| M)
echo”memory usages:”
free -m |grep”Mem”;;
s | S)
echo”swap usages:”
free -m|grep “Swap”;;
*)
echo”Unknown...”;;
esac
read -p ”Again,your choice:”CHOICE
done
颜色表示方法
echo -e “\033[1;47;35mChen\033[0m,Yuexin”
解释: \033[:表示开头
\033[0m:表示结尾
1;47;35m:分别表示文本样式(1.加粗、4.下划线、5.闪烁、7.前景背景互换);背景颜色4X;字体色3X,其中X的取值范围为1-7
总结:shell脚本中echo显示内容带颜色
shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要使用参数-e
格式如下:
echo -e “\033[字背景颜色;文字颜色m字符串\033[0m”
注:
字背景颜色和文字颜色之间是英文的””
文字颜色后面有个m
字符串前后可以没有空格,如果有的话,输出也同样有空格。
下面是相应的字和背景颜色
例:
echo -e “\033[31m 红色字 \033[0m”
echo -e ”\033[34m 黄色字 \033[0m”
echo -e “\033[41;33m 红底黄字 \033[0m”
echo -e “\033[41;37m 红底白字 \033[0m”
字颜色:30--37
echo -e “\033[30m 黑色字 \033[0m”
echo -e “\033[31m 红色字 \033[0m”
echo -e “\033[32m 绿色字 \033[0m”
echo -e “\033[33m 黄色字 \033[0m”
echo -e “\033[34m 蓝色字 \033[0m”
echo -e “\033[35m 紫色字 \033[0m”
echo -e “\033[36m 天蓝字 \033[0m”
echo -e “\033[37m 白色字 \033[0m”
字背景颜色范围:40--47
echo -e “\033[40;31m 黑底红字 \033[0m”
echo -e “\033[41;31m 红底红字 \033[0m”
echo -e “\033[42;31m 绿底红字 \033[0m”
echo -e “\033[43;31m 黄底红字 \033[0m”
echo -e “\033[44;31m 蓝底红字 \033[0m”
echo -e “\033[45;31m 紫底红字 \033[0m”
echo -e “\033[46;31m 天蓝底红字 \033[0m”
echo -e “\033[47;31m 白底红字 \033[0m”
最后面控制选项说明
\033[0m 关闭所有属性
\033[1m 设置高亮度
\033[4m 下划线
\033[5m 闪烁
\033[7m 反显
\033[8m 消隐
\033[30m - \033[37m 设置前景的
\033[40m - \033[47m 设置背景色
\033[nA 光标上移n行
\033[nB 光标下移n行
\033[nC 光标右移n行
\033[nD 光标左移n行
\033[y;xH 设置光标位置
\033[2J 清屏
\033[K 清除从光标到行尾的内容
\033[s 保存光标位置
\033[u 恢复光标位置
\033[?25l隐藏光标
\033[?25h 显示光标