DAY DAY UP 2

  1. 总结vim的三种模式切换,配置vimrc实现写脚本自动生成注释。
  2. 使用grep/sed实现获取/etc/sysconfig/network-script/ifcfg-eth0目录的/etc/sysconfig/network-script/。或获取目录的ifcfg-eth0
  3. 完成编程题,可以让用户选择当前主机的所有网卡,选中网卡后,获取ip,网段,掩码。通过ping命令检测在线的主机,打印在线的主机,写入一个文件中。当ip的结尾是奇数时,在目标主机或当前主机,批量添加user1到user100用户,否则添加group1到group100,并生成对应的用户user1到user100,让用户的过期时间在1天之后。
  4. 总结分区,格式化,挂载命令的使用。
  5. 总结RAID特性,LVM特性。
  6. 准备20G/30G的2个分区,生成VG,并创建10G的mylv,
    基于LVM,将10G的LV格式化挂载分区到/data/mysql, 添加gentoo用户,指定家目录为/data/mysql,确保/data/mysql的权限是gentoo用户,并切换确保gentoo用户家目录正常,之后复制/etc/sysconfig到gentoo家目录。
    此时扩容mylv到20G,确保数据不丢失。
    之后缩容mylv到5G确保数据不丢失。
    现在基于mylv生成快照,修改或删除原卷中的数据,基于快照卷还原数据。

1. 总结vim的三种模式切换,配置vimrc实现写脚本自动生成注释。

三种主要模式和转换

vim是一个模式编辑器,击键行为是依赖于vim的“模式”
三种常见模式:
命令或普通模式:默认模式,可以实现移动光标,剪切/粘贴文本
插入或编辑模式:用于修改文本
扩展命令或命令行模式:保存,退出登

模式转换
命令模式–>插入模式
i insert,在光标所在处输入
I:在当前光标所在行行首输入
a:append,在光标所在处后面输入
A:在当前光标所在行行尾输入
o:当前光标所在行下方打开一个新行
O:当前光标所在行上方打开一个新行

插入模式—ESC------>命令模式
命令模式-----:----->扩展命令模式
扩展命令模式----ESC,enter---->命令模式

扩展命令模式
按“:”进入Ex模式,创建一个命令提示符:处于底部的屏幕左侧

扩展命令模式基本命令
:w 保存不退出
:w filename :保存至另一个文件
:r filename :读取一个文件内容到光标处
:x :和wq一样,保存退出(但不推荐)
:X(大写) :加密,cat后是乱码,要解密就vim进去X,直接enter清空密码
:! 命令 :不退出vim编辑的情况下输入命令查看
:r! 命令 :读取命令的执行结果到vim编辑的光标下

地址定界后跟一个编辑命令
d 删除
y 复制
w file 将范围内的行另存指定文件中
r file 在指定位置插入指定文件中的所有内容
t # 将前面指定的行复制到#行后
m# 将前面指定的行移动到#行后

扩展命令模式

查找并替换
s /查找的内容/替换的内容/修饰符
从本行的开头向后搜索,如果只处理匹配第一个满足条件的字符串,则为懒惰模式
从本行的开头向后搜索,如果处理匹配每一个满足条件的字符串,则为贪婪模式

懒惰模式,只替换每一行第一个
在这里插入图片描述
贪婪模式,g(global),全局
在这里插入图片描述

将/dev/sd 替换为/test/vd
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
或者
在这里插入图片描述
在这里插入图片描述即///等同于@@@,只要替换其中的值就能生效

命令模式

命令模式,又称为normal模式,功能强大,只是此模式输入指令不在屏幕上显示,所以需要记忆大量的快捷键才能更好的使用

退出vim
ZZ:保存退出
ZQ:不保存退出
不建议,看不出来

光标跳转
字符间跳转:h左;L右;j下;k上

单词间跳转
w:下一个单词的词首
e:当前或下一个单词的词尾
b:当前或前一个单词的词首

当前页跳转
H:页首
M:页中
L:页底
zt:光标所在当前行移动到屏幕顶端
zz:光标所在当前行移动到屏幕中间
zb:光标所在当前行移动到屏幕底端

行首行尾跳转
^ 跳转至行首第一个非空白字符
0 跳转至行首
$ 跳转至行尾

行间移动
#G 或者扩展命令模式下,输入数字,enter
G 最后一行
1G,gg 第一行

命令模式翻屏操作
ctrl+f 向文件尾部翻一屏,相当于pagedown
ctrl+b 向文件首部翻一屏,相当于pageup
ctrl+d 向文件尾部翻半屏
ctrl+u 向文件首部翻半屏

字符编辑
x 剪切光标处的字符
xp 交换光标所在处字符及后面字符的位置

替换命令
r 只替换光标所在处的一个字符
R 进入到替换模式

删除命令
d 删除命令,可结合光标跳转字符,实现范围删除
d$ 删除到行尾
d^ 删除到非空行首
d0 删除到行首
dd 剪切光标所在行
#dd 自光标处开始算,多行删除

复制命令
y 复制,行为相似于d命令
y$
y0
y^
ye
yy 复制行
#yy 自光标下,多行复制

粘贴
P(大写) 缓冲区如果为整行,粘贴当前光标所在行的下方;否则,粘贴当前光标所在行的后方
p(小写) 缓冲区如果为整行,粘贴当前光标所在行的上方;否则,粘贴当前光标所在行的前方

改变命令
命令c删除后切换成出入模式
c$
c^
c0
cw
cc 相当于c$

查找
/
n:与命令同方向
N:与命令反方向

撤销更改
u: 撤销最近的更改,相当于ctrl+z
ctrl-r 撤销多了,反撤销
. 重复前一个操作
#. 重复前一个操作#条

可视化模式
v 面向字符
V 面向整行
ctrl-v 面向块
在这里插入图片描述
在这里插入图片描述
1~6列加#
1.光标定位要操作的地方
2.ctrl+v选中第一个字母
3.shift+i
4.输入要输入的内容
5.ecs退出

多窗口模式
多文件分割
vim -o|-O file1 file2…
vim -o file1 file2… 垂直分屏
vim -O file1 file2… 水平分屏
在窗口间切换:ctrl+w,垂直用↑↓,水平用←→
多文件退出的话qall,即指令后加all

单文件分割
ctrl+w,s:split,水平分割,上下分屏
ctrl+w,v:vertical,垂直分割,左右分屏
ctrl+w,q:取消相邻窗口
ctrl+w,o:取消全部窗口
:wqall 退出

vim工具查看使用:vimtutor

配置vimrc实现写脚本自动生成注释

在用户家目录创建.vimrc的文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. 使用grep/sed实现获取/etc/sysconfig/network-script/ifcfg-eth0目录的/etc/sysconfig/network-script/。或获取目录的ifcfg-eth0

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. 完成编程题,可以让用户选择当前主机的所有网卡,选中网卡后,获取ip,网段,掩码。通过ping命令检测在线的主机,打印在线的主机,写入一个文件中。当ip的结尾是奇数时,在目标主机或当前主机,批量添加user1到user100用户,否则添加group1到group100,并生成对应的用户user1到user100,让用户的过期时间在1天之后。

#!/bin/bash
#
#**********************************************************
#Author:		pangchuan
#QQ:			1017382990
#Date:			2022-09-14
#Filename:		useradd.sh
#Url:			https://blog.csdn.net/m0_51692510?type=blog
#Description:	The test script
#***************************************************************
echo -e "\E[1;$[$RANDOM%7+31]m有以下网卡可供选择:\E[0m"
ip a|grep ^[1-9]|awk -F: '{print$2}'
read -p "请选择输入网卡:" device
ip=$(ifconfig ${device}|sed -n '/netmask/p'|tr -s ' '|cut -d' ' -f3)
mask=$(ifconfig ${device}|grep inet|head -n1|tr -s ' ' |cut -d' ' -f5)
network=$(echo $ip|sed -nr 's@^(.*)\.[0-9]{1,3}@\1@p')
echo -e "\E[1;$[$RANDOM%7+31]m以下网卡的ip,子网掩码,网段分别为:\E[0m"
#打印所选的网卡ip,子网,网段
echo $ip,$mask,$network
#打印网段内能ping通的ip到当前目录ping.txt下
for i in {1..50};do
ping -c1 -w1 ${network}.${i} > /dev/null && echo ${network}.${i} >> ping.txt
done
#判断网卡是否为奇数,为奇数,就批量添加user1到user100用户,否则添加group1到group100,并生成对应的用户user1到user100,让用户的过期时间在1天之后。(这里取15个)
net=$(echo $ip|awk -F"." '{print $4}')
if [ $[$net%2] -eq 1 ] ;then
    for i in {1..15};do
        useradd -N -e `date -d next-day +%F` user$i
    done
else
    for i in {1..15};do
        groupadd group${i}
        useradd -N -e `date -d next-day +%F` user$i
        gpasswd -a user$i group$i
    done
fi

4. 总结分区,格式化,挂载命令的使用。

分区方式:MBR和GPT

MBR分区
MBR:使用32位表示扇区数,分区不超过2T
划分分区的单位:
CentOS5前按柱面划分
CentOS6版本后可以按Sector划分
MBR分区中一块硬盘最多有4个主分区,也可以3主分区+1扩展(N个逻辑分区)
MBR分区:主和扩展分区赢得1–4,/dev/sda3,逻辑分区从5开始,/dev/sda5

GPT分区
GPT:支持128个分区,使用64位
gpt比较新,兼容性不如mbr,支持128个分区
GPT分区结构分为4个区域:
GPT头
分区表
GPT分区
备份区域

管理分区
列出块设备
lsblk
在这里插入图片描述

创建分区命令
fdisk 管理MBR分区
gdisk 管理GPT分区

分区工具fdisk
fdisk -l [-u] [device…] 查看分区
fdisk [device…] 管理MBR分区
gdisk [device…] 类fdisk的GPT工具

子命令
p: 分区列表
t:更改分区类型
n:创建新分区
d:删除分区
w:保存并退出
q:不保存并退出

文件系统

文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构。把数据以文件的形式管理,可以在磁盘上建立、删除文件等

文件系统类型
目前Linux系统建议用xfs(红帽centos7推荐);ext4(历史悠久,建议),出错容易恢复数据

查看硬盘的文件系统
lsblk -f
在这里插入图片描述
创建文件管理工具
格式化
mkfs命令
mkfs.FS_TYPE/dev/DEVICE
ext4
xfs
vfat
mkfs2fs:ext系列文件系统专用管理工具

常用选项
-t {ext2|ext3|ext4xfs} 指定文件系统类型
-b {1024|2048|4096} 指定block大小

文件系统检测和修复
文件系统故障发生于死机或者非正常关机之后,挂载为文件系统标记为“no clean”
注意:不要在挂在状态下执行命令修复
fsck:File System Check
fsck.FS_TYPE
注意:FS_TYPE一定要与分区上已经使用的文件系统类型相同

e2fsck:ext系列专用检测修复工具
xfs_repair:xfs文件系统专用检测修复工具

挂载
在这里插入图片描述
挂载格式
mount device mountpoint
device:指明要挂载的设备
mountpoint:挂载点目录必须事先存在,建议使用空目录
在这里插入图片描述

挂载规则:
一个挂载点同一时间只能挂载在一个设备
同一个设备可同时挂载到多个挂载点
通常挂载点存在空目录中

5.总结RAID特性,LVM特性。

RAID把多个硬盘组合成一个逻辑硬盘,操作系统只会把它当作一个实体硬盘,RAID常被用在服务器电脑上,而且常使用相同的硬盘作为组合。
RAID和操作系统无关,在操作系统之前。
阵列:多块硬盘组成一个集合。

RAID 0:

在系统中,可能是A硬盘,来自于两个硬盘的集合。100M数据,各放50M,可以实现并行写入,读入,速度更快;一个硬盘坏了,丢失一半数据,整个硬盘数据就无效了。生产中不用,不安全,会家用。俗称条带集。

RAID 1:

两两互相备份,数据一样。RAID1防止不了误删除,disk0删了数据,disk1也删,只能防止disk0损坏,disk1数据不丢。写数据性能不会提升,读会提升。

RAID 4:

Ap:通过某种特殊算法,相当于(A1+A2+A3)的数据
假设A2坏了,通过A1,A3,Ap反算回来,具有容错性,磁盘利用率3/4
至少3块硬盘坐RAID 4
n块磁盘的利用率n-1/n
可以达到并行读写的效果
实验证明效验盘老容易坏,坏的比例高,所以不怎么用了

RAID 5:

每个硬盘都有效验位,所以每个硬盘失败的几率一样,生产中使用较多。
最少需要3块磁盘。
坏一块硬盘,可以算出来,坏两块就不行了。

RAID 6:

两个校验位,可以算两个未知数,磁盘利用率n-2/n。
最少4块,可以允许2块损坏。

RAID 10:

先做RAID1,再做RAID0

RAID10和RAID01
都是50%利用率,RAID10,disk0坏了,disk1也坏了,就完了;失败几率1/3
RAID01,disk坏了,disk2,disk3有一块坏了,就完了;2/3
所以生产中,建议RAID10

各RAID之间比较

在这里插入图片描述

LVM逻辑卷

可以允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小,允许在多个物理设备间重新组织文件系统。
LVM可以弹性的更改LVM容量

实现过程:
1.将设备指定为逻辑卷
2.用一个或多个物理卷来创建一个卷组,物理卷是用来固定打下的物理区域来定义的
3.在物理卷上创建的逻辑卷,由物理区域组成
4.可以在逻辑卷上创建文件系统并挂载

6. 准备20G/30G的2个分区,生成VG,并创建10G的mylv,基于LVM,将10G的LV格式化挂载分区到/data/mysql, 添加gentoo用户,指定家目录为/data/mysql,确保/data/mysql的权限是gentoo用户,并切换确保gentoo用户家目录正常,之后复制/etc/sysconfig到gentoo家目录。此时扩容mylv到20G,确保数据不丢失。之后缩容mylv到5G确保数据不丢失。现在基于mylv生成快照,修改或删除原卷中的数据,基于快照卷还原数据。

这里将大小重新设置,修改为准备5G/10G的2个分区,生成VG,并创建5G的mylv,基于LVM,将5G的LV格式化挂载分区到/data/mysql, 添加gentoo用户,指定家目录为/data/mysql,确保/data/mysql的权限是gentoo用户,并切换确保gentoo用户家目录正常,之后复制/etc/sysconfig到gentoo家目录。此时扩容mylv到10G,确保数据不丢失。之后缩容mylv到5G确保数据不丢失。现在基于mylv生成快照,修改或删除原卷中的数据,基于快照卷还原数据。

1.新增2个硬盘,分别为5G,10G
在这里插入图片描述
2.识别添加的硬盘
在这里插入图片描述
fdisk -l查看或者lsblk
在这里插入图片描述在这里插入图片描述

3.创建物理卷
在这里插入图片描述
在这里插入图片描述
4.创建卷组
在这里插入图片描述
5.创建逻辑卷mylv
在这里插入图片描述
6.创建文件系统,格式化分区
在这里插入图片描述
在这里插入图片描述
7.永久挂载到/data/mysql 下
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
8.添加gentoo用户,指定家目录为/data/mysql,之后复制/etc/sysconfig到gentoo家目录
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
9.扩容mylv到10G
在这里插入图片描述
在这里插入图片描述
10.缩容mylv到5G
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
11.基于mylv生成快照,修改或删除原卷中的数据,基于快照卷还原数据。
#创建快照
在这里插入图片描述
#创建挂载点并挂载
在这里插入图片描述在这里插入图片描述在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
def dayUP(df)是一个函数的定义,它的参数是df。这个函数用于计算工作日的力量。在365天的循环中,如果i除以7的余数是6或0,表示是周末,那么力量会减少1%,否则力量会增加df倍。最后返回计算得到的力量值。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [第三周-Python基本数据类型_01](https://blog.csdn.net/qq_45738379/article/details/104411758)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [【学习笔记】Python语言程序设计 北理工-嵩天](https://blog.csdn.net/weixin_45532870/article/details/122288723)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [【Python】实例3:天天向上的力量与微实例:星期转换、恺撒密码](https://blog.csdn.net/m0_65198365/article/details/123404938)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值