磁碟分割槽和awk命令
阿新 • • 發佈:2021-12-22
磁碟管理
Linux中磁碟管理就是將硬碟通過掛載的方式掛載到linux檔案系統中
主要步驟是磁碟分割槽和掛載
具體步驟如下:
1.關機
2.新增硬碟
2.1 通過lsblk命令檢視本機的磁碟
2.2 通過df -h命令檢視本機的分割槽
3.磁碟分割槽
有兩個命令,fdisk和gdisk
-
fdisk:分割槽2TB以下的磁碟,最多可以分4個分割槽
-
gdisk:分割槽2TB以上的磁碟,最多可以分128個分割槽
n : 新建一個分割槽
p : 列印分割槽表
w : 寫入磁碟並退出
q : 退出
d : 刪除一個分割槽
磁碟分割槽建立步驟如下,建立多個分割槽重複多次即可
[root@localhost ~]# gdisk /dev/sdc -bash: gdisk: 未找到命令 # 安裝gdisk [root@localhost ~]# yum -y install gdisk # 再重新執行 [root@localhost ~]# gdisk /dev/sdc Command (? for help): n # 選擇命令 輸入n新建分割槽 Partition number (1-128, default 1): # 分割槽號(1-128)回車鍵使用預設值 First sector (34-6920601566, default = 2048) or {+-}size{KMGTP}: # 起始扇區 回車鍵使用預設值 Last sector (2048-6920601566, default = 6920601566) or {+-}size{KMGTP}: +100G # last扇區 使用+號來新增 Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): Changed type of partition to 'Linux filesystem' Command (? for help): w # w寫入磁碟並退出
4.格式化檔案系統
[root@localhost ~]# mkfs.xfs /dev/sdc1
5.掛載
[root@localhost ~]# mount /dev/sdc1 /mnt
[root@localhost ~]# df -h
# 使用df -h確認掛載是否成功
awk命令
AWK 是一種處理文字檔案的語言,是一個強大的文字分析工具。
之所以叫 AWK 是因為其取了三位創始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字元。
相較於 sed 常常作用於一整個行的處理, awk 則比較傾向 於一行當中分成數個『欄位』來處理。
1. awk的語法
awk [引數] [處理規則] [操作物件]
2. 引數
-F :指定文字分隔符(預設是以空格作為分隔符)
案例:列印文字的最後一列
awk -F '{print $NF}' 檔案路徑
3.awk中的預定義變數
$0 : 代表當前行 [root@localhost ~]# awk -F' ' '{print $0}' 1.txt # {}裡迴圈打印出每一行的內容 $n :代表第n列 [root@localhost ~]# awk -F' ' '{print $1}' 1.txt NF :記錄當前行的欄位數 [root@localhost ~]# awk -F' ' '{print NF}' 1.txt $NF:最後一列 [root@localhost ~]# awk -F' ' '{print $NF}' 1.txt NR :用來記錄行號 [root@localhost ~]# awk -F' ' '{print NR}' 1.txt FS :指定文字內容分隔符(預設是空格) [root@localhost ~]# awk 'BEGIN{FS=":"}{print $NF, $1}' 1.txt FS 的優先順序要高於 -F OFS :指定列印分隔符(預設空格) [root@localhost ~]# awk -F: 'BEGIN{OFS=" >>> "}{print $NF, $1}' 1.txt
4.awk處理規則的執行流程
BEGIN{ }
//
{ }
END{ }
5.awk中的函式
列印 | |
---|---|
printf | 格式化列印 |
%s | 字串 |
%d | 數字 |
- | 左對齊 |
+ | 右對齊 |
15 | 至少佔用15字元 |
[root@localhost ~]# awk -F: 'BEGIN{OFS=" | "}{printf "|%+15s|%-15s|\n", $NF,$1}' /etc/passwd
6.awk中的定位
6.1.正則表示式
[root@localhost ~]# awk -F: '/root/{print $0}' /etc/passwd
[root@localhost ~]# awk -F: '/^root/{print $0}' /etc/passwd
6.2.比較表示式
> | 大於 |
---|---|
< | 小於 |
>= | 大於等於 |
<= | 小於等於 |
~ | 正則匹配 |
!~ | 正則不匹配 |
案例
要求列印屬組ID小於屬主ID的行
[root@localhost ~]# awk -F: '$4 < $3{print $0}' /etc/passwd
案例:結尾包含nologin
[root@localhost ~]# awk -F: '$NF ~ /bash/{print $0}' /etc/passwd
案例:結尾不包含nologin
[root@localhost ~]# awk -F: '$NF !~ /bash/{print $0}' /etc/passwd
6.3.邏輯表示式
&& | 邏輯與 |
---|---|
|| | 邏輯或 |
! | 邏輯非 |
案例
[root@localhost ~]# awk -F: '$3 * $4 > 3000 && $3 - $4 < 0{print $0}' /etc/passwd
[root@localhost ~]# awk -F: '$3 * $4 > 3000 || $3 - $4 < 0{print $0}' /etc/passwd
[root@localhost ~]# awk -F: '!($3 + $4 > 2000){print $0}' /etc/passwd
6.4.算數表示式
+ | 加 |
---|---|
- | 減 |
* | 乘 |
/ | 除 |
% | 取餘 |
案例
[root@localhost ~]# awk -F: '$3 + $4 > 2000{print $0}' /etc/passwd
6.5.條件表示式
==
>
<
>=
<=
案例:要求列印第五行
[root@localhost ~]# awk -F' ' 'NR == 5{print $0}' 1.txt
6.6.範圍表示式
案例:列印以bin開頭的行
[root@localhost ~]# awk -F: '/^bin/{print $0}' /etc/passwd
7.流程控制
流程控制只存在於迴圈中
if
表示式:
if(){}
if(){}else{}
if(){}else if(){}else{}
[root@localhost ~]# awk -F: '{if($3>$4){print $3}else{print $4}}' /etc/passwd
for
表示式:
for(i="初始值";條件判斷;遊標){}
[root@localhost ~]# awk -F: '{for(i=1;i<10;i++){print $0}}' /etc/passwd
while
表示式:
while(條件判斷){}
[root@localhost ~]# awk -F: '{i=1; while(i<10){print $0, i++}}' /etc/passwd