1.磁盘管理
1.1磁盘挂载的步骤
1.11磁盘分区类型
fdisk:
分区2TB以下的磁盘
不是绝对(分区2TB以下的稳定)
最多可以分4个区
gdisk:
分区任意大小磁盘
最多可以分128个区
1.12添加磁盘
lsblk :查看本机磁盘
df -h :查看磁盘用量
编辑虚拟机设置,添加,硬盘,下一步,调整磁盘大小,完成
1.编辑虚拟机
2.添加
3.磁盘类型
4.选择磁盘
5.调整大小
6.命名
7.添加完成
8.查看磁盘
1.14磁盘分区
cd /dev/ :磁盘位置
fdisk /dev/adb :进入磁盘管理分区
m :查看帮助
n :创建新分区
p :打印分区表
w :写入磁盘并退出
q :退出
d :删除一个分区
桶的概念:即扇区
磁盘中储存的内容并不是保存到硬盘中,而是储存到桶(扇区)中
磁盘分区过程
1.15挂载磁盘分区
格式化文件系统
mkfs.xfs /dev/sdb/sdb1
挂载磁盘
mount /dev/sdb1 /mnt
1.16总结
1.光机
2.添加硬盘
3.创建分区
fdisk /dev/sdb
4.格式化文件系统
mkfs.xfs /dev/sdb1
5.挂载
mount /dev/sdb1 /mnt
gdisk
不是linux自带的,需要安装
yum install gdisk -y
之后跟上一样
linux三剑客之awk
awk相当于一门编程语言
主要用于处理文本(格式化文本)
支持变量,支持循环等
awk语法
awk [参数] [处理规则] [操作对象]
awk参数
-F:
指定文本分隔符(默认空格为分隔符)
awk '{print $NF}' 路径
分割文本默认空格为分隔符,打印出文本列数即最后一列
awk -F: '{print $NF}' /etc/passwd
分割文本以:为分隔符,打印出最后一列内容
awk生命周期
grep sed awk都是读文本文件一行内容处理一行内容,直到处理完成为止
1.接收一行作为输入
2.读入进来的一行文本进行分解(即参数,入:-F分隔符)
3.使用‘处理规则’处理文本
4.输出一行,赋值给$0($0相当于变量名即处理完成的一行文本内容)直至处理完成为止
5.处理完成所有的数据后交给END{}再次处理
awk中的预定义变量
$0
代表当行
awk -F: '{print ">>>", $0 , "<<<"}' /etc/passwd
将每行内容分割之后交给$0,并打印出来,拼接内容需要 "" 双引号,不与最外层的 '' 单引号冲突
$n
代表第n列
awk -F: '{print ">>>", $3, "<<<"}' /etc/passwd
打印出第三列内容
NF
记录当前‘行’列的个数
注:每行的列数可能会不同
awk -F: '{print ">>>", NF, "<<<"}' /etc/passwd
NR
记录行号(不是文本内的行号)
awk -F: '{print ">>>", NR, "<<<"}' /etc/passwd
FS
指定文本内容分隔符(默认空格)
与-F更能相同
FS的优先级大于-F
awk 'BEGIN{FS=":"}{print $3}' /etc/passwd
OFS
指定打印分隔符即显示出来的内容(默认空格)
awk -F: 'BEGIN{OFS="-_-"}{print ">>>", $3, "<<<"}' /etc/passwd
拼接时分隔符默认为空格,只用OPS可以改变分隔符
awk处理规则的执行流程
BEGIN{}
变量
//
正则匹配
{}
循环
END
上面执行完毕后统一执行
即先执行BEGIN,然后正则,然后循环
awk中的函数
print
打印
printf
格式化打印(类似占位符)
%s :字符串
%d :数字
- :左对齐
+ :右对齐
n :至少占用n个字符
awk -F: '{printf "|%-20s|%+20s|\n", $1, $3}' /etc/passwd
awk中的定位
正则表达式
awk -F: '/root/{print $0}'
打印出包含root的行
awk -F: 'BEGIN{OFS="|"}/root/{print $1,2,3,4,5,6,7}' /etc/passwd
打印出包含root的行并且调整输出内容
计较表达式
匹配文本内的内容进行计较
> :大于
< :小于
>= :大于等于
<= :小于等于
~ :包含
!~ :不包含
> :大于
awk -F: '$4 > $3{print $0}' /etc/passwd
打印出第四列大于第三列的行
< :小于
awk -F: '$4 > $3{print $0}' /etc/passwd
打印出第四列小于第三列的行
~ :包含
awk -F: '$0 ~/root/ {print $0}' /etc/passwd
打印出包含root的行
!~ :不包含
awk -F: '$0 !~/root/ {print $0}' /etc/passwd
打印出不包含root的行
逻辑表达式
&& :逻辑与
awk -F: '$3 + $4 > 1000 && $3 * $4 > 2000{print $0}' /etc/passwd
and的意思
|| :逻辑与
awk -F: '$3 + $4 > 1000 || $3 * $4 > 2000{print $0}' /etc/passwd
or的意思
! :逻辑非
awk -F: '!($3 + $4 > 2000) {print $0}'
取反,即打印出不符合这个条件的
注:括号的添加
算数表达式
+
-
*
/ :取整
% :取模(取余数)
即分割出来可以计算的列,然后通过计算得到需要的值,然后打印
% :取模
awk -F: 'NR % 2 == 0{print $0}'
打印出偶数的行
awk -F: 'NR % 2 == 1{print $0}'
打印出奇数的行
条件表达式
匹配文本外的内容
==
>
<
>=
<=
==
awk -F: 'NR == 3 {print $0}' /etc/passwd
打印出第三行的内容
范围表达式
awk -F: '/^root/,/^ftp/{print $0}' /etc/passwd
打印出通过正则匹配出来的行
awk中的流程控制
流程控制值存在循环之中
{}
if :判断
if(判断条件){游标(怎么处理)} :单分支
{if(判断条件){游标}else{游标}} :双分支
{if(){}else{} if(){}else{}} :多分支
for :循环
{for(i="初始值";条件判断;游标(怎么处理)){}}
while :循环
{while(条件判断){}}
if判断
if :判断双分支
awk -F: '{if($3>$4){print "大于"$3}else{print"小于或等于",$4}}' /etc/passwd
打印出达到的结果
awk -F: '{if($3>$4){print $3}else{print"小于或等于",$4}{print "666"}}' /etc/passwd
if判断单分支
awk -F: '{if($4 >$3){print $0}}' /etc/passwd
if判断多分支
awk -F: '{if($3>$4){print "3>4"}else{print "3<4"}if($3==$4){print "=="}}' /etc/passwd
for
{for(i="初始值";条件判断;游标(怎么处理)){}}
i="初始值" :初始计数器
条件判断 :判断计数器是否到达停止条件
游标 :初始计数器每次循环计算
for循环
awk -F: '{for(i=1;i<=10;i++){print $1}}' /etc/passwd
打印10次第一列
while
{i="初始值";while(条件判断){输出内容;游标}}
while循环
awk -F: '{i="0";while(i<5){print "11",$1;i++}}' /etc/passwd
案例
打印系统解析器
awk -F: '{print $NF}' /etc/passwd
# 最后一列
每隔五行打印一条横线
awk -F: '{if(NR%5==0){print "---"}print $0}'
# 判断行数是否可以整除5,可就打印---,