一、磁盘管理
linux系统中磁盘管理就是将硬盘通过挂载的方式挂载到linux文件系统中
1、挂载磁盘的步骤
1、磁盘分区
2、挂载
2、磁盘分区
fdisk:分区2TB以下的磁盘,最多可以分4个区
gdisk:分区2TB以上的磁盘,最多可以分128个分区(需要安装:yum install gdisk -y)
3、添加一块磁盘
lsblk:查看本机的磁盘
df -h:查看本机的分区
4、磁盘分区
n:新建一个分区
p:打印分区表
w:写入磁盘并退出
q:退出
d:删除一个分区
5、挂载磁盘分区
1、格式化文件系统
mkfs.xfs /dev/sdb1
6、总结
1、关机
2、添加硬盘
3、创建分区
fdisk /dev/sdb 或 gdisk /dev/sdb
4、格式化文件系统
mkfs.xfs /dev/sdb1
5、挂载
mount /dev/sdb1 /mnt
二、awk
awk命令-文本和数据进行处理的编程语言
1、awk的语法
awk [参数] [处理规则] [操作对象]
2、参数
-F:指定文本分隔符(默认是以空格作为分隔符)
[root@localhost ~]# cat 3.txt jakdfj djsfj jklll feefsdjlljj jjll fjklkjl jsdfds fersdf jere [root@localhost ~]# awk '{print $NF}' 3.txt jklll jjll fjklkjl jere [root@localhost ~]# awk -F'j' '{print $NF}' 3.txt klll ll l ere
案例:打印系统所有用户的解析器
[root@localhost ~]# awk -F: '{print $NF}' /etc/passwd
3、awk的生命周期
grep、sed和awk都是读一行处理一行,直至处理完成
1、接收一行作为输入
2、把刚刚读入进来得到的文本进行分解
3、使用处理规则处理文本
4、输入一行,赋值给$0,直至处理完成
5、把处理完成之后的所有数据交给END{}来再次处理
4、awk中的预定义变量
$0:代表当前行
[root@localhost ~]# awk -F: '{print $0,"---"}' /etc/passwd
$n:代表第n列
[root@localhost ~]# awk -F: '{print $1}' /etc/passwd
NF:记录当前行的字段数
[root@localhost ~]# awk -F: '{print NF}' /etc/passwd
[root@localhost ~]# awk -F: '{print $NF}' /etc/passwd
NR:用来记录行号
[root@localhost ~]# awk -F: '{print NR}' /etc/passwd
FS:指定文本内容分隔符(默认是空格)
[root@localhost ~]# awk 'BEGIN{FS=":"}{print $NF,$1}' /etc/passwd
FS的优先级要高于 -F
[root@localhost ~]# awk -F: 'BEGIN{FS="x"}{print $NF}' /etc/passwd
OFS:指定打印分隔符(默认空格)
[root@localhost ~]# awk -F: 'BEGIN{OFS=">>>"}{print $NF,$1}' /etc/passwd
5、awk处理规则的执行流程
BEGIN{}
//:正则匹配
{}:循环
END{}
6、awk中的函数(函数一般应用于{}循环里面)
print:打印
printf:格式化打印
%s:字符串
%d:数字
-:左对齐
+:右对齐
15:至少占用15字符
[root@localhost ~]# awk -F: 'BEGIN{OFS="|"}{printf "|%+15s|%-15s|\n",$NF,$1}' /etc/passwd
7、awk中的定位
1、正则表达式
[root@localhost ~]# awk -F: '/root/{print $0}' /etc/passwd
[root@localhost ~]# awk -F: '/root/{print $0}' /etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]# awk -F: '/^root/{print $0}' /etc/passwd
[root@localhost ~]# awk -F: '/^root/{print $0}' /etc/passwd root:x:0:0:root:/root:/bin/bash
2、比较表达式
>
<
>=
<=
~:正则匹配
!~:正则匹配(取反)
例1、打印属组ID大于属主ID的行
[root@localhost ~]# awk -F: '$4>$3{print $0}' /etc/passwd
[root@localhost ~]# awk -F: '$4>$3{print $0}' /etc/passwd adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin mail:x:8:12:mail:/var/spool/mail:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
例2、打印结尾包含bash的行
[root@localhost ~]# awk -F: '$NF ~ /bash/{print $0}' /etc/passwd
[root@localhost ~]# awk -F: '$NF ~ /bash/{print $0}' /etc/passwd root:x:0:0:root:/root:/bin/bash test:x:1000:1000::/home/test:/bin/bash test03:x:1001:1000::/home/test03:/bin/bash test05:x:998:996::/home/test05:/bin/bash tuser1:x:1002:1002::/home/tuser1:/bin/bash tuser2:x:1003:1003:手动创建用户:/home/tuser2:/bin/bash tuser3:x:1004:1004:手动创建用户:/home/tuser3:/bin/bash
例3、打印结尾不包含bash的行
[root@localhost ~]# awk -F: '$NF !~ /bash/{print $0}' /etc/passwd
3、逻辑表达式
&&:逻辑与
||:逻辑或
!:逻辑非
[root@localhost ~]# awk -F: '$3+$4>2000 && $3 * $4>2000{print $0}' /etc/passwd
[root@localhost ~]# awk -F: '$3+$4>2000 && $3 * $4>2000{print $0}' /etc/passwd test03:x:1001:1000::/home/test03:/bin/bash tuser1:x:1002:1002::/home/tuser1:/bin/bash tuser2:x:1003:1003:手动创建用户:/home/tuser2:/bin/bash tuser3:x:1004:1004:手动创建用户:/home/tuser3:/bin/bash
[root@localhost ~]# awk -F: '$3+$4>2000 || $3 * $4>2000{print $0}' /etc/passwd
[root@localhost ~]# awk -F: '!($3+$4>2000){print $0}' /etc/passwd
4、算数表达式
+ - * / %
例1:要求属组+属主的ID大于2000
[root@localhost ~]# awk -F: '$3+$4>2000{print $0}' /etc/passwd test03:x:1001:1000::/home/test03:/bin/bash tuser1:x:1002:1002::/home/tuser1:/bin/bash tuser2:x:1003:1003:手动创建用户:/home/tuser2:/bin/bash tuser3:x:1004:1004:手动创建用户:/home/tuser3:/bin/bash
例2:打印偶数行
[root@localhost ~]# awk -F: 'NR % 2 == 0{print $0}' /etc/passwd
例3:打印奇数行
[root@localhost ~]# awk -F: 'NR % 2 == 1{print $0}' /etc/passwd
5、条件表达式
== > < >= <=
例1:打印第三行
[root@localhost ~]# awk -F: 'NR == 3{print $0}' /etc/passwd daemon:x:2:2:daemon:/sbin:/sbin/nologin
6、范围表达式
[root@localhost ~]# awk -F: '/^root/,/^ftp/{print $0}' /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
8、流程控制(只存在循环之中)
if(){}
if(){}else{}
if(){}else if(){}else{}
[root@localhost ~]# awk -F: '{if($3>$4){print $0,"大于"}else{print $0,"小于或等于"}}' /etc/passwd root:x:0:0:root:/root:/bin/bash 小于或等于 bin:x:1:1:bin:/bin:/sbin/nologin 小于或等于 daemon:x:2:2:daemon:/sbin:/sbin/nologin 小于或等于 adm:x:3:4:adm:/var/adm:/sbin/nologin 小于或等于 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin 小于或等于 sync:x:5:0:sync:/sbin:/bin/sync 大于 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown 大于 halt:x:7:0:halt:/sbin:/sbin/halt 大于
for(i="初始值";条件判断;游标){}
[root@localhost ~]# awk -F: '{for(i=5;i>0;i--){print $0}}' /etc/passwd root:x:0:0:root:/root:/bin/bash root:x:0:0:root:/root:/bin/bash root:x:0:0:root:/root:/bin/bash root:x:0:0:root:/root:/bin/bash root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin bin:x:1:1:bin:/bin:/sbin/nologin bin:x:1:1:bin:/bin:/sbin/nologin bin:x:1:1:bin:/bin:/sbin/nologin bin:x:1:1:bin:/bin:/sbin/nologin
while(条件判断){}
[root@localhost ~]# awk -F: '{i=0;while(i<5){print $0,i++}}' /etc/passwd root:x:0:0:root:/root:/bin/bash 0 root:x:0:0:root:/root:/bin/bash 1 root:x:0:0:root:/root:/bin/bash 2 root:x:0:0:root:/root:/bin/bash 3 root:x:0:0:root:/root:/bin/bash 4 bin:x:1:1:bin:/bin:/sbin/nologin 0 bin:x:1:1:bin:/bin:/sbin/nologin 1 bin:x:1:1:bin:/bin:/sbin/nologin 2 bin:x:1:1:bin:/bin:/sbin/nologin 3 bin:x:1:1:bin:/bin:/sbin/nologin 4
每隔5行,打印一行横线----------------------------
[root@localhost ~]# awk -F: '{if(NR%5==0){print "---------------------"}print $0}' /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin --------------------- lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown