ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

磁盘管理+awk

2021-12-22 18:34:41  阅读:118  来源: 互联网

标签:管理 passwd 打印 etc awk print 磁盘


1.磁盘管理

1.1磁盘挂载的步骤

1.11磁盘分区类型

fdisk:
	分区2TB以下的磁盘
		不是绝对(分区2TB以下的稳定)
	最多可以分4个区
gdisk:
	分区任意大小磁盘
	最多可以分128个区

1.12添加磁盘

lsblk	:查看本机磁盘
df -h	:查看磁盘用量

编辑虚拟机设置,添加,硬盘,下一步,调整磁盘大小,完成

1.编辑虚拟机

image

2.添加

image

3.磁盘类型

image

4.选择磁盘

image

5.调整大小

image

6.命名

image

7.添加完成

image

8.查看磁盘

image

1.14磁盘分区

cd /dev/	:磁盘位置

fdisk /dev/adb	:进入磁盘管理分区

	m	:查看帮助
	n	:创建新分区
	p	:打印分区表
	w	:写入磁盘并退出
	q	:退出
	d	:删除一个分区

桶的概念:即扇区
	磁盘中储存的内容并不是保存到硬盘中,而是储存到桶(扇区)中

磁盘分区过程

image

image

image

image

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
			分割文本以:为分隔符,打印出最后一列内容

image

awk生命周期

grep sed awk都是读文本文件一行内容处理一行内容,直到处理完成为止

1.接收一行作为输入
2.读入进来的一行文本进行分解(即参数,入:-F分隔符)
3.使用‘处理规则’处理文本
4.输出一行,赋值给$0($0相当于变量名即处理完成的一行文本内容)直至处理完成为止
5.处理完成所有的数据后交给END{}再次处理

awk中的预定义变量

$0

代表当行
	awk -F: '{print ">>>", $0 , "<<<"}' /etc/passwd
		将每行内容分割之后交给$0,并打印出来,拼接内容需要 "" 双引号,不与最外层的 '' 单引号冲突

image

$n

代表第n列
	awk -F: '{print ">>>", $3, "<<<"}' /etc/passwd
		打印出第三列内容

image

NF

记录当前‘行’列的个数
	注:每行的列数可能会不同
	
	awk -F: '{print ">>>", NF, "<<<"}' /etc/passwd

image

NR

记录行号(不是文本内的行号)
	awk -F: '{print ">>>", NR, "<<<"}' /etc/passwd

image

FS

指定文本内容分隔符(默认空格)
与-F更能相同
FS的优先级大于-F
	awk 'BEGIN{FS=":"}{print $3}' /etc/passwd

image

OFS

指定打印分隔符即显示出来的内容(默认空格)
	awk -F: 'BEGIN{OFS="-_-"}{print ">>>", $3, "<<<"}' /etc/passwd
		拼接时分隔符默认为空格,只用OPS可以改变分隔符

image

awk处理规则的执行流程

BEGIN{}
	变量
//
	正则匹配
{}
	循环
END
	上面执行完毕后统一执行
	即先执行BEGIN,然后正则,然后循环

awk中的函数

print
	打印

printf
	格式化打印(类似占位符)
	%s	:字符串
	%d	:数字
	-	:左对齐
	+	:右对齐
	n	:至少占用n个字符
	
	awk -F: '{printf "|%-20s|%+20s|\n", $1, $3}' /etc/passwd

image

awk中的定位

正则表达式

awk -F: '/root/{print $0}'
	打印出包含root的行
awk -F: 'BEGIN{OFS="|"}/root/{print $1,2,3,4,5,6,7}' /etc/passwd
	打印出包含root的行并且调整输出内容

image

计较表达式

匹配文本内的内容进行计较
	>	:大于
	<	:小于
	>=	:大于等于
	<=	:小于等于
	~	:包含
	!~	:不包含

> :大于

awk -F: '$4 > $3{print $0}' /etc/passwd
	打印出第四列大于第三列的行

image

< :小于

awk -F: '$4 > $3{print $0}' /etc/passwd
	打印出第四列小于第三列的行

image

~ :包含

awk -F: '$0 ~/root/ {print $0}' /etc/passwd
	打印出包含root的行

image

!~ :不包含

awk -F: '$0 !~/root/ {print $0}' /etc/passwd
	打印出不包含root的行

image

逻辑表达式

&& :逻辑与

awk -F: '$3 + $4 > 1000 && $3 * $4 > 2000{print $0}' /etc/passwd
	and的意思

image

|| :逻辑与

awk -F: '$3 + $4 > 1000 || $3 * $4 > 2000{print $0}' /etc/passwd
	or的意思

image

! :逻辑非

awk -F: '!($3 + $4 > 2000) {print $0}'
	取反,即打印出不符合这个条件的
		注:括号的添加

image

算数表达式

	+
	-
	*
	/	:取整
	%	:取模(取余数)
即分割出来可以计算的列,然后通过计算得到需要的值,然后打印

% :取模

awk -F: 'NR % 2 == 0{print $0}'
	打印出偶数的行
awk -F: 'NR % 2 == 1{print $0}'
	打印出奇数的行

image

条件表达式

匹配文本外的内容
	==
	>
	<
	>=
	<=

==

awk -F: 'NR == 3 {print $0}' /etc/passwd
	打印出第三行的内容

image

范围表达式

awk -F: '/^root/,/^ftp/{print $0}' /etc/passwd
	打印出通过正则匹配出来的行

image

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
	

image
image

if判断单分支
awk -F: '{if($4 >$3){print $0}}' /etc/passwd

image

if判断多分支
awk -F: '{if($3>$4){print "3>4"}else{print "3<4"}if($3==$4){print "=="}}' /etc/passwd

image

for

{for(i="初始值";条件判断;游标(怎么处理)){}}
	i="初始值"	:初始计数器
	条件判断	:判断计数器是否到达停止条件
	游标	:初始计数器每次循环计算
for循环
awk -F: '{for(i=1;i<=10;i++){print $1}}' /etc/passwd
	打印10次第一列

image

while

{i="初始值";while(条件判断){输出内容;游标}}
while循环
awk -F: '{i="0";while(i<5){print "11",$1;i++}}' /etc/passwd

image

案例

打印系统解析器

awk -F: '{print $NF}' /etc/passwd
	# 最后一列

image

每隔五行打印一条横线

awk -F: '{if(NR%5==0){print "---"}print $0}'
	# 判断行数是否可以整除5,可就打印---,

image

标签:管理,passwd,打印,etc,awk,print,磁盘
来源: https://www.cnblogs.com/yuanyangguo/p/15718174.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有