首页 > 其他分享 >二

时间:2024-01-15 17:12:06浏览次数:29  
标签: 字符 分区 dev 挂载 root centos8

一、文本三剑客

1、正则表达式

正则表达式被很多程序和开发语言所广泛支持:vim, less,grep,sed,awk, nginx,mysql 等

正则表达式分两类:
基本正则表达式:BRE Basic Regular Expressions
扩展正则表达式:ERE Extended Regular Expression

基本正则表达式元字符

字符匹配:

. 匹配任意单个字符(除了\n),可以是一个汉字或其它国家的文字
[] 匹配指定范围内的任意单个字符,示例:[wang] [0-9] [a-z] [a-zA-Z]
[^] 匹配指定范围外的任意单个字符,示例:[^wang]
[:alnum:] 字母和数字
[:alpha:] 代表任何英文大小写字符,亦即 A-Z, a-z
[:lower:] 小写字母,示例:[[:lower:]],相当于[a-z]
[:upper:] 大写字母
[:blank:] 空白字符(空格和制表符)
[:space:] 包括空格、制表符(水平和垂直)、换行符、回车符等各种类型的空白,比[:blank:]包含的范围
广
[:cntrl:] 不可打印的控制字符(退格、删除、警铃...)
[:digit:] 十进制数字
[:xdigit:]十六进制数字
[:graph:] 可打印的非空白字符
[:print:] 可打印字符
[:punct:] 标点符号
-----------------
\s #匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [\f\r\t\v]。注意 Unicode
正则表达式会匹配全角空格符
\S #匹配任何非空白字符。等价于 [^\f\r\t\v]
\w #匹配一个字母,数字,下划线,汉字,其它国家文字的字符,等价于[_[:alnum:]字]
\W #匹配一个非字母,数字,下划线,汉字,其它国家文字的字符,等价于[^_[:alnum:]字]

匹配次数:

* #匹配前面的字符任意次,包括0次,贪婪模式:尽可能长的匹配
.* #任意长度的任意字符
\? #匹配其前面的字符出现0次或1次,即:可有可无
\+ #匹配其前面的字符出现最少1次,即:肯定有且 >=1 次
\{n\} #匹配前面的字符n次
\{m,n\} #匹配前面的字符至少m次,至多n次
\{,n\} #匹配前面的字符至多n次,<=n
\{n,\} #匹配前面的字符至少n次

位置锚定:

^ #行首锚定, 用于模式的最左侧
$ #行尾锚定,用于模式的最右侧
^PATTERN$ #用于模式匹配整行
^$ #空行
^[[:space:]]*$ #空白行
\< 或 \b #词首锚定,用于单词模式的左侧
\> 或 \b #词尾锚定,用于单词模式的右侧
\<PATTERN\> #匹配整个单词

扩展正则表达式元字符

字符匹配:

. 任意单个字符
[wang] 指定范围的字符
[^wang] 不在指定范围的字符
[:alnum:] 字母和数字
[:alpha:] 代表任何英文大小写字符,亦即 A-Z, a-z
[:lower:] 小写字母,示例:[[:lower:]],相当于[a-z]
[:upper:] 大写字母
[:blank:] 空白字符(空格和制表符)
[:space:] 水平和垂直的空白字符(比[:blank:]包含的范围广)
[:cntrl:] 不可打印的控制字符(退格、删除、警铃...)
[:digit:] 十进制数字
[:xdigit:]十六进制数字
[:graph:] 可打印的非空白字符
[:print:] 可打印字符
[:punct:] 标点符号

次数匹配

* 匹配前面字符任意次
? 0或1次
+ 1次或多次
{n} 匹配n次
{m,n} 至少m,至多n次

位置锚定

^ 行首
$ 行尾
\<, \b 语首
\>, \b 语尾

分组其它

() 分组
后向引用:\1, \2, ... 注意: \0 表示正则表达式匹配的所有字符
| 或者
a|b #a或b
C|cat #C或cat
(C|c)at #Cat或cat

1.1 文本处理三剑客
grep 命令主要对文本的(正则表达式)行基于模式进行过滤
sed:stream editor,文本编辑工具
awk:Linux上的实现gawk,文本报告生成器

1.1.1 文本处理三剑客之 grep
grep: Global search REgular expression and Print out the line
作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查;打印匹配到的行
模式:由正则表达式字符及文本字符所编写的过滤条件

帮助:

https://man7.org/linux/man-pages/man1/grep.1.html

常见选项:

--color=auto 对匹配到的文本着色显示
-m # 匹配#次后停止
-v 显示不被pattern匹配到的行,即取反
-i 忽略字符大小写
-n 显示匹配的行号
-c 统计匹配的行数
-o 仅显示匹配到的字符串
-q 静默模式,不输出任何信息
-A # after, 后#行
-B # before, 前#行
-C # context, 前后各#行
-e 实现多个选项间的逻辑or关系,如:grep –e ‘cat ' -e ‘dog' file
-w 匹配整个单词
-E 使用ERE,相当于egrep
-F 不支持正则表达式,相当于fgrep
-P 支持Perl格式的正则表达式
-f file 根据模式文件处理
-r 递归目录,但不处理软链接
-R 递归目录,但处理软链接

1.1.2 文本处理三剑客之 sed

帮助:https://man7.org/linux/man-pages/man1/sed.1.html

Sed是从文件或管道中读取一行,处理一行,输出一行;再读取一行,再处理一行,再输出一行,直到
最后一行。每当处理一行时,把当前处理的行存储在临时缓冲区中,称为模式空间(Pattern
Space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下
一行,这样不断重复,直到文件末尾。一次处理一行的设计模式使得sed性能很高,sed在读取大文件时
不会出现卡顿的现象。如果使用vi命令打开几十M上百M的文件,明显会出现有卡顿的现象,这是因为
vi命令打开文件是一次性将文件加载到内存,然后再打开。Sed就避免了这种情况,一行一行的处理,
打开速度非常快,执行速度也很快

常用选项:

-n 不输出模式空间内容到屏幕,即不自动打印
-e 多点编辑
-f FILE 从指定文件中读取编辑脚本
-r, -E 使用扩展正则表达式
-i.bak 备份文件并原处编辑
-s 将多个文件视为独立文件,而不是单个连续的长文件流
#说明:
-ir 不支持
-i -r 支持
-ri 支持
-ni 危险选项,会清空文件

地址格式:

1. 不给地址:对全文进行处理
2. 单地址:
#:指定的行,$:最后一行
/pattern/:被此处模式所能够匹配到的每一行
3. 地址范围:
#,# #从#行到第#行,3,6 从第3行到第6行
#,+# #从#行到+#行,3,+4 表示从3行到第7行
/pat1/,/pat2/
#,/pat/
/pat/,#
4. 步进:~
1~2 奇数行
2~2 偶数行

命令:

 
p 打印当前模式空间内容,追加到默认输出之后
Ip 忽略大小写输出
d 删除模式空间匹配的行,并立即启用下一轮循环
a [\]text 在指定行后面追加文本,支持使用\n实现多行追加
i [\]text 在行前面插入文本
c [\]text 替换行为单行或多行文本
w file 保存模式匹配的行至指定文件
r file 读取指定文件的文本至模式空间中匹配到的行后
= 为模式空间中的行打印行号
! 模式空间中匹配行取反处理
q 结束或退出sed

查找替代:

s/pattern/string/修饰符 查找替换,支持使用其它分隔符,可以是其它形式:s@@@,s###
替换修饰符:
g 行内全局替换
p 显示替换成功的行
w /PATH/FILE 将替换成功的行保存至文件中
I,i 忽略大小写
范例: 搜索替换 
[root@centos8 ~]#sed -nr 's/r..t/&er/gp' /etc/passwd
rooter:x:0:0:rooter:/rooter:/bin/bash
operator:x:11:0:operator:/rooter:/sbin/nologin
ftp:x:14:50:FTP User:/var/fterp:/sbin/nologin

范例: 除指定文件外其余删除
[root@rocky8 ~]#rm -f `ls | grep -Ev '(3|5|7)\.txt'`
[root@rocky8 ~]#ls | sed -n '/[^357].txt/p'|xargs rm
[root@rocky8 ~]#ls | grep -Ev '(3|5|7)\.txt' | sed -n 's/.*/rm &/p'|bash
[root@rocky8 ~]#ls | grep -Ev '(3|5|7)\.txt' | sed -En 's/(.*)/rm \1/p'|bash

1.1.3 文本处理三剑客之 awk

https://man7.org/linux/man-pages/man1/awk.1p.html
awk:Aho, Weinberger, Kernighan,报告生成器,格式化文本输出,GNU/Linux发布的AWK目前由自
由软件基金会(FSF)进行开发和维护,通常也称它为 GNU AW

格式:

awk [options] 'program' var=value file…
awk [options] -f programfile var=value file…	

awk 变量:

FS:输入字段分隔符,默认为空白字符,功能相当于 -F
OFS:输出字段分隔符,默认为空白字符
FS:输入字段分隔符,默认为空白字符,功能相当于 -F
OFS:输出字段分隔符,默认为空白字符
RS:输入记录record分隔符,指定输入时的换行符ORS:输出记录分隔符,输出时用指定符号代替换行符NF:字段数量
NR:记录的编号
FNR:各文件分别计数,记录的编号
FILENAME:当前文件名
ARGC:命令行参数的个数
ARGV:数组,保存的是命令行所给定的各参数,每一个参数:ARGV[0],....

动作 printf

printf “FORMAT”, item1, item2, ...

格式符:与item一一对应

%s:显示字符串
%d, %i:显示十进制整数
%f:显示为浮点数
%e, %E:显示科学计数法数值
%c:显示字符的ASCII码
%g, %G:以科学计数法或浮点形式显示数值
%u:无符号整数
%%:显示%自身

二、变量命名规则

区分大小写
不能使程序中的保留字和内置变量:如:if, for
只能使用数字、字母及下划线,且不能以数字开头,注意:不支持短横线 “ - ”,和主机名相反

变量定义和引用
变量的生效范围等标准划分变量类型
普通变量:生效范围为当前shell进程;对当前shell之外的其它shell进程,包括当前shell的子shell
进程均无效
环境变量:生效范围为当前shell进程及其子进程
本地变量:生效范围为当前shell进程中某代码片断,通常指函数

1.环境变量:
可以使子进程(包括孙子进程)继承父进程的变量,但是无法让父进程使用子进程的变量
一旦子进程修改从父进程继承的变量,将会新的值传递给孙子进程
一般只在系统配置文件中使用,在脚本中较少使用

#声明并赋值
export name=VALUE
declare -x name=VALUE
#或者分两步实现
name=VALUE
export name

显示所有环境变量:

env
printenv
export
declare -x

2.只读变量:只能声明定义,但后续不能修改和删除,即常量

3.位置变量:在bash shell中内置的变量, 在脚本代码中调用通过命令行传递给脚本的参数

$1, $2, ... 对应第1个、第2个等参数,shift [n]换位置
$0 命令本身,包括路径
$* 传递给脚本的所有参数,全部参数合为一个字符串
$@ 传递给脚本的所有参数,每个参数为独立字符串
$# 传递给脚本的参数的个数
注意:$@ $* 只在被双引号包起来的时候才会有差异

4.状态码变量

$?的作用是:获取执行上一个指令的执行状态返回值,返回0表示上一个命令或者程序执行成功,返回的值为非0则表示上一个命令执行失败。

$$的作用是:获取当前执行的shell脚本的进程号PID。

$!的作用是:获取上一个后台工作的进程的进程号PID。

$_的作用是:获取在此之前执行的命令或脚本的最后一个参数

$?的值为0 #代表成功
$?的值是1到255 #代表失败

三、鸡兔同笼

[root@desktop-g179jja ~]# cat jttl.sh
#!/bin/bash/
head=$1
foot=$2
rabbit=$[(foot-head-head)/2]
chook=$[head-rabbit]
echo "兔子的个数是$rabbit只"
echo "鸡的个数是$chook只"
[root@desktop-g179jja ~]# bash jttl.sh 30 80
兔子的个数是10只
鸡的个数是20只
 

四.创建用户脚本

for i in {1..100};do echo ${i};done;

user=user
#for遍历1..100
for i in {1..100};
  do 

#id判断是否存在
grep "user-$i" /etc/passwd &> /dev/null
   if [ $? -ne 0 ];then
   useradd user-$i &>/dev/null
     if [ $? -eq 0 ];then
     echo "user-$i" >> /root/user_name
     echo "user-$i" | passwd user-$i --stdin &> /dev/null
     echo "创建成功"
     fi
        else
        echo "user-$i 用户已存在,创建失败!"
        fi      
done            

五、磁盘存储术语总结: head, track, sector, sylinder.

head:磁头 磁头数=盘面数

track:磁道 磁道=柱面数

sector:扇区,512bytes

cylinder:柱面 1柱面=512 * sector数/trackhead数=51263*255=7.84M

知道了磁头数、柱面数、扇区数,就可以很容易地确定数据保存在硬盘的哪个位置。也很容易确定硬盘的容量,其计算公式是:硬盘容量=磁头数×柱面数×扇区数×512字节。

#fdisk -l /dev/sda

六、MBR,GPT结构

MBR:Master Boot Record,主分区引导记录。最早在1983年在IBM PC DOS 2.0中提出。

每个扇区/区块都被分配了一个逻辑块地址,即LBA,而引导扇区则是每个分区的第一扇区,而主引导扇区则是整个硬盘的第一扇区(主分区的第一个扇区)。

MBR就保存在主引导扇区中。

另外,这个扇区里还包含了硬盘分区表DPT(Disk Partition Table),和结束标志字(Magic number)。

扇区总计512字节,MBR占446字节(0000H - 01BDH),DPT占据64个字节(01BEH - 01FDH),最后的magic number占2字节(01FEH – 01FFH)。

0磁道0扇区:512bytes

446bytes: boot loader 启动相关

64bytes:分区表,其中每16bytes标识一个分区

2bytes: 55AA,标识位

MBR分区中一块硬盘最多有4个主分区,也可以3主分区+1扩展(N个逻辑分区)

MBR分区:主和扩展分区对应的1--4,/dev/sda3,逻辑分区从5开始,/dev/sda5

0

0

0

MBR记录的实例:

80 01 01 00, 0B FE BF FC, 3F 00 00 00, 7E 86 BB 00

其中, “80”是一个分区的激活标志,表示系统可引导;“01 01 00”表示分区开始的磁头号为01,开始的扇区号为01,开始的柱面号为00;“0B”表示该分区的系统类型是FAT32,其他比较常用的有04(FAT16)、07(NTFS);“FE BF FC”表示分区结束的磁头号为254,分区结束的扇区号为63、分区结束的柱面号为764;“3F 00 00 00”表示首扇区的相对扇区号为63;“7E 86 BB 00”表示总扇区数为12289622。

GPT分区

GPT:GUID(Globals Unique Identifiers) partition table 支持128个分区,使用64位,支持8Z( 512Byte/block )64Z ( 4096Byte/block)

使用128位UUID(Universally Unique Identifier) 表示磁盘和分区 GPT分区表自动备份在头和尾两份,并有CRC校验位

UEFI (Unified Extensible Firmware Interface 统一可扩展固件接口)硬件支持GPT,使得操作系统可以启动

GPT分区结构

0

GPT分区结构分为4个区域:

GPT头

分区表

GPT分区

备份区域

相较于MBR,GPT具有以下优点:

(1)得益于LBA提升至64位,以及分区表中每项128位设定,GPT可管理的空间近乎无限大,假设一个扇区大小仍为512字节,可表示扇区数为,算下来,可管理的硬盘容量=18EB(1EB=1024PB=1,048,576TB),2T在它面前完全不在话下。按目前的硬盘技术来看,确实近乎无限,不过,以后的事谁知道呢。

(2)分区数量几乎没有限制,由于可在表头中设置分区数量的大小,如果愿意,设置个分区也可以(有人愿意管理这么多分区吗),不过,目前windows仅支持最大128个分区。

(3)自带保险,由于在磁盘的首尾部分各带一个GPT表头,任何一个受到破坏后都可以通过另一份恢复,极大地提高了磁盘的抗性(两个一起坏的请出门买彩票)。

(4)循环冗余检验值针对关键数据结构而计算,提高了数据崩溃的检测几率。

(5)尽管目前分区类型不超过百数(十数也没有吧。),GPT仍提供了16字节的GUID来标识分区类型,使其更不容易产生冲突。

(6)每个分区都可以拥有一个特别的名字,最长72字节,足够写一首七律了。满足你的各种奇葩起名需求。

完美支持UEFI,毕竟它就是UEFI规范的衍生品。在将来全行业UEFI的情境下,GPT必将更快淘汰MBR。

七、分区,文件系统管理,SWAP管理相关的命令及选项

lsblk 列出块设备
fdisk 创建分区命令:管理MBR分区 fdisk -l [-u] [device...]查看分区fdisk [device...]管理MBR分区 p 分区列表t 更改分区类型n 创建新分区d 删除分区v 校验分区u 转换单位w 保存并退出q 不保存并退出
gdisk 创建分区命令:管理GPT分区 gdisk [device...]类fdisk 的GPT分区工具
parted 创建分区命令:高级分区操作,可以是交互或非交互方式
partprobe 重新设置内存中的内核分区表版本,适合于除了CentOS 6 以外的其它版本 5,7,8
parted 磁盘分区;parted的操作都是实时生效的,小心使用 parted [选项]... [设备 [命令 [参数]...]...] parted /dev/sdb mklabel gpt|msdosparted /dev/sdb printparted /dev/sdb mkpart primary 1 200 (默认M)parted /dev/sdb rm 1parted -l列出所有硬盘分区信息
cat /proc/partitions 查看内核是否已经识别新的分区
新增分区用partx -a /dev/DEVICEkpartx -a /dev/DEVICE -f: force#示例:[root@centos6 ~]#partx -a /dev/sda CentOS6 通知内核重新读取硬盘分区表
删除分区用partx -d --nr M-N /dev/DEVICE#示例:[root@centos6 ~]#partx -d --nr 6-8 /dev/sda
echo -e 'n\np\n\n\n+2G\nw\n' | fdisk /dev/sdc 非交互式创建分区
partx -a /dev/sda 同步分区表
支持的文件系统 /lib/modules/uname -r/kernel/fs
cat /proc/filesystems
mkfs 创建文件系统 mkfs.FS_TYPE /dev/DEVICE FS_TYPE:ext4xfsbtrfsvfat
mkfs -t FS_TYPE /dev/DEVICE -L 'LABEL' 设定卷标
mke2fs ext系列文件系统专用管理工具 -t {ext2|ext3|ext4|xfs} 指定文件系统类型-b {1024|2048|4096} 指定块 block 大小-L ‘LABEL’ 设置卷标-j 相当于 -t ext3, mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3-i# 为数据空间中每多少个字节创建一个inode;不应该小于block大小-N# 指定分区中创建多少个inode-I 一个inode记录占用的磁盘空间大小,128---4096-m# 默认5%,为管理人员预留空间占总空间的百分比-O FEATURE[,...] 启用指定特性-O ^FEATURE 关闭指定特性
blkid 可以查看块设备属性信息 blkid [OPTION]... [DEVICE] -U UUID 根据指定的UUID来查找对应的设备-L LABEL 根据指定的LABEL来查找对应的设备
e2label 管理ext系列文件系统的LABEL e2label DEVICE [LABEL]
findfs 查找分区 findfs [options] LABEL=findfs [options] UUID= #findfs UUID=f7f53add-b184-4ddc-8d2c-5263b84d1e15#findfs sed -En '/data/s#^([^ ]+).*#\1#p' /etc/fstab
tune2fs 重新设定ext系列文件系统可调整参数的值 -l 查看指定文件系统超级块信息;super block-L 'LABEL’ 修改卷标-m # 修预留给管理员的空间百分比-j 将ext2升级为ext3-O 文件系统属性启用或禁用, -O ^has_journal-o 调整文件系统的默认挂载选项,-o ^acl-U UUID 修改UUID号
dumpe2fs 显示ext文件系统信息,将磁盘块分组管理 -h:查看超级块信息,不显示分组信息#dumpe2fs /dev/sda1
xfs_info 显示示挂载或已挂载的 xfs 文件系统信息 xfs_info mountpoint|devname #xfs_info /dev/sda7
fsck 文件系统检测和修复 fsck.FS_TYPEfsck -t FS_TYPE 注意:一定不要在挂载状态下执行下面命令修复FS_TYPE 一定要与分区上已经文件类型相同-a 自动修复-r 交互式修复错误
e2fsck ext系列文件专用的检测修复工具 -y 自动回答为yes-f 强制修复-p 自动进行安全的修复文件系统问题
xfs_repair xfs文件系统专用检测修复工具 -f 修复文件,而设备-n 只检查-d 允许修复只读的挂载设备,在单用户下修复 / 时使用,然后立即reboot
修改破坏的ext文件系统 [root@centos8 ~]#mount /dev/sdb2 /mnt[root@centos8 ~]#cp /etc/fstab /mnt/f1[root@centos8 ~]#cp /etc/fstab /mnt/f2[root@centos8 ~]#ls /mnt[root@centos8 ~]#dd if=/dev/zero of=/dev/sdb2 bs=1M count=1[root@centos8 ~]#ls /mnt[root@centos8 ~]#tune2fs -l /dev/sdb2[root@centos8 ~]#df[root@centos8 ~]#umount /mnt[root@centos8 ~]#e2fsck /dev/sdb2[root@centos8 ~]#e2fsck /dev/sdb2 -y[root@centos8 ~]#tune2fs -l /dev/sdb2[root@centos8 ~]#mount /dev/sdb2 /mnt[root@centos8 ~]#ls /mnt[root@centos8 ~]#cat /mnt/f1
mount 挂载文件系统 mount [-fnrsvw] [-t vfstype] [-o options] device mountpointdevice:指明要挂载的设备设备文件:例如:/dev/sda5卷标:-L 'LABEL', 例如 -L 'MYDATA'UUID: -U 'UUID':例如 -U '0c50523c-43f1-45e7-85c0-a126711d406e'伪文件系统名称:proc, sysfs, devtmpfs, configfsmountpoint:挂载点目录必须事先存在,建议使用空目录mount 常用命令选项-t fstype 指定要挂载的设备上的文件系统类型,如:ext4,xfs-r readonly,只读挂载-w read and write, 读写挂载,此为默认设置,可省略-n 不更新/etc/mtab,mount不可见-a 自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,且挂载选项中有auto功能)-L 'LABEL' 以卷标指定挂载设备-U 'UUID' 以UUID指定要挂载的设备-B, --bind 绑定目录到另一个目录上
-o options:(挂载文件系统的选项),多个选项使用逗号分隔async异步模式,内存更改时,写入缓存区buffer,过一段时间再写到磁盘中,效率高,但不安全sync同步模式,内存更改时,同时写磁盘,安全,但效率低下atime/noatime 包含目录和文件diratime/nodiratime 目录的访问时间戳auto/noauto 是否支持开机自动挂载,是否支持-a选项exec/noexec 是否支持将文件系统上运行应用程序dev/nodev 是否支持在此文件系统上使用设备文件suid/nosuid 是否支持suid和sgid权限remount 重新挂载ro/rw 只读、读写user/nouser 是否允许普通用户挂载此设备,/etc/fstab使用acl/noacl 启用此文件系统上的acl功能loop 使用loop设备_netdev当网络可用时才对网络资源进行挂载,如:NFS文件系统defaults 相当于rw, suid, dev, exec, auto, nouser, async挂载规则:一个挂载点同一时间只能挂载一个设备一个挂载点同一时间挂载了多个设备,只能看到最后一个设备的数据,其它设备上的数据将被隐藏一个设备可以同时挂载到多个挂载点通常挂载点一般是已存在空的目录
umount 卸载文件系统 umount 设备名|挂载点
查看挂载情况 通过查看/etc/mtab文件显示当前已挂载的所有设备mount#查看内核追踪到的已挂载的所有设备cat /proc/mounts查看挂载点情况findmntMOUNT_POINT|device查看正在访问指定文件系统的进程lsof MOUNT_POINTfuser -v MOUNT_POINT终止所有在正访问指定的文件系统的进程fuser -km MOUNT_POINT
swapon 启用swap分区 swapon [OPTION]... [DEVICE] -a#激活所有的交换分区-p PRIORITY #指定优先级(-1到32767之间),值越大,优先级越高.也可在/etc/fstab文件中的第4列指定:pri=value
创建swap分区 [root@centos8 ~]#echo -e 'n\np\n\n\n+2G\nt\n82\nw\n' | fdisk /dev/sdc[root@centos8 ~]#mkswap /dev/sdc1[root@centos8 ~]#blkid /dev/sdc1[root@centos8 ~]#vim /etc/fstabUUID=d3140a7a-65b7-4cb7-8a2b-12d38aa98c6f swapswap defaults 0 0[root@centos8 ~]#swapon -a[root@centos8 ~]#free -h[root@centos8 ~]#cat /proc/swaps
swapoff 禁用swap分区 swapoff [OPTION]...[DEVICE] [root@centos8 ~]#sed -i.bak '/swap/d' /etc/fstab[root@centos8 ~]#swapoff -a
以文件实现swap功能 [root@centos8 ~]#dd if=/dev/zero of=/swapfile bs=1M count=1024[root@centos8 ~]#mkswap /swapfile[root@centos8 ~]#blkid /swapfile >> /etc/fstab[root@centos8 ~]#/etc/fstab/swapfile swapswapdefaults0 0 #不要用UUID,使用文件的路径[root@centos8 ~]#chmod 600 /swapfile[root@centos8 ~]#swapon -a[root@centos8 ~]#swapon -s

标签:,字符,分区,dev,挂载,root,centos8
From: https://www.cnblogs.com/meishijia8/p/17965823

相关文章