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 以搜寻丢失的信息
- 使用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 设备中包含的磁盘块数
- 使用mdadm工具查看/dev/md0块设备详细信息
mdadm -D /dev/md0
- 使用mkfs工具对/dev/md0进行格式化,文件系统使用xfs
- 查看RAID设备的UUID
mdadm -D /dev/md0 | grep uuid
blkid | grep md0
bkild /dev/md0
- 设置开机自启动设备RAID
mdadm -Ds /dev/md0 > /etc/mdadm.conf
mdadm -D -S -V /dev/md0 > /etc/mdadm.conf
- 设置自动挂载,将挂载信息写入到/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之间的关系与作用、
- PV(Physical Volume):物理卷,通常指硬盘或分区。PV是LVM存储结构的最底层,它负责管理磁盘上的原始数据。
- PE(Physical Extent):物理区块,是LVM中的最小单位。每个PE通常有1MB大小,用于划分PV的空间。一个PV可被分成多个PE。
- VG(Volume Group):卷组,是由一个或多个PV组成的逻辑卷。VG可以由多个硬盘或分区组成,系统将其作为一个大容量设备来使用。
- 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
- 将/dev/sdb1分区和/dev/sdc磁盘定义为物理卷,并且查看/dev/sdb1物理信息
pvcreate /dev/sdb1 /dev/sdc
pvdisplay /dev/sdb1
- 为IT部门创建一个卷组,名称为itvg,包含上面的2个物理卷,且指定PE大小为16M,并且扫描系统卷组信息
vgcreate -s 16M
vgscan 扫描系统卷组信息
vsdisplay 显示卷组信息
- 将/dev/sdb2分区加入到该卷组itvg增加其容量
vgxtend itvg /dev/sdb2
- 在itvg卷组下,创建一个逻辑卷itlv01,指定其大小为5G
lvcreate -L 5G 0n itlv01 itvg
lvscan 扫描系统逻辑卷信息
lvdisplay 查看系统逻辑卷信息
- 格式化itlv01 ,文件格式为xfs
mkfs.xfs /dev/itvg/itlv01
- 创建/srv/itlvm ,并将/dev/itvg/itlv01 挂载到/srv/itlvm
mkdir /srv/itlvm
mount /dev/itvg/itlv01 /srv/itlvm
- 使用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。在此实训中采用第一种方 法实现。具体要求下:
- 对硬盘 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
- 创建第一组 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
- 创建第二组 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
- 创建 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
- 生成配置文件,当 RAID 重新启动时会读取该配置文件。
echo "/dev/md2 /mnt/raid10 xfs default 0 2 " > /etc/fstab
- 创建文件系统,将/dev/md2 磁盘阵列格式为 XFS 文件系统。
mkfs.xfs -f /dev/md2
- 创建挂载点/mnt/raid10,将/dev/md2 磁盘阵列设备挂载使用。检查挂载点
mkdir /mnt/raid10
mount /dev/md2 /mnt/radi10
mount | grep /mnt/raid10
ls /mnt/raid10
- 将 /etc/services 文 件 复 制 到 RAID10 设 备 , 查 看 并 显 示 /mnt/raid10/services 最开头的部分内容。
cp /etc/services /mnt/raid10
head -n 2 /mnt/raid10/services
- 以树状结构查看设备和挂载情况,以及使用情况。
lsblk
- 查看 RAID10 设备的 UUID,设置开机自动启动 RAID 设备,并自动挂载,进行 测试并查看使用情况。
blkid | grep md2
mdadm -Ds /dev/md2 > /etc/mdadm.conf
df -Th
建立较复杂的LV卷
【任务场景】 ABC 公司有一台服务器,已安装 CentOS7 操作系统。由于公司业务数据量 比较大,挂载了一些硬盘扩充容量,同时也满足 IT 部门有足够的空间备份数 据。为了确保数据的可靠存储以及磁盘存储空间的充分利用和方便扩展,IT 技 术部门决定采用 LVM 技术将多个磁盘或分区的空间拼接在一起使用,并灵活地 进行扩容。
【实训要求】
- 环境准备: 对/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
- 将/dev/sdb1 分区和/dev/sdc 磁盘定义为物理卷,并查看物理卷以及物理卷 信息。
pvcreate /dev/sdb1 /dev/sdc
pvdisplay /dev/sdb1
pvdisplay /dev/sdc
pvscan
- 请为 IT 部门创建一个卷组,名称为 itvg,包含上面的 2 个物理卷,且指定 PE 大小为 16M,创建后查看物理卷并显示其信息。
vgcreate -s 16M itvg /dev/sdb1 /dev/sdc
vgdisplay
vgscan
- 在创建上面的卷组 itvg 后,发现其容量有点小,决定将其进行扩容,把 /dev/sdb2 分区加入到该卷组 itvg 增加其容量;并查看扩容后的卷组的信 息。
vgextend itvg /dev/sdb2
- 在 itvg 卷组下,创建一个逻辑卷 itlv01,指定其大小为 5G;创建后查看逻 辑卷的信息。
lvcreate -L 5G -n itlv01 itvg
lvscan
- 对逻辑卷 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
- 在使用一段时间后,想要对 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
- 在上面的 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
是该命令要操作的用户名然后根据提示进行资料输入
也可以使用命令或者修改文本方式,不过还是上面第一种方式更简便
- 邮箱绑定或手机号码绑定:可以通过将绑定邮箱或手机号码添加到用户信息中来实现。可以使用命令行工具
usermod
来修改用户信息,例如sudo usermod -a -G mailgroup username
命令即可将用户添加到名为 mailgroup 的用户组,通过该用户组添加相应的邮箱等信息。- 身份验证设置:可以通过修改
/etc/pam.d/common-auth
文件来启用某种身份验证方式,例如密保问题、短信验证等方式。也可以使用命令行工具chage
来设置密码有效期限制,例如sudo chage --maxdays 60 username
命令即可设置用户密码的最长有效期为 60 天。- 访问权限设置:可以使用
chmod
和chown
等命令来设置文件和目录的权限。例如,使用命令sudo chmod 700 /home/username
可以将用户主目录的访问权限设置为仅限于用户本人。- 安全认证配置:可以通过修改
/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拥有完全控制权限,组用户只读和执行权限,其他用户无权限
还有好多还没写完,等有时间在更新这个吧