linux基础知识

本文详细介绍了Linux系统中的磁盘分区规则,包括主分区、扩展分区和逻辑分区。讨论了RAID技术,如RAID0、RAID1和RAID10的创建与管理,以及LVM的物理卷、卷组和逻辑卷的概念与操作。此外,还涵盖了用户和用户组的创建、权限管理和密码策略。
摘要由CSDN通过智能技术生成

linux基础知识

(一)磁盘管理

硬盘在使用前需要对其进行分区,磁盘分区原理与规则如下:

磁盘分区类型:

主分区,扩展分区,逻辑分区

分区规则:主分区+扩展分区的数量不能超过4个,且扩展分区只能由1个

逻辑分区要在扩展分区要划分,逻辑分区没有数量限制,可以任意个

扩展分区不能直接使用的,他是以逻辑分区的方式来使用的,所以说扩展分区可分为若干逻辑分区,他们的关系是包含的关系,所有的逻辑分区都是扩展分区的一部分

硬盘的容量=主分区的容量+扩展分区的容量:扩展分区的容量=各个逻辑分区的容量之和

fdisk划分新磁盘并挂载

例如:

fdisk /dev/sdb 要划分的设备名

输入n 对磁盘创建分区

输入p

输入1

回车

输入要划分的大小

输入w保存退出

格式化分区

mkfs.xsf -f /dev/sdb1

mkfs -t xfs /dev/sdb1

这两条命令都可以格式化分区

挂载分区

mount /dev/sdb1 /mnt/raid1

echo “test sdb1” > /mnt/raid1/1.txt 挂载后使用测试

设置开机启动自动挂载(3种)

echo ”/dev/sdb1 /mnt/raid1 xfs defualt 0 0" > /etc/fstab

tee -a /etc/fstab <<eof

/dev/sdb1 /mnt/sdb1 xfs defaults 0 2

eof

cat <> /etc/fstab

/dev/sdb1 /mnt/sdb1 xfs defaults 0 2

eof

使用dd对磁盘进行读写测试,设置读入/输出的块大小为1Mbytes字节,读写测试为1000次,且将数据输入到/dev/zero 输出到txt并记录时间(两个方法)

time dd if=/dev/zero of=txt bs=1M count=1000

dd if=/dev/zero of=txt bs=1M count=1000 conv=fdatasync

使用mdadm工具创建md0的RIAD0块设备

mdadm是一个用于管理RAID设备的工具,RAID磁盘阵列是一种通过将多个物理硬盘组合起来作为单个逻辑设备用来提高数据容错性和性能的技术

RAID 即独立冗余磁盘阵列,其思想是将多块独立的磁盘按不同的方式组 合成一个逻辑磁盘,从而提高存储容量,提升存储性能或提供数据备份功能。 RAID 阵列技术允许将一系列磁盘分组,以实现为数据保护而必需的数据 冗余,以及为提高读写性能而形成的数据条带分布。RAID 最初用于高端服务 器市场,不过随着计算机技术的快速发展,RAID 技术已经渗透到计算机遍布 的各个领域。如今,在家用电脑主板中,RAID 控制芯片也随处可见。

常用的语法

mdadm 
-C --create:为新建 raid 的参数
-a --auto=yes:决定新建后面接的软件磁盘阵列设备,即/dev/md0,
/dev/md1 等
-l --level=[015] :设置磁盘阵列等级
-n --raid-devices=N:使用几个磁盘作为磁盘阵列的设备
-x --spare-devices=N:使用几个磁盘作为备用设备
查看 RAID 详细信息
mdadm --detail /dev/md0 或 mdadm –D /dev/md0
-D --detail:列出后面所接的那个磁盘阵列设备的详细信息
-s --scan:扫描配置文件或 /proc/mdstat 以搜寻丢失的信息
  1. 使用mdadm工具创建md0的RIAD块设备,磁盘包括两块/dev/sdb1 /dev/sdc(必须先用fdisk划分出两块磁盘来)

mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdb1 /dev/sdc1

-C 创建新设备

-l 指定RAID设备级别

-a 向设备添加新磁盘

-n 设备中包含的磁盘块数

  1. 使用mdadm工具查看/dev/md0块设备详细信息
mdadm -D /dev/md0
  1. 使用mkfs工具对/dev/md0进行格式化,文件系统使用xfs
  1. 查看RAID设备的UUID

mdadm -D /dev/md0 | grep uuid

blkid | grep md0

bkild /dev/md0

  1. 设置开机自启动设备RAID

mdadm -Ds /dev/md0 > /etc/mdadm.conf

mdadm -D -S -V /dev/md0 > /etc/mdadm.conf

  1. 设置自动挂载,将挂载信息写入到/etc/fstab文件后

echo “/dev/md0 /mnt/raid0 xfs default 0 0” >> /etc/fstab

将sdc1状态设置为故障

mdadm /dev/md0 -f /dev/sdc1

/etc/mdadm.conf 作为默认的配置文件,主要作用是方便跟踪软 RAID 的配 置,尤其是可以配置监视和事件上报选项。 使用配置文件启动阵列时,mdadm 会查询配置文件中的设备和阵列内容, 然后启动运行所有能运行的 RAID 阵列。

/proc/mdstat 文件 这个文件包含了由 md 设备驱动程序控制的 RAID 设备信息

创建LV并挂载使用

LVM中的PV、PE、VG、LV之间的关系与作用、

  1. PV(Physical Volume):物理卷,通常指硬盘或分区。PV是LVM存储结构的最底层,它负责管理磁盘上的原始数据。
  2. PE(Physical Extent):物理区块,是LVM中的最小单位。每个PE通常有1MB大小,用于划分PV的空间。一个PV可被分成多个PE。
  3. VG(Volume Group):卷组,是由一个或多个PV组成的逻辑卷。VG可以由多个硬盘或分区组成,系统将其作为一个大容量设备来使用。
  4. LV(Logical Volume):逻辑卷,是从VG分配的虚拟磁盘设备,它可以进行格式化并挂载到文件系统中,就像普通的硬盘一样。在LVM中,LV是用户能直接使用的资源。
与逻辑卷LVM相关命令

PV相关:pvdisplay pvscan pvcreate pvremove

VG相关:vgdisplay vgscan vgcreate

LV相关:lvdisplay lvscan lvcreate

前提:使用fdisk 划分磁盘/dev/sdb1和/dev/sdb2

  1. 将/dev/sdb1分区和/dev/sdc磁盘定义为物理卷,并且查看/dev/sdb1物理信息
pvcreate /dev/sdb1 /dev/sdc
pvdisplay /dev/sdb1
  1. 为IT部门创建一个卷组,名称为itvg,包含上面的2个物理卷,且指定PE大小为16M,并且扫描系统卷组信息
vgcreate -s 16M
vgscan   扫描系统卷组信息
vsdisplay  显示卷组信息
  1. 将/dev/sdb2分区加入到该卷组itvg增加其容量
vgxtend  itvg /dev/sdb2
  1. 在itvg卷组下,创建一个逻辑卷itlv01,指定其大小为5G
lvcreate -L 5G 0n itlv01 itvg
lvscan 扫描系统逻辑卷信息
lvdisplay  查看系统逻辑卷信息
  1. 格式化itlv01 ,文件格式为xfs
mkfs.xfs /dev/itvg/itlv01
  1. 创建/srv/itlvm ,并将/dev/itvg/itlv01 挂载到/srv/itlvm
mkdir /srv/itlvm
mount /dev/itvg/itlv01 /srv/itlvm
  1. 使用df检查/srv/itlvm的文件系统信息
df -Th /srv/itlvm
实战题
创建RAID10并挂载使用

题目:ABC 公司有一台服务器,已安装 CentOS7 操作系统。由于公司业务数据存 储非常重要,为了确保数据的可靠性与可用性,而且对数据的读写速度也较 高,IT 技术部门决定采用 RAID10 技术实现数据的冗余备份,以保证数据的高 可用性和可恢复性。 为了保证正常上线,IT 技术人员首先在一台 Linux 虚拟机上进行 RAID10 实现过程的模拟。RAID10 是 RAID1+RAID0 技术的一个“组合体”,RAID10 技术需要至少 4 块硬盘(或分区)来组建,其中先分别两两制作成 RAID1 磁盘 阵列,以保证数据的安全性;然后再对两个 RAID1 磁盘阵列实施 RAID0 技 术,进一步提高硬盘设备的读写速度。

【实训要求】 需求分析,实现 RAID10 可以有两种方法:第一种是先实现 RAID1,然后 对 RAID1 实现 RAID0;第二种是一次生成 RAID10。在此实训中采用第一种方 法实现。具体要求下:

  1. 对硬盘 sdb,sdc 进行分区,创建 2 个主分区,分区大小为 10G;并修改分区 类型 Hex code 为 fd。

fdisk /dev/sdb m -n-p-1-+10G-t-fd 每个硬盘分别创建两个分区

fdisk /dev/sdbc m -n-p-1-+10G-t-fd

  1. 创建第一组 RAID1,将 sdb1 和 sdc1 组成一组 RAID1,RAID 设备名称为 /dev/md0;查看 RAID 进度,并查看 RAID 信息。

mdadm -C /dev/md0 -l 5 -n 3 /dev/sdb1 /dev/sdc1

mdadm -D /dev/md0

  1. 创建第二组 RAID1,将 sdb2 和 sdc2 组成一组 RAID1,RAID 设备名称为 /dev/md1;查看 RAID 进度,并查看 RAID 信息。

mdadm -C /dev/md1 -l 5 -n 2 /dev/sdb2 /dev/sdc2

mdadm -D /dev/md1

  1. 创建 RAID0,利用/dev/md0 和/dev/md1 创建 RAID0,RAID 设备名称为/dev/md2; 查看 RAID 进度,并查看 RAID 信息。

mdadm -C /dev/md2 -l 5 -n 2 /dev/md0 /dev/md1

mdadm -D /dev/md2

  1. 生成配置文件,当 RAID 重新启动时会读取该配置文件。

echo "/dev/md2 /mnt/raid10 xfs default 0 2 " > /etc/fstab

  1. 创建文件系统,将/dev/md2 磁盘阵列格式为 XFS 文件系统。

mkfs.xfs -f /dev/md2

  1. 创建挂载点/mnt/raid10,将/dev/md2 磁盘阵列设备挂载使用。检查挂载点

mkdir /mnt/raid10

mount /dev/md2 /mnt/radi10

mount | grep /mnt/raid10

ls /mnt/raid10

  1. 将 /etc/services 文 件 复 制 到 RAID10 设 备 , 查 看 并 显 示 /mnt/raid10/services 最开头的部分内容。

cp /etc/services /mnt/raid10

head -n 2 /mnt/raid10/services

  1. 以树状结构查看设备和挂载情况,以及使用情况。

lsblk

  1. 查看 RAID10 设备的 UUID,设置开机自动启动 RAID 设备,并自动挂载,进行 测试并查看使用情况。

blkid | grep md2

mdadm -Ds /dev/md2 > /etc/mdadm.conf

df -Th

建立较复杂的LV卷

【任务场景】 ABC 公司有一台服务器,已安装 CentOS7 操作系统。由于公司业务数据量 比较大,挂载了一些硬盘扩充容量,同时也满足 IT 部门有足够的空间备份数 据。为了确保数据的可靠存储以及磁盘存储空间的充分利用和方便扩展,IT 技 术部门决定采用 LVM 技术将多个磁盘或分区的空间拼接在一起使用,并灵活地 进行扩容。

【实训要求】

  1. 环境准备: 对/dev/sdb 按照上面的要求进行分区,并指定分区类型为 LVM:在 /dev/sdb 上创建一个 4G 和 6G 的主分区,并定义主分区类型为 Linux LVM。

fdisk /dev/sdb ->n->p->1->+4G ->t->1->8e

fdisk /dev/sdb ->n->p->2->+6G ->t->2->8e

  1. 将/dev/sdb1 分区和/dev/sdc 磁盘定义为物理卷,并查看物理卷以及物理卷 信息。

pvcreate /dev/sdb1 /dev/sdc

pvdisplay /dev/sdb1

pvdisplay /dev/sdc

pvscan

  1. 请为 IT 部门创建一个卷组,名称为 itvg,包含上面的 2 个物理卷,且指定 PE 大小为 16M,创建后查看物理卷并显示其信息。

vgcreate -s 16M itvg /dev/sdb1 /dev/sdc

vgdisplay

vgscan

  1. 在创建上面的卷组 itvg 后,发现其容量有点小,决定将其进行扩容,把 /dev/sdb2 分区加入到该卷组 itvg 增加其容量;并查看扩容后的卷组的信 息。

vgextend itvg /dev/sdb2

  1. 在 itvg 卷组下,创建一个逻辑卷 itlv01,指定其大小为 5G;创建后查看逻 辑卷的信息。

lvcreate -L 5G -n itlv01 itvg

lvscan

  1. 对逻辑卷 itlv01 进行格式化,文件系统为 xfs;创建挂载点/srv/itlvm,将 文件系统挂载到该挂载点,查看该文件系统的使用情况。向该文件系统写入 文件进行测试,并在写入后查看使用情况。

mkfs.xfs -f /dev/itvg/itlv01

mkdir /srv/itlvm

mount /dev/itvg/itlv01 /srv/itlvm

df -Th /srv/itlvm

echo “test sdb” > /srv/itlvm/1.txt

df -h /srv/itlvm

  1. 在使用一段时间后,想要对 itlv01 卷调整容量大小,暂时准备增加 3G,由 于考虑到 itvg 卷组有足够的空闲容量,所以直接调整 itlv01 的大小,调整 后查看 LV 容量大小是否已扩容成功。再确认 itlv01 的文件系统大小是否也 增加了 3G?若没有增加,请扩展文件系统的大小,并在扩展前后查看文件系 统信息。

umont /srv/itlvm

lvresize -L +3G /dev/itlvm/itlv01

文件系统的大小并没有跟随LV的大小增加,需要进行文件系统大小的扩展。使用以下命令扩展xfs文件系统:

mount /dev/itvg/itlv01 /srv/itlvm

xfs_growfs /dev/itlvm/itlv01

df -h /srv/itlvm

  1. 在上面的 LVM 运行了一段时间后,考虑到容量增长的需要,决定将/dev/sdd 硬盘添加到物理卷组,并对 itvg 进行扩容。

pvcreate /dev/sdd

vgextend itvg /dev/sdd

(二)创建用户及用户组

重要的文件:

/etc/passwd

/etc/group

/etc/shadow

创建用户

创建用户test01

useradd test01

删除用户

userdel test01

为用户test01配置密码,密码为test01#123

echo “test01#123” | passwd --stdin test01

创建不可登录的测试用户

useradd -s /usr/sbin/nologin test02

useradd -s /sbin/nologin test02

使用id获取test02用户的UID及GID信息

id test02

创建系统用户,用户名为test03

useradd -r -s /sbin/nologin test03

-r选项表示创建一个系统用户;-s /usr/sbin/nologin选项表示指定不可登录的shell,即该用户不能登录到系统。

useradd -r test03

使用tail 获取/etc/passwd末尾5行内容

tail -n 5 /etc/passwd

创建用户组

创建用户组it

groupadd it

为开发部新建组,名称为developmen

groupadd developemen

新建用户李文账户名称为liwen,将李文加入到IT管理部的组it中

useradd -G it liwen

将已创建的用户账号添加到组钟

usermod -a -G it liwen

锁定账号密码

usermod -L wangjiaqi 锁定账号

passwd -l wangjiaqi 锁定密码

查看密码是否被锁定

passwd -S username

将账号密码解锁

usermod -u wangjiaqi

passwd -u wangjiaqi

对账号进行附属属性配置(用户资料)

chfn zhaodan 用于修改指定用户的个人资料。其中 zhaodan 是该命令要操作的用户名

然后根据提示进行资料输入

也可以使用命令或者修改文本方式,不过还是上面第一种方式更简便

  1. 邮箱绑定或手机号码绑定:可以通过将绑定邮箱或手机号码添加到用户信息中来实现。可以使用命令行工具 usermod 来修改用户信息,例如 sudo usermod -a -G mailgroup username 命令即可将用户添加到名为 mailgroup 的用户组,通过该用户组添加相应的邮箱等信息。
  2. 身份验证设置:可以通过修改 /etc/pam.d/common-auth 文件来启用某种身份验证方式,例如密保问题、短信验证等方式。也可以使用命令行工具 chage 来设置密码有效期限制,例如 sudo chage --maxdays 60 username 命令即可设置用户密码的最长有效期为 60 天。
  3. 访问权限设置:可以使用 chmodchown 等命令来设置文件和目录的权限。例如,使用命令 sudo chmod 700 /home/username 可以将用户主目录的访问权限设置为仅限于用户本人。
  4. 安全认证配置:可以通过修改 /etc/login.defs 文件来设置系统密码复杂度要求,例如最小密码长度、要求包含数字、字母大小写等内容。还可以使用第三方软件,如 Google Authenticator,来实现双因素认证功能。

指定账户为组的管理员(指定账户zhouwenhai为开发部的development组的管理员)

gpasswd -A zhouwenhai development

用于将用户 zhouwenhai 指定为开发部的 development 组管理员。该命令将添加 zhouwenhai 用户到 development 组管理组,并赋予其管理组的权限,其他普通组成员则不能进行该组的管理操作。

切换到zhouwenhai账户并将自己加入开发部组

gpasswd -a zhouwenhai development

gpasswd 命令用于管理 Linux 系统中的用户组。可以使用该命令创建、删除、修改和授权组成员等操作。

以下是常用选项:

  • -a user group: 添加用户到指定组中;
  • -d user group: 从指定组中删除用户;
  • -A user group: 指定组管理员;
  • -M user1,user2... group: 指定组成员名单;
  • -r group: 删除指定组的密码;
  • -R: 设置一个可重置的组密码。

例如,要将用户 zhouwenhai 添加到开发部的 development 组中,可以使用以下命令:

sudo gpasswd -a zhouwenhai development

如果想用另一个用户账户作为 development 组的管理员,则可以使用 -A 选项指定该用户为管理员,例如:

sudo gpasswd -A zhaodan development

这样,用户 zhaodan 将被设置为 development 组的管理员,并拥有该组的管理权限。

设置账户huangyi每60天修改密码,密码过期后10天未使用就声明账号失效

passwd -x 60 -i 10 huangyi

  • 使用chage方法

chage –maxage 60 huangyi 使用户 huangyi 的密码在 60 天后过期,需要更改密码才能继续访问系统。

chage --expiredate date -d "+70 days" +%Y-%m-%d huangyi 设置账号失效期限为 10 天。

查看用户账户到期日期

chage -l test01

修改账户失效日期为2020年12月1 日(两个方法)

usermod -e “2020-12-01” test01

chage -E 2020-12-01 test01

将组gtest01的gid改为1010,并且将组名称改为group1

groupmod -g 1010 -n group1 gtest01

(三)文件系统
查看与管理文件系统的目录结构

进入当前用户的主目录

cd ~

进入其他用户的主目录

cd ~inetaccount

显示/var/mail 目录的详细信息

ll /var/mail

显示当前真正的路径

pwd -P

完整地显示/var目录下文件或目录的修改时间

ll -full-time /var

显示 /etc/sysconfig 目录下的所有文件和目录及其子目录

ls -R /etc/sysconfig

ls -lR

显示目录的详细信息

ll -d test

在/tmp 目录下建立新目录test3,,创建的同时设置权限为 rwx-x-x

mkdir -m 711 test3

查看test3的权限等详细信息

ls -ld test3

查看/tmp目录下所有test开头的目录

ls -ld test*

删除/tmp目录下所有test开头的目录

[root@system tmp]# rmdir test*

管理磁盘上的文件

在/tmp目录下创建文件test1.txt

touch /tmp/test1.txt

将test1.txt移动到/tmp/inetlab目录下,并将test1.txt改名为test.txt

mv /tmp/test1.txt /tmp/inetlab/test.txt

将root用户主目录下的.bash_history文件复制到/tmp/inetlab目录下,并改名为bash_history

[root@system ~]# cp ~/.bash_history /tmp/inetlab/bash_history

请写出复制命令,当主目录下的~/.bash_history 与/tmp/inetlab/bash_history比较若有变化时,就执行复制。

diff ~/.bash_history /tmp/inetlab/bash_history 比较两个文件内容是否相同

cp ~/.bash_history /tmp/inetlab/bash_history 如果以上命令返回非空值,表明两个文件内容不同,则可以执行以下命令将源文件复制到目标位置

或者用以下语句

cp -u ~/.bash_history /tmp/inetlab/bash_history

将源文件复制到目标位置,并且只在源文件的修改时间比目标文件晚时才进行复制,以确保目标文件是最新的

创建并且切换目录到/tmp/inetlab

mkdir /tmp/inetlab && cd /tmp/inetlab

将/var/log/wtmp复制到当前目录下

[root@system inetlab]# cp /var/log/wtmp .

复制/var/log目录下的wtmp文件到/tmp/inetlab目录,文件名为wtmp2,要求复制文件所有特性

[root@system inetlab]# cp -a /var/log/wtmp wtmp2

cp -a 命令会将源文件或目录复制到目标位置,并保留所有特性,包括用户、组、权限、时间戳、软链接等信息

显示前后两个复制的文件是否一致

ls -l /var/log/wtmp wtmp2

采用cp命令,在/tmp/inetlab目录下创建符号链接文件passwd1,源文件为/etc/passwd

ln -s /etc/passwd /etc/passwd/passwd1

cp -s /etc/passwd /etc/passwd/passwd1

采用cp命令,在/tmp/inetlab目录下创建硬链接文件passwd2,源文件为/etc/passwd

ln /etc/passwd /tmp/inetlab/passwd2

cp -l /etc/passwd passwd2

查看两个文件详细信息

ls -l /tmp/inetlab/passwd* /etc/passwd

设置文件系统权限

对/data/it/liwen.txt设置文件权限,该文件属于it组、所有者为liwen

chown liwen:it /data/it/liwen.txt

使用户liwen拥有完全控制权限,组用户只读和执行权限,其他用户无权限

还有好多还没写完,等有时间在更新这个吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值