目录
磁盘的分区与挂载
// 查看硬盘指令
lsblk
// 查看挂载状态
df -h
// 硬盘分区的两种指令
fdisk 适用于分区2TB以下的(分2TB以上的会报错)
gdisk 适用于分区2TB以上的(2TB以下的也可以分) 此功能需要从晚上下载
// 磁盘分区的命令
fdisk + [新硬盘的路径] (一般在/dev/sdn/)
// 硬盘分区的流程
1.执行分区命令 fdisk
↓
2.输入 n 新增分区
↓
3.分区内容选择 p (主分区) e(逻辑分区) 默认是p
↓
4.选择分区的编号 fdisk (最多分4个) gdisk(最多120个)
↓
5.选择初始桶容量和最大桶容量 默认最小2048字节 最大容量选择可以再后面加上单位
↓
6.输入 p 打印分区状态 (不是必须的步骤)
↓
7.输入 w 写入到磁盘并且退出
↓
8.输入 mkfs.xfs + [文件系统的分区路径] 格式化文件系统
↓
9.格式化后就可以输入 mount + [磁盘分区路径] + [磁盘挂载路径] 进行磁盘的挂载
↓
10.输入 df -h 查看挂载信息
三剑客之awk
# awk 主要的作用就是用来格式化文本
# awk的语法
awk + [参数] + [处理规则] + [操作对象]
# 参数
-F 指定文本分隔符 (默认是空格作为分隔)
例: awk -F: '{print $NF}' + [文件名]
# awk的生命周期
1. 接受一行作为输入
2.把刚刚读进来内容的进行分解
3.使用处理规则进行匹配和解析
4.输入一行 赋值给¥0 直至处理完成 (类似于for循环中的i)
5.把处理完成之后的所有数据交给END{}来进行再次处理
# awk处理规则的执行流程
'awk sed grep 都是读一行处理一行 为了防止内存溢出 类似于for循环'
1.BEGIN{}
2.//
3.{}
4.END{}
# awk的预定义变量 (可以当成python中的内置函数)、
$0 代表当前行
例:awk -Fs '{print $0 "***j****************"}' 1.txt
代表给1.txt每行后面的文件都添加打印 ***j****************
$n 代表第n列 横为行 竖为列
例:awk -Fs '{print¥2 "***"}' 1.txt
代表给1.txt中以s为分割的第二列后面添加***
NF 用来记录当前行的段数 也就是分割的段数
例;awk -Fs '{print $0 "***"NF"***" }' 1.txt
代表给1.txt中以s分割的每一个文件统计分割的段数
'也可和$配合 $代表每一行 NF代表列数 $NF就代表最后一列 '
NR 用来记录行号 是文本的行号 类似于计数器
例:awk -Fs '{print NR "---" $0}' 1.txt
代表给1.txt中每一行内容前面都加上行号和---
FS 指定分隔符(作用与文本) (也就是前面的-F参数) FS自定义的分隔符优先级高于默认的-F
例:awk 'BEGIN = {FS = 5} {print NR , $0} 1.txt
代表给1.txt中的每一行显示行号 以自定义的5作为分割
OFS 指定分隔符(作用打印显示) (,代表打印分割 默认是空格 指定之后就是自己指定的符号)
例:awk -FS 'BEGIN {OFS= "///"} {print NR , #0 }'
代表给1.txt中的每一行添加行号 分割用///来表示
# awk的函数
print 打印
printf 格式化打印
%s 字符串占位
%d 数字
例: awk -Fs '{printf "|%-15s|%-15s|\n" , NF , $0}' 1.txt
代表把1.txt中的每一行添加行号 用格式化输出 用|分隔开 -15是左对齐 +15是右对齐 15是15个字符
'函数只能在{}循环里面应用'
# awk中的定位
1.正则
awk -Fs 'BEGIN{OFS = "***"}/u/{print NR ,$0}' 1.txt
代表把1.txt中的匹配到包u的显示出行号
2.比较表达式
>
<
>=
<=
~ 包含 正则匹配
!~ 不包含
awk -Fs 'BEGIN{OFS = "***"}$NF ~ /a/{print NR ,$0}' 1.txt
代表把1.txt中匹配到结尾包含a的列添加行号
awk -Fs 'BEGIN{OFS = "***"}$0>100{print NR ,$0}' 1.txt
代表把1.txt中匹配到大于100的添加行号
3.逻辑表达式
&& 和 与 and
|| 或 or
! 非 not
例:awk 'BRGIN{OFS = "/*/"} $3 + $4 > 100 && $3 + $4 < 200 {print $0}' 1.txt
代表把1.txt第三列加第四列大于100并且小于200的的打印出来
4.算术表达式
例:awk 'BRGIN{OFS = "/*/"} $3 + $4 > 100 {print $0}' 1.txt
代表把1.txt第三列加第四列大于100的的打印出来
5.条件表达方式 (匹配的是文本外的内容 比如行号啊结果啊之类的)
==
>
<
>=
<=
例:awk 'BRGIN{OFS = "/*/"} NR == 5 {print $0}' 1.txt
代表把1.txt中的第三行打印出来
6.范围表达式
例:awk 'BRGIN{OFS = "/*/"}/root/,/lll/ {print $0}' 1.txt
代表把1.txt中root开头到ll开头的打印出来的打印出来
# 流程控制 也就是循环
if
例:awk -Fs 'BRGIN{OFS = "/*/"}{if($0 > 0){print $0} else {print "小于"}}' 1.txt
代表把1.txt中所有大于0的打印 小于0的打印“小于”
for
例:awk -Fs 'BRGIN{OFS = "/*/"} {for( i = 0 ; i < 10 ; i++) {print $0} }' 1.txt
代表for循环每一行并且打印10遍
while
例:awk -Fs 'BRGIN{OFS = "/*/"} {i = 1 ; while( i < 10 ) {print $0 , i++} }' 1.txt
代表循环打印每一行10遍