【Linux】期末复习

news2024/11/15 15:39:52

文章目录

  • 1. 认识Linux系统
  • 2. Shell命令
  • 3. VI编辑器的使用
  • 4. Shell脚本编程
  • 5. 实验部分

1. 认识Linux系统

  1. Linux特点
  1. 完全免费
  2. 开发性
  3. 多用户、多任务
  4. 丰富的网络功能
  5. 可靠安全、性能稳定
  6. 支持多种平台

2.Linux系统的组成

  1. 内核
  2. Shell
  3. 应用程序
  4. 文件系统

3.Linux版本

Linux版本由形如x1.x2.x3三组数字组成

  1. x1:主版本号,表示内核级别,越大级别越高,目前最高版本为5
  2. x2:次版本号,分为测试版与稳定版,奇数为测试版,偶数为稳定版。
  3. x3:修正序号,此数越大,通常会表示该内核功能更强或以前中的缺陷得到修正

4.Linux应用软件安装

查看软件是否安装成功

rpm -qa|grep 软件名称

有信息输出代表安装成功

无信息输出代表安装中

5.Shell提示符号

  • #:代表超级用户(管理员)
  • $:代表普通用户

2. Shell命令

1.Linux系统的目录结构

  • /home:Linux系统各用户的主目录
  • /root:root用户的主目录
  • /bin:二进制目录,存放很多用户级的GUN
  • /sbin:系统二进制目录,存在很多GUN管理员级工具
  • /dev:设备目录,Linux在这里创建设备节点
  • /lib:库目录,存放系统和应用程序的库文件
  • /tmp:临时目录,可以在该目录中创建和删除临时工作文件
  • /mnt:挂载目录,另一个可移动载体媒体设备的常用挂载点
  • /boot:启动目录,存放启动文件
  • /media:媒体目录,可移媒体设备的常用挂载点
  • /etc:系统配置文件目录
  • /proc:进程目录,存放现有硬件及当前进程相关信息
  • /usr:用户二进制目录,大量用户级的GUN工具和数据文件存储在这里
  • /var:可变目录,用以存放经常变化的文件,比如日志文件

2.目录操作

pwd

显示当前工作目录的绝对路径

3.mkdir 创建目录

mkdir [选项] [目录]
选项说明
-p若路径中的目录不存在,先创建目录
-v每次创建目录都显示信息

4.cd更改工作目录路径 大题会用到

cd [目录]
特殊符号含义
.代表当前目录
代表当前目录位置的上一层目录
~代表家目录,即login时所在目录

5.ls列出目录和文件信息

ls [选项] [目录][文件]
选项说明
-l以详细信息的形式展示出当前目录的文件
-a显示当前目录中的全部文件(包括隐藏文件)
-d查看目录属性
-t按照创建时间顺序列出文件
-F显示文件类型
-i用于显示文件的inode号,inode号是文件在文件系统中的唯一标识,可以用来查看文件的硬链接数,以及查看文件是否被删除。

使用-l属性会输出如下的文件属性

image-20221207111200427

  • 第一个字符:代表文件类型,d代表目录,-代表文件,l代表链接文件,b表示为设备中可提供存储的接口设备,c表示为设备文件中的串行端口设备
  • r表示可读,w表示可写,x表示可执行

6.rmdir删除空目录

rmdir [选项] [目录]
选项说明
-p删除递归目录,当子目录删除后其父目录为空时,也一同删除
-v输出处理的目录详情

7.touch 创建空文件 更改文件时间

touch [选项] 文件
选项说明
-a只更改访问时间
-m更改文件的修改时间记录
-e假如目标文件不存在,则不会创建新的文件
-d<字符串>使用指定字符串表示时间而非当前时间
-t<日期时间>使用MMDDhhmm格式的时间非当前时间

8.cp复制文件和目录

cp [选项] [源文件|目录] [目标文件|目录]
选项说明
-f强制复制文件和目录,无论目的文件或目录是否已经存在
-r递归复制目录下的子目录和文件
-i若目标文件存在,则提示用户如何操作

9.mv文件和目录改名、移动文件和目录路径

mv [选项] [源文件|目录] [目标文件|目录]
选项说明
-f移动时自动替换已经存在的目标文件,不提示
-i若目标文件存在,则提示用户如何操作

10.rm删除文件或目录

rm [选项] [文件|目录]
选项说明
-f强制删除文件,不给出提示信息
-r递归删除目录及其子目录和文件
-i删除前需要确认

11.find用于查找文件或目录

find [查找范围] [选项] [查找条件]
选项说明
-name<文件名>匹配文件的名称
-user<用户名>匹配文件的所有者
-perm<权限>匹配文件的权限
-type<文件类型>匹配文件类型查找
-size n< ckMG >匹配文件的大小(+50k查找超过50k的文件,而-50k则表示查找小于50k的文件)
–exec {} \ ;后面可接对搜索到结果进一步处理的命令

例如,搜索/etc中所有以host开头的文件

find /etc -name "host*" -type f
-type[选项]
	f:普通文件
	d:目录文件
	l:连接文件
	b:块设备文件
	c:字符设备文件
	p:管道文件
	s:套接字文件

12.查找文件或目录 which/whereis

which

主要用于搜索二进制文件、可执行文件或者Shell命令行的位置

whereis

主要用来搜索二进制文件的位置、源代码的位置和man帮助文件位置

13.cat显示文本文件、连接文本内容

cat [选项] [文件]
选项说明
-n对输出的所有行编号
-b对非空输出行编号

14.more分页显示文本文件

more [选项] [文件]
选项说明
+n从第n行开始显示文件内容,n代表数字
-n一次显示的行数,n表示数字

Ctrl + f是向下显示一屏

Ctrl + b是向上滚动一屏

Enter键向下滚动一行

q是退出more命令

15.head显示指定文件的前若干行

head -n 行数值 [文件]

默认缺省显示文件的前10行

比如head -5 /etc/passwd 表示显示/etc/passwd文件的前5行

16.tail查看文件末尾数据

tail -n 行数值[文件]

默认缺省显示文件后10行内容

例如,tail -5 /etc/passwd 表示显示/etc/passwd文件的后5行

17.grep 在文件中搜索与字符串匹配的行输出

grep [选项] 查找条件 源文件
选项说明
-i查找时忽略大小写
-v反转查找,输出与查找条件不相符的行

查找字符串以双引号括起来,“^……”表示以……开头,“……KaTeX parse error: Expected group after '^' at position 11: ”表示以……结尾,“^̲”表示空行

18.tar文件打包、压缩

tar [参数] 打包文件名 文件
选项说明
-c产生.tar打包文件
-v列出打包/解包的详细过程
-f指定打包文件的名称
-z以.gz的格式压缩或解压打包文件
-j以.bz2的格式压缩或解压打包文件
-x以打包文件中还原文件
-C解压到指定目录
-r将文件追加到打包文档末尾

打包:

  1. tar -czvf [存放路径]打包文件名.tar.gz 源文件或目录
  2. tar -cjvf [存放路径]打包文件名.tar.bz2 源文件或目录
  3. tar cJvf [存放路径]打包文件名.tar.xz 源文件或目录

解压

  1. tar -xzvf [存放路径]打包文件名.tar.gz [-C 解压目录]
  2. tar -xjvf [存放路径]打包文件名.tar.bz2 [-C 解压目录]
  3. tar -xJvf [存放路径]打包文件名.tar.xz [-C 解压目录]

19.输入重定向

命令<文件名

20.输出重定向

类型操作符用途
重定向标准输出>将命令的执行结果输出到指定的文件中,而不是直接显示在屏幕上
>>将命令执行的结果追加输出到指定文件中
重定向标准错误2>清空指定文件的内容,并将标准错误信息保存在该文件中
2>>将标准错误信息追加输出到指定文件中
重定向标准输出和标准错误&>将标准输出、标准错误的内容全部保存在指定文件中而不是直接显示在屏幕中

find /etc -name “passwd” 2>>error

21.管理用户及组

添加用户

useradd [选项] 用户名
选项说明
-u指定用户ID
-G指定用户的附属组(补充组)
-s指定用户登入所使用的Shell
-d设置登录时使用的主目录
-M不创建用户组

注意,不指定用户ID的时候由系统自主生成

创建一个不可登录无用户主目录的用户

useradd -M -s /bin/nologin user

统计系统可登录用户数量有几个

grep "bash$" /etc/passwd | wc -l

给用户设置密码

passwd [选项]用户名

删除用户

userdel [选项]用户名
选项说明
-r同时删除用户及子目录

22.chmod设置基本权限

有两种方法,一种是字符法,一种是数字法

字符法

chmod [ugoa] [+-=] [rwx] [文件或目录]

u、g、o、a分别表示属主、属组、其他用户、所有用户

+、-、=分别表示增加权限、去除权限、设置权限

chmod o+w my.txt
my.txt文件的其他人增加读权限

数字法

权限项执行执行执行
字符表示rwxrwxrwx
数字表示421421421
权限分配文件所有者文件所属组其他用户

例如数字777表示 111 111 111,也即是rwxrwxrwx

数字664表示110 110 100,也就是rw-rw-r–

23.ps指令

ps [选项]
选项说明
-a显示当前终端上的所有进程,包括其他用户的进程信息
-e显示系统中所有进程,包括其他用户进程和系统进程信息
-l以长格式显示进程信息
-u显示面向用户的格式(包括用户名、CPU及内存使用清空等信息)
-x显示后台进程的信息
-f显示进程的所有信息

显示所有进程

ps -ef

查找某一个进程

ps -ef|grep 进程名

24.周期性计划任务

编辑计划任务

crontab -e [-u  用户名]

查看计划任务

crontab -l [-u  用户名]

删除计划任务

crontab -r [-u  用户名](root用户可以管理指定用户的计划任务,普通用户只能管理自己的计划任务)
字段说明
分钟取值0-59任意整数
小时取值0-23任意整数
日期取值1-31任意整数
月份取值1-12任意整数
星期取值0-7任意整数
命令要执行的命令或程序脚本
  • *:表示该范围内的任意时间
  • ,:表示间隔的多个不连续时间点
  • -:表示一个连续的时间范围
  • /:指定间隔的时间范围

image-20221207145946458


3. VI编辑器的使用

1.VI编辑器的三种操作模式

image-20221207150330587


4. Shell脚本编程

1.Shell中常用符号

  1. 注释符#
  2. 美元符$:变量符,与反斜杠转义符相反,使其后面的普通字符作为变量名
  3. 单引号:被单引号引起的字符全部做普通字符,即全部原样
  4. 倒引号:倒引号内的字符串做为Shell命令行解释执行,得到的结果取代整个倒引号括起来的部分
  5. 双引号:被双引号引起来的内容,除了$、转义符\、倒引号保留特殊作用,其他均做普通字符
  6. 反斜线:转移字符,将特殊字符变成普通字符

2.Shell预定义变量(五分)

用户不可修改

  1. $#:传送给Shell程序的位置参数的数量
  2. $?:最后命令得的完成码或者在Shell程序内部执行的Shell程序(返回值)
  3. $0:Shell程序的名称
  4. $*:调用Shell程序时所传诵的全部参数的单字符串,“参数1”“参数2”……形式保存参数
  5. $@:“参数1”“参数2”……形式保存的参数
  6. $n:第n个参数
  7. $$:本程序的PID
  8. $!:上一个命令的PID

3.用户变量(赋值)

变量名=

取值取空格,必须用引号(单引号或双引号)括起来

取值

echo $变量

4.|| 和 | 和 \ 的区别

  1. || : 表示上一条命令执行失败后,才执行下一条命令,echo 'step1‘ || echo ‘step2’
  2. | :表示管道,上一条命令的输出,作为下一条命令参数
  3. \:转义字符

5.算术扩展运算符

  • $((x + y)):加法运算
  • $((x - y)):减法运算
  • $((x / y)):除法运算,结果仅保留整数位
  • $((x * y)):乘法运算
  • $((x % y)):自加运算
  • $((x --)):自减运算
  • $((x ** y)):幂运算,x的y次方

5. 实验部分

  1. 新建Shell脚本文件test1,在“/home/user/自定义”目录下新建数个文件名的后缀为“*.txt“的文件,编辑如下脚本程序。
#!/bin/bash
path="/root/linux"
cd $path
for file in  *.txt
do
       leftname=`basename $file .txt`
           mv /root/linux/$file /root/linux/$leftname.doc
 done

将目录下的全部*.txt文件修改成.doc,也就是修改文件后缀

  1. 上面的test2脚本改良
#!/bin/bash
cd $1
for file in $(ls  *.txt)
do
       leftname=`basename $file .txt`
	   mv $1/$file $1/$leftname.doc
 done

image-20221207161941334

其中$1 是执行该shell脚本后面接的参数,也就是home/user/test

  1. 该脚本功能是什么
#!/bin/bash   
function rand(){ 
    min=$1
    max=$(($2-$min+1)) 
    num=$(($RANDOM+10000000000)) #增加一个10位的数再求余 
    echo $(($num%$max+$min)) 
} 
rnd=$(rand 400000 500000) 
echo $rnd 

这里面顶一个方法rand,rand方法需要接收两个参数,第一个参数赋值给min变量,使用第二个参数减第一个参数再加1将这结果赋值给max。接着顶一个num**,$RANDOM是Linux的内置函数,用于生成0到32767之间的任一随机数**,用来生成随机数。该函数的返回值就是一个生成400000~500000的随机数

  1. 自己设计一脚本程序test4,要求该程序的运行能判断LINUX计算机上是否在运行sshd进程,如果该进程正在运行,则显示“running”,如果不在运行则显示“not running”.
#!/bin/bash
ps_out=`ps -ef | grep $1 | grep -v 'grep' | grep -v $0`
result=$(echo $ps_out | grep "$1")
if  [ "$result" != "" ];then
echo "Running"
else
    echo "Not Running"
fi
  1. 编写一个shell脚本程序test5,它能根据输入的命令行参数采取不同的动作:如果是目录,则列出该目录中的文件;如果是可执行的文件,则用shell执行之;如果是可读的文件,则cat显示其内容;如果不是以上三种类型,则显示“异常对象”。
#!/bin/bash
echo file
read file #输入
if [ -d $file ]
then
   echo "ls:"
   ls $file/
elif [ -x $file ]
then
   echo "result:"
   ./$file
elif [ -f $file ]
then
   echo "contoxt:"
   cat $file
else
   echo "abnormal"
fi
  1. 统计LINUX系统中可以正常登录的用户数量,在LINUX系统上写出命令。
cat /etc/passwd|grep /bin/bash|wc –l

  1. 自己设计一脚本程序test2,要求该脚本能删除指定目录下文件大小为0的文件
#!/bin/bash
for file in `ls $1`
do
	if [ -f $1"/"&file ]
	then
		if [ -s $1"/"$file ]
		then
			echo "$file is docution but > 0"
		else
			rm $1"/"$file
		fi
	else
		echo "$file is no docution and > 0"
	fi
done
  1. 设计脚本test3,对命令行参数求平均值
#!/bin/bash
[ $# -ne 1 ] && exit  #判断参数个数
[ "$1" -le 0 ] && exit  #判断参数合法性
sum=0
for (( i=1;i<=$1;i=i+1 ))
do
read -p "Input number #$i: " num[$i]
sum=$((sum+num[$i]))
done
average=$((sum/$1))
echo "sum: $sum"
echo "average: $average"
  1. 写出在当前目录下创建下面文件树的命令序列。

image-20221207173724092

mkdir 1
cd 1
mkdir 11 12
cd 11
touch 111 112
cd ..
cd 12
touch 121 122
  1. Apache服务器基本配置

首先检查httpd软件包是否有安装

rpm  -qa |grep httpd	

启动httpd服务

systemctl start httpd.service

设置httpd服务为自启动

chkconfig  httpd  on	

编辑Apache主配置文件/etc/httpd/conf/httpd.conf

ServerRoot "/etc/httpd"		:这是Apache的工作目录,不需修改
KeepAlive On				:修改为On,使得一次TCP连接可以传输多个文件
Listen 自己机器IP地址:8080	:修改HTTP服务监听IP地址和端口号
Include conf.d/*.conf		:/etc/httpd/conf.d/*.conf都是Apache的附加配置文件,不需修改
ServerAdmin root@localhost	:管理员邮箱,可修改为自己的邮箱
ServerName www.example.com:80		:设置服务器名称,如果没有配置DNS解析,可设									:置为IP地址和端口号的组合。把这一行修改为
								:ServerName 自己机器的IP地址:80
DocumentRoot "/var/www/html"		:这是网站文档主目录,建议保留

设置主页文件内容

#vi  /var/www/html/index.html			:添加主页文件,随意输入内容

重启Apache服务器

systemctl restart httpd.service

在操作系统中利用浏览器访问http://自己机器IP地址,测试能否显示主页文件index.html。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/71282.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(00)TCL脚本运行环境介绍

(00)TCL脚本运行环境介绍 01-TCL简介 02-TCL编辑器 03-TCL运行环境 04-TCL文件 05-结语 (01)TCL简介 Tcl 语言的全称 Tool Command Language,即工具命令语言。这种需要在 EDA 工具中使用的相当之多,或者说几乎每个 EDA 工具都支持 Tcl 语言。所以对于 IC 专业的…

Android Gradle 学习笔记(三)语言和命令

Gradle 支持使用 Groovy DSL 或 Kotlin DSL 来编写脚本。所以在学习具体怎么写脚本时&#xff0c;我们肯定会考虑到底是使用 Kotlin 来写还是 Groovy 来写。 不一定说你是 Kotlin Android 开发者就一定要用 Kotlin 来写 Gradle&#xff0c;我们得判断哪种写法更适合项目、更适…

Kubernetes那点事儿——日志管理

K8s日志管理前言一、日志二、K8s应用日志标准输出应用日志收集1、emptyDir挂载收集2、边车容器收集前言 程序运行中输出的日志默认暂存在Pod中&#xff0c;当Pod销毁重建时&#xff0c;日志也会丢失。所以需要一些持久化的方法保存程序日志。 一、日志 K8s系统日志 kubelet组件…

如何使用 rust 写内核模块

近年来&#xff0c;Rust 语言以内存安全、高可靠性、零抽象等能力获得大量开发者关注&#xff0c;而这些特性恰好是内核编程中所需要的&#xff0c;所以我们看下如何用rust来写Linux内核模块。01Rust 与内核模块Aliware虽然 Rust 支持已经在 LinuxKernel6.1 版本合并到主线了&a…

酷开科技不断革新,引领营销新动向

不管渠道如何变迁&#xff0c;不管场景如何碎片化、多样化&#xff0c;只要家庭文明不解体&#xff0c;只要我们的审美不发生颠覆性变迁&#xff0c;家庭大屏就会是主要营销战场。 随着行业软硬件技术的更迭&#xff0c;智能化OTT终将打通互联网消费场景&#xff0c;带动智能电…

Linux 文件与目录

我们知道Linux的目录结构为树状结构&#xff0c;最顶级的目录为根目录 /。 其他目录通过挂载可以将它们添加到树中&#xff0c;通过解除挂载可以移除它们。 在开始本教程前我们需要先知道什么是绝对路径与相对路径。 绝对路径&#xff1a; 路径的写法&#xff0c;由根目录 /…

186:vue+openlayers 小汽车移动轨迹动画,带开始、暂停、结束控制键

第186个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+openlayers中实现轨迹动画,这里设置了小汽车开始,暂停,结束等的控制键,采用了线段步长位置获取坐标来定位点的方式来显示小车的动态。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果; 注意…

全国计算机等级考试-Python

计算机二级python 一、 题型及分值分布1. 单选题共40道&#xff0c;1到10题为公共基础知识&#xff0c;11到40题是python相关的知识&#xff0c;比如数据结构与算法、python基础知识。 每道题1分&#xff0c;共40分&#xff1b;2. 基础编程题共3道&#xff0c;题目会…

DocArray 和 Redis 联手,让推荐系统飞起来

在DocArray中使用Redis后端&#xff0c;基于向量相似性搜索可以快速搭建一个实时商品推荐系统。现在&#xff0c;跟上我们的脚步&#xff0c;一起了解搭建系统的关键步骤&#xff0c;并且深入了解推荐的原理吧&#xff01;推荐系统会根据用户画像、历史行为&#xff08;如购买、…

人工智能和数据分析成为 2023 年最大的计划投资

©网络研究院 到 2023 年&#xff0c;新兴技术系统将继续投资和发展&#xff0c;人工智能将引领私营公司计划利用的技术。 IT 分析公司 Info-Tech Research Group 对 2023 年的新行业预测进行了详细说明&#xff0c;预计私营部门公司将继续在其日常业务运营中采用更先进…

科普篇|法治宣传线上答题活动小程序界面功能全介绍

科普篇|法治宣传线上答题活动小程序界面功能全介绍 为深入学习贯彻二十大精神&#xff0c;努力使尊法学法守法用法在全社会蔚然成风&#xff0c;切实推动全民法治宣传教育深入开展&#xff0c;xx举办全民法治宣传线上答题活动。 第一、主界面展示 ①标题、主题、单位名称落款…

数据结构与算法之《二叉树》详解

标题&#xff1a;二叉树的思路及代码实现 作者&#xff1a;Ggggggtm 寄语&#xff1a;与其忙着诉苦&#xff0c;不如低头赶路&#xff0c;奋路前行&#xff0c;终将遇到一番好风景 文章目录 一、树的概念及结构 二、二叉树的概念及结构 2、1 二叉树的概念 2、2 二叉树的特点 2、…

机器学习之单变量线性回归

1、线性回归基础概念&#xff1a; 回归模型&#xff1a;regression model数据集&#xff1a;包含feature&#xff08;输入变量&#xff09;和与之对应的target&#xff08;输出变量&#xff09;训练集&#xff1a;training set输入数据&#xff1a;x&#xff08;feature or in…

玩转redis(二)——redis持久化

文章目录前言一、RDB1.save 和 bgsave对比2.RDB的优点和缺点2.1 优点2.2 缺点二、AOF1.AOF重写2.AOF的优点和缺点2.1 优点2.2 缺点3 RDB和AOF对比三、AOFRDB混合持久化1 原理2 如图Redis数据备份策略&#xff08;其实就是去备份我们的rdb/aof两个文件&#xff09;&#xff1a;四…

LeetCode刷题复盘笔记—一文搞懂完全背包之139. 单词拆分问题(动态规划系列第十六篇)

今日主要总结一下动态规划完全背包的一道题目&#xff0c;139. 单词拆分 题目&#xff1a;139. 单词拆分 Leetcode题目地址 题目描述&#xff1a; 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 注意&#xff1a;…

(附源码)SSM失物招领平台 毕业设计 271621

SSM失物招领平台的设计与实现 摘 要 信息化社会内需要与之针对性的信息获取途径&#xff0c;但是途径的扩展基本上为人们所努力的方向&#xff0c;由于站在的角度存在偏差&#xff0c;人们经常能够获得不同类型信息&#xff0c;这也是技术最为难以攻克的课题。针对失物招领等问…

红队隧道应用篇之MsfPortfwd端口转发(三)

简介 Meterpreter shell中的portfwd命令最常用作透视技术&#xff0c;允许直接访问攻击系统无法访问的机器, 例如不出网的内网主机, 前提是你要有一个此内网网段的能出网的主机的Meterpreter shell 命令参数 add: 增加端口转发 delete: 删除指定的端口转发 list: 查看端口转…

Spring Cloud Alibaba Nacos 安装

1.Nacos 官网下载地址 Releases alibaba/nacos GitHub 2.使用 rz 命令上传到 虚拟机上 3.解压 tar -zxvf nacos-server-2.1.2.tar.gz 注&#xff1a;解压后&#xff0c;可以直接启动&#xff0c;访问地址&#xff1a;http://192.168.10.121:8848/nacos/ 用户名:nacos 密码:n…

JavaEE进阶:Bean 作⽤域和⽣命周期

文章目录一、Bean 的作用域问题1、案例2、分析二、作用域定义1、Bean 的 6 种作用域① singleton② prototype③ request④ session⑤ application⑥ websocket⑦ 单例作用域(singleton)和全局作用域(application)区别2、设置作用域3、案例修改三、Bean 原理分析1、Bean 执行流…

学生花卉网网页设计作品 学生鲜花网页模板 简单在线花店主页成品 鲜花网页制作 HTML学生花店商城网站作业设计

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…