天天看點

磁盤管理+awk

1.磁盤管理

1.1磁盤挂載的步驟

1.11磁盤分區類型

fdisk:
	分區2TB以下的磁盤
		不是絕對(分區2TB以下的穩定)
	最多可以分4個區
gdisk:
	分區任意大小磁盤
	最多可以分128個區
           

1.12添加磁盤

lsblk	:檢視本機磁盤
df -h	:檢視磁盤用量

編輯虛拟機設定,添加,硬碟,下一步,調整磁盤大小,完成
           

1.編輯虛拟機

磁盤管理+awk

2.添加

磁盤管理+awk

3.磁盤類型

磁盤管理+awk

4.選擇磁盤

磁盤管理+awk

5.調整大小

磁盤管理+awk

6.命名

磁盤管理+awk

7.添加完成

磁盤管理+awk

8.檢視磁盤

磁盤管理+awk

1.14磁盤分區

cd /dev/	:磁盤位置

fdisk /dev/adb	:進入磁盤管理分區

	m	:檢視幫助
	n	:建立新分區
	p	:列印分區表
	w	:寫入磁盤并退出
	q	:退出
	d	:删除一個分區

桶的概念:即扇區
	磁盤中儲存的内容并不是儲存到硬碟中,而是儲存到桶(扇區)中
           

磁盤分區過程

磁盤管理+awk
磁盤管理+awk
磁盤管理+awk
磁盤管理+awk

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

awk生命周期

grep sed awk都是讀文本檔案一行内容處理一行内容,直到處理完成為止

1.接收一行作為輸入
2.讀入進來的一行文本進行分解(即參數,入:-F分隔符)
3.使用‘處理規則’處理文本
4.輸出一行,指派給$0($0相當于變量名即處理完成的一行文本内容)直至處理完成為止
5.處理完成所有的資料後交給END{}再次處理
           

awk中的預定義變量

$0

代表當行
	awk -F: '{print ">>>", $0 , "<<<"}' /etc/passwd
		将每行内容分割之後交給$0,并列印出來,拼接内容需要 "" 雙引号,不與最外層的 '' 單引号沖突
           
磁盤管理+awk

$n

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

NF

記錄目前‘行’列的個數
	注:每行的列數可能會不同
	
	awk -F: '{print ">>>", NF, "<<<"}' /etc/passwd
           
磁盤管理+awk

NR

記錄行号(不是文本内的行号)
	awk -F: '{print ">>>", NR, "<<<"}' /etc/passwd
           
磁盤管理+awk

FS

指定文本内容分隔符(預設空格)
與-F更能相同
FS的優先級大于-F
	awk 'BEGIN{FS=":"}{print $3}' /etc/passwd

           
磁盤管理+awk

OFS

指定列印分隔符即顯示出來的内容(預設空格)
	awk -F: 'BEGIN{OFS="-_-"}{print ">>>", $3, "<<<"}' /etc/passwd
		拼接時分隔符預設為空格,隻用OPS可以改變分隔符
           
磁盤管理+awk

awk處理規則的執行流程

BEGIN{}
	變量
//
	正則比對
{}
	循環
END
	上面執行完畢後統一執行
	即先執行BEGIN,然後正則,然後循環
           

awk中的函數

print
	列印

printf
	格式化列印(類似占位符)
	%s	:字元串
	%d	:數字
	-	:左對齊
	+	:右對齊
	n	:至少占用n個字元
	
	awk -F: '{printf "|%-20s|%+20s|\n", $1, $3}' /etc/passwd
           
磁盤管理+awk

awk中的定位

正規表達式

awk -F: '/root/{print $0}'
	列印出包含root的行
awk -F: 'BEGIN{OFS="|"}/root/{print $1,2,3,4,5,6,7}' /etc/passwd
	列印出包含root的行并且調整輸出内容
           
磁盤管理+awk

計較表達式

比對文本内的内容進行計較
	>	:大于
	<	:小于
	>=	:大于等于
	<=	:小于等于
	~	:包含
	!~	:不包含
           

> :大于

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

< :小于

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

~ :包含

awk -F: '$0 ~/root/ {print $0}' /etc/passwd
	列印出包含root的行
           
磁盤管理+awk

!~ :不包含

awk -F: '$0 !~/root/ {print $0}' /etc/passwd
	列印出不包含root的行
           
磁盤管理+awk

邏輯表達式

&& :邏輯與

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

|| :邏輯與

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

! :邏輯非

awk -F: '!($3 + $4 > 2000) {print $0}'
	取反,即列印出不符合這個條件的
		注:括号的添加
           
磁盤管理+awk

算數表達式

+
	-
	*
	/	:取整
	%	:取模(取餘數)
即分割出來可以計算的列,然後通過計算得到需要的值,然後列印
           

% :取模

awk -F: 'NR % 2 == 0{print $0}'
	列印出偶數的行
awk -F: 'NR % 2 == 1{print $0}'
	列印出奇數的行
           
磁盤管理+awk

條件表達式

比對文本外的内容
	==
	>
	<
	>=
	<=
           

==

awk -F: 'NR == 3 {print $0}' /etc/passwd
	列印出第三行的内容
           
磁盤管理+awk

範圍表達式

awk -F: '/^root/,/^ftp/{print $0}' /etc/passwd
	列印出通過正則比對出來的行
           
磁盤管理+awk

awk中的流程控制

流程控制值存在循環之中
	{}
	if		:判斷
		if(判斷條件){遊标(怎麼處理)}	:單分支
		{if(判斷條件){遊标}else{遊标}}	:雙分支
		{if(){}else{} if(){}else{}}	:多分支
	for		:循環
		{for(i="初始值";條件判斷;遊标(怎麼處理)){}}
	while		:循環
		{i="初始值";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
	
           
磁盤管理+awk
磁盤管理+awk
if判斷單分支
awk -F: '{if($4 >$3){print $0}}' /etc/passwd
           
磁盤管理+awk
if判斷多分支
awk -F: '{if($3>$4){print "3>4"}else{print "3<4"}if($3==$4){print "=="}}' /etc/passwd
           
磁盤管理+awk

for

{for(i="初始值";條件判斷;遊标(怎麼處理)){}}
	i="初始值"	:初始計數器
	條件判斷	:判斷計數器是否到達停止條件
	遊标	:初始計數器每次循環計算
           
for循環
awk -F: '{for(i=1;i<=10;i++){print $1}}' /etc/passwd
	列印10次第一列
           
磁盤管理+awk

while

{i="初始值";while(條件判斷){輸出内容;遊标}}
           
while循環
awk -F: '{i="0";while(i<5){print "11",$1;i++}}' /etc/passwd
           
磁盤管理+awk

案例

列印系統解析器

awk -F: '{print $NF}' /etc/passwd
	# 最後一列
           
磁盤管理+awk

每隔五行列印一條橫線

awk -F: '{if(NR%5==0){print "---"}print $0}'
	# 判斷行數是否可以整除5,可就列印---,
           
磁盤管理+awk

擴充

列印内容自動對其
	coulmn -t