ASP.NET基于BS课件发布系统

摘  要:本文在分析建立动态网站的技术细节和课件发布工作流程的基础上,阐述了网站的结构与功能设计。本网站采用的是B/S结构,网站使用 Microsoft Visual Studio .NET2003作为主要开发工具,采用Dreamweaver 作为辅助开发工具实现网站的框架设计,使用SQL Server2000 数据库用来存放网页素材、课件资料以及用户资料。本系统可以实现课件的分类显示以及对课件的推荐、审核发布、更新删除等功能。用户通过Web浏览器实现对课件的查找、上传、浏览等操作。本网站可以成为学校Web站点的一个子网,具有很好的外部接口,能够很好的配合校园网的其它子系统进行学校的远程教育活动。

关键词:动态网站;课件发布;SQL;B/S;ASP.NET;C#

2.3 开发环境与技术需求

2.3.1软、硬件环境需求分析

硬件环境需求:服务器两台,一台为数据库服务器,一台为Web服务器;客户端计算机若干;服务器和客户端计算机都应该在网络上(Internet网或局域网),当然也可以单机运行。网络通讯设备,主要包括交换机、网卡、集线器、MODEM 等。

软件环境需求:软件配置要根据不同的需要进行选择。本网站采用Browser/Server体系结构, Web服务器软件采用IIS3.0(Internet Information Server),开发软件包括单机操作系统和浏览器软件,分别选用Windows 2000(服务器版)和Internet Explorer。数据库系统采用SQL Server2000 有利于方便操作。

2.3.2技术分析

用 ASP.NET环境开发网站,实现网站的前台显示和网站的后台管理功能,包括用户管理、审核课件、推荐作品、上传以及课件的查找、发布、删除、浏览课件内容等。

在实现这些功能的时候要用到的主要技术有ASP.NET控件的应用、数据库应用、Session应用、Cookie应用以及数据库访问技术和数据绑定技术。

2.3.3开发工具

1)VStudio.NET与 Dreamweaver

本网站是采用B/S结构结合Internet技术应用微软专门为.NET平台开发的C#语言和Visual Studio.NET集成开发工具进行开发的,另外为了美化网站界面而把Dreamweaver作为辅助开发工具运用到网站开发过程中。

作为本网站主要的开发工具,Visual Studio .NET 2003 充分运用微软公司推出的.NET Framework 1.1中最新发展成果的竞争优势,还包括数个程序语言的发展成果,含有新的Visual J#. NET Java语言开发人员工具、加强的Visual Basic .NET 功能,Visual C++. NET和Visual C#. NET中产能增强和标准兼容的新功能,以及为现有Visual Basic 6.0或Java语言应用程序的开发人员所提供的程序代码转换工具。

作为本网站的辅助开发工具Dreamweaver是当今最流行的专业网页制作软件,它方便快捷的操作方式、强大的编辑功能、良好的ASP. NET等动态编程语言的支持,Dreamweaver 很自然的成为设计网站框架、页面的首选开发工具。

2)SQL Server 2000

本网站采用SQL Server 2000数据库来存放网页素材、课件资料以及用户资料。SQL Server 2000数据库能够处理大量数据,同时保持数据的完整性并提供许多高级管理功能。它的灵活性、安全性和易用性为数据库编程提供了良好的条件。

SQL Server 2000是一项全面完整的数据库与分析产品。从借助浏览器实现的数据库查询功能到内容丰富的扩展标记语言(XML)支持特性均可有力地证明,SQL Server 2000能全面支持Web功能的数据库解决方案。与此同时,SQL Server 2000还在可伸缩性与可靠性方面保持着多项基准测试纪录,而这两方面特性又都是企业数据库系统在激烈市场竞争中克敌致胜的关键所在。无论以应用程序开发速度还是以事务处理运行速度来衡量,SQL Server 2000都堪称最为快捷的数据库系统,这就是我选择该产品作为本系统数据库的原因所在。

3)ASP.NET

ASP.NET 是一个已编译的、基于 .NET 的环境,把基于通用语言的程序在服务器上运行。ASP.NET 是一个已编译的、基于 .NET 的环境,可以用任何与 .NET 兼容的语言(包括 Visual Basic .NETC# JScript .NET)创作应用程序。另外,任何 ASP.NET 应用程序都可以使用整个 .NET Framework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。

4)C#语言

C#语言Microsoft专用在 .NET Framework平台上进行开发的一门最新的、面向对象的编程语言。虽然很多语言都能够编写.NET 代码,但C#是唯一针对.NET Framework 而设计的语言,它使得程序员可以快速地编写各种基于Microsoft .NET平台的应用程序。使用简单的C#语言结构,系统级的应用程序可以方便的转化为XML 网络服务,从而使它们可以由任何语言在任何操作系统上通过Internet进行调用,因此C#将会成为编写.NET 应用程序的首选。

5.1前台显示说明

图5-1网站首页

如图5-1,显示的是首页,最上面有课件类名:高中课件、初中课件、小学课件、其它,中间有本站公告、用户登陆等各个栏目,用户可以直接点击课件类名查看各大类课件里面的各项小课件,然后点击在线播放浏览课件内容。

浏览课件的时候有约定,除了flash课件,其它的课件要有相应的播放软件才能打开看。因为本课件发布网站已经限定了只有flash课件才能进行在线播放,所以其他类型的课件,在点击“在线播放”的时候会提示“打开、保存、取消”,点击打开按钮会打开相应的课件,也可以点击保存按钮然后进行保存,之后的操作和我们平时下载文件是一样的,当然也可以点击取消,不进行操作。

课件名列表是按照更新时间的先后顺序进行排序。要查看相关的课件内容及与课件有关的简介,即可以进入具体的各类课件栏目进行查看,又可以直接点击在首页中显示的“最新下载、最新课件、热门课件”这几个栏目中的课件名来进行查看。

5.2主要功能模块的实现

5.2.1 用户登陆

在用户登陆区设有用户“登陆”、“注册”按钮,已经注册并登陆成功的用户可以在前台进行更改资料与上传课件的操作。没有登陆的用户,进入主页后会提示“您未登陆,请登陆享受更多功能”。

//用户登陆代码如下

private void ImageButton3_Click(object sender, System.Web.UI.ImageClickEventArgs e)

{

string strconn = ConfigurationSettings.AppSettings["dsn"];

SqlConnection cn = new SqlConnection(strconn);

cn.Open();

string mysql= "select*from courseware_user where user_id= '"+user.Text+"' and user_pwd='"+pass.Text+"'";

SqlCommand cm = new SqlCommand(mysql,cn);

SqlDataReader dr = cm.ExecuteReader();

if(dr.Read())

{

Label3.Text="";

Session["user_id"] = dr["user_id"];

Label2.Text=dr["user_id"].ToString();

Session["user_identity"]=dr["user_identity"];

                                  

Panel1.Visible =false;

Panel1.Enabled =false;

Panel2.Enabled =true;

Panel2.Visible =true;

HyperLink1.Visible = true;

HyperLink1.Enabled = true;

HyperLink2.Visible = true;

HyperLink2.Enabled = true;

    string EngagementID = (string)dr["user_id"];

    FormsAuthentication.SetAuthCookie(EngagementID, false);

}

else

{

       Label3.Text="对不起,你的用户名或密码不正确,请重新输入。";

}

cn.Close();     

}

说明:程序中的ImageButton3对应首页中的“登陆”按钮。

5.2.2 用户注册及用户信息的修改

用户想要注册只要点击“注册”按钮即可进入“用户注册”界面,当填好所需的资料之后点击“确认提交”按钮即可完成注册操作。点击“更改资料”之后进入到用户资料填写的界面,在这里用户可以进行用户的具体信息的更改以及用户密码的修改。想要进行密码修改只要点击“修改密码”按钮进入相应的界面,当密码修改完成后点击“确认修改”按钮即可看到“修改成功”的提示即完成密码的修改操作。点击 “修改成功” 返回前一页。在密码修改成功以后点击“修改资料”和“返回首页”按钮进入相应界面。

5.2.3 用户对课件的上传、搜索操作

登陆的用户想要把自己制作的或者是已经制作好了的flash课件上传到网站,点击“上传课件”进入到课件发布界面填好相应的课件信息之后就可以进行上传课件的操作。在搜索栏写入关键字即课件名,选择课件类别即高中课件、初中课件、小学课件、其他,然后点击“搜索”按钮,就可以查找到相应的课件。

//搜索课件代码如下

搜索源: string varuid= TextBox2.Text.ToString();

             string xianze = DropDownList1.SelectedIndex.ToString();

Response.Redirect("sousuo.aspx?id="+varuid+"&"+"xian="+xianze);

搜索页:private void sou()

                {  

             string id = Request.QueryString["id"].ToString();

                       string xian = Request.QueryString["xian"].ToString();

                       string strconn = ConfigurationSettings.AppSettings["dsn"];

                       SqlConnection cn = new SqlConnection(strconn);

                       string useraudit = "";

                       switch(char.Parse(xian))

                       {

                            case '0':

                                   useraudit = "select id,cw_name,up_cw_time,cw_count,cw_owner,checked,cw_sort from courseware where cw_name like '%"+id+"%' and checked = 0 order by up_cw_time desc";

                                   break;

                            case '1':

                                   useraudit = "select id,cw_name,up_cw_time,cw_count,cw_owner,checked,cw_sort from courseware where cw_name like '%"+id+"%' and checked = 0 and cw_sort = '高中' order by up_cw_time desc";

                                   break;

                            case '2':

                                   useraudit = "select id,cw_name,up_cw_time,cw_count,cw_owner,checked,cw_sort from courseware where cw_name like '%"+id+"%' and checked = 0 and cw_sort = '初中' order by up_cw_time desc";

                                   break;

                            case '3':

                                   useraudit = "select id,cw_name,up_cw_time,cw_count,cw_owner,checked,cw_sort from courseware where cw_name like '%"+id+"%' and checked = 0 and cw_sort = '小学' order by up_cw_time desc";

                                   break;

                            case '4':

                                   useraudit = "select id,cw_name,up_cw_time,cw_count,cw_owner,checked,cw_sort from courseware where cw_name like '%"+id+"%' and checked = 0 and cw_sort = '其它' order by up_cw_time desc";

                                   break;

                     }

SqlDataAdapter da = new SqlDataAdapter(useraudit,cn);

DataSet ds = new DataSet();

da.Fill(ds,"table");

DataList2.DataSource = ds;

DataList2.DataBind();

cn.Close();

}

5.2.4 公告栏

公告栏显示最新发布的各项新闻信息,点击进入公告信息界面信息。

5.3后台显示说明

    管理员登陆网站后台进行管理须填写“帐号”和“密码”的登陆信息,然后点击“登陆”按钮进入课件网后台管理界面。

图5-2网站后台首页

如图5-2所示在网页的最上面有“用户管理”、“审核课件”、“推荐作品”、“上传”及“退出” 链接。点击“首页”、“审核课件”、“推荐作品”、“上传”、“退出”等链接,进入到相应界面。

5.4主要功能模块的实现

5.4.1 网站公告

“网站公告”一栏中,管理员可以对其进行修改。点击具体的公告信息进入公告修改界面,在里面进行公告信息的修改操作以及删除公告信息的操作。也可以点击“添加公告”按钮进入添加公告的界面完成公告信息的添加操作。

5.4.2修改课件

在“已推荐作品”栏目中点击“删除”即可实现对课件的删除操作。

//删除课件的主要代码

try

{

if(e.Item.Cells[6].Text.Equals("/kjw/images/no_pic.gif"))

{

string delFile = Server.MapPath("..")+e.Item.Cells[5].Text.ToString();

         File.Delete(delFile);

}

else{

        string delFile = Server.MapPath("..")+e.Item.Cells[5].Text.ToString();

File.Delete(delFile);

        string delFile1 = Server.MapPath("..")+e.Item.Cells[6].Text.ToString();

        File.Delete(delFile1);

}

string strconn = ConfigurationSettings.AppSettings["dsn"];

SqlConnection cn = new SqlConnection(strconn);

cn.Open();

string userdelete ="delete from courseware where id=@id";

SqlCommand cm= new SqlCommand(userdelete,cn);

cm.Parameters.Add("@id",SqlDbType.BigInt);

string uidvalue = e.Item.Cells[7].Text.ToString();

cm.Parameters["@id"].Value = uidvalue;

cm.ExecuteReader();

cn.Close();

}

catch(Exception f)

{Response.Write("<script>alert("+f+")</script>"); }

Response.Write("<script>alert(\"删除成功\")</script>");

bind();

5.4.3 用户管理

点击“用户管理”按钮进入到用户管理界面,在这里可以查看管理员ID,以及管理员的权限和可执行的编辑 、删除操作。

图5-3用户管理界面

如图5-3所示,在“用户资料”和“管理员资料”的栏目里,均可实现对用户信息的编辑、删除操作。点击“编辑”之后有“更新”和“取消”两个操作可以执行,点击“更新”,完成了更新操作,不更新就点击“取消”,同样点击“删除”就可删除用户信息。编辑操作可以更改用户的管理权限。如果管理权限显示的是“0”则为管理员,显示的是“1”则为普通用户。要查找用户,只须填写用户名,然后点击“查找”按钮之后在“用户资料”栏目中就会显示要查找的信息。

5.4.4 审核课件、推荐作品操作

点击“审核课件”按钮,进入到“审核课件”界面。在这里点击课件名也可以进入到“审核课件”界面,点击“通过审核”按钮完成课件的审核操作。同样点击“推荐作品”按钮,进入到“推荐课件”界面。在这里点击课件名也可以进入到“推荐作品”界面,点击“推荐该作品”按钮完成课件的推荐操作。

5.4.5 上传课件

点击“上传”按钮,进入到“课件发布”的界面。在这里只要填写完相应的内容,然后点击“发布”按钮,就可以完成课件的发布操作,或者想重新填写,点击“重置”按钮。如果想继续发布或者是返回首页,分别点击“继续发布”、“返回栏目首页”按钮即可。

//上传课件的代码如下

private void upke()

{

if(upload.PostedFile.ContentLength>0)

{

       string filename=Path.GetFileName(upload.Value);

       string filepath=Server.MapPath("../kjw/kejian")+"\\"+filename;

       if(fileimag.PostedFile.ContentLength > 0)

       {

string file=Path.GetFileName(fileimag.Value);

          string fileimagpath=Server.MapPath("../kjw/imag")+"\\"+file;

          if(!File.Exists(filepath)||!File.Exists(fileimagpath))

              {  

                upload.PostedFile.SaveAs(filepath);

                fileimag.PostedFile.SaveAs(fileimagpath);

                string strconn = ConfigurationSettings.AppSettings["dsn"];

                SqlConnection cn = new SqlConnection(strconn);

                string sql="insert into courseware(cw_name,cw_jieshao,up_cw_time,cw_writer,cw_sort,cw_owner,upwriter,cw_url,cw_pic,cw_mb) values(@cw_name,@cw_jieshao,@up_cw_time,@cw_writer,@cw_sort,@cw_owner,@upwriter,@cw_url,@cw_pic,@cw_mb);";

                cn.Open();

              SqlCommand cm = new SqlCommand(sql,cn);

                     …

              cm.Parameters.Add("@cw_url",SqlDbType.Char);

              cm.Parameters.Add("@cw_pic",SqlDbType.VarChar);

              cm.Parameters.Add("@cw_mb",SqlDbType.BigInt);

              …

              cm.Parameters["@cw_url"].Value= "/"+"kjw"+"/"+"kejian"+"/"+filename;

              cm.Parameters["@cw_pic"].Value = "/"+"kjw"+"/"+"imag"+"/"+file;

            cm.Parameters["@cw_mb"].Value = (upload.PostedFile.ContentLength/1024/1024).ToString();

              cm.ExecuteNonQuery();

              cn.Close();

              inf2.Text = "发布成功,谢谢你的支持";

              }

              else{

                     Response.Write("<script>alert(\"此程序名或图片名已经存在,请更换程序名或图片名\")</script>");

                     }

              }

              else{

                     string file=Path.GetFileName(fileimag.Value);

                     if(!File.Exists(filepath))

                     {  

                    upload.PostedFile.SaveAs(filepath);

                      string strconn = ConfigurationSettings.AppSettings["dsn"];

                      SqlConnection cn = new SqlConnection(strconn);

                      string sql="insert into courseware(cw_name,cw_jieshao,up_cw_time,cw_writer,cw_sort,cw_owner,upwriter,cw_url,cw_mb) values(@cw_name,@cw_jieshao,@up_cw_time,@cw_writer,@cw_sort,@cw_owner,@upwriter,@cw_url,@cw_mb);";

                      cn.Open();

                      SqlCommand cm = new SqlCommand(sql,cn);

                       …

cm.Parameters.Add("@cw_url",SqlDbType.Char);

                      cm.Parameters.Add("@cw_mb",SqlDbType.BigInt);

                …

                      cm.Parameters["@cw_url"].Value= "/"+"kjw"+"/"+"kejian"+"/"+filename;

                      cm.Parameters["@cw_mb"].Value = (upload.PostedFile.ContentLength/1024/1024).ToString();

                      cm.ExecuteNonQuery();

                      cn.Close();

                      inf2.Text = "发布成功,谢谢你的支持";

                     }

                     else{

                     Response.Write("<script>alert(\"此程序名已经存在,请更换程序名\")</script>")}

                     }

          }

}

5.4.6 退出操作

点击“退出”按钮退出网站。

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

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

相关文章

ELK日志分析系统之Zookeeper

一、Zookeeper简介 ZooKeeper是一种为分布式应用所设计的高可用、高性能且一致的开源协调服务&#xff0c;它提供了一项基本服务&#xff1a;分布式锁服务。分布式应用可以基于它实现更高级的服务&#xff0c;实现诸如同步服务、配置维护和集群管理或者命名的服务。 Zookeepe…

3_3.Apache的管理及优化web

### 一.Apache的作用 ### 在web被访问时通常使用http://的方式 http:// ##超文本传输协议 http:// 超文本传输协议提供软件&#xff1a; Apache nginx stgw jfe Tengine ### 二.Apache的安装 ### dnf install httpd.x86_64 -y ### 三.Apache的启用 ### systemctl enable --…

C语言 03 VSCode开发

安装好 C 语言的开发环境后&#xff0c;就需要创建项目进行开发了。 使用 IDE&#xff08;集成开发环境&#xff09;进行开发了。 C 语言的开发工具很多&#xff0c;现在主流的有 Clion、Visual Studio、VSCode。 这里以 VSCode 作为演示。 创建项目 安装 VSCode。 推荐直接在…

【C语言】<动态内存管理>我的C语言终末章

&#xff1c;动态内存管理&#xff1e; 1. 为什么要有动态内存分配2. malloc和free2.1 malloc2.2 free 3. calloc和realloc3.1 calloc3.2 realloc 4.常见的动态内存错误4.1 对NULL指针的解引用操作4.2 对动态开辟空间的越界访问4.3 对非动态开辟内存使用free释放4.4 使用free释…

Navicat的安装与破解

个人介绍 hello hello~ &#xff0c;这里是 code袁~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f981;作者简介&#xff1a;一名喜欢分享和记录学习的…

linux下常见解压命令gz、tar、zip详解

常见解压缩命令汇总 # .tar.gz解压 tar -zxvf jdk-17_linux-aarch64_bin.tar.gz # .tar.gz压缩 tar -czvf archive.tar.gz /path/to/directory# .gz解压 gzip -d file.gz # .gz压缩 gzip filename# zip解压 unzip filename.zip # zip压缩 zip archive.zip /path/to/file.tar.g…

累积分布函数图(CDF)的介绍、matlab的CDF图绘制方法(附源代码)

在对比如下两个误差的时候&#xff0c;怎么直观地分辨出来谁的误差更低一点&#xff1f;&#xff1a; 通过这种误差时序图往往不容易看出来。 但是如果使用CDF图像&#xff0c;以误差绝对值作为横轴&#xff0c;以横轴所示误差对应的累积概率为纵轴&#xff0c;绘制曲线图&am…

SpringBoot启动时banner设置

SpringBoot启动时banner设置 1.操作步骤2.各种banner图像 1.操作步骤 在application.properties文件中设置新的banner对于的文件位置&#xff0c;最好放在resources目录下 spring.banner.locationbanner.txt2.各种banner图像 &#xff08;1&#xff09;经典大佛图 具体txt文…

【Linux C | 多线程编程】线程同步 | 互斥量(互斥锁)介绍和使用

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; ⏰发布时间⏰&#xff1a; 本文未经允许…

洛谷P1364医院设置

洛谷P1364 医院设置 医院设置 题目描述 设有一棵二叉树&#xff0c;如图&#xff1a; 其中&#xff0c;圈中的数字表示结点中居民的人口。圈边上数字表示结点编号&#xff0c;现在要求在某个结点上建立一个医院&#xff0c;使所有居民所走的路程之和为最小&#xff0c;同时约…

vue--双向数据绑定原理

Vue采用数据劫持 发布者-订阅者模式实现双向数据绑定&#xff0c;实现逻辑图如下所示&#xff1a; 数据劫持 Vue 借助Object.defineProperty()来劫持各个属性&#xff0c;这样一来属性存取过程都会被监听到 发布者-订阅者模式 主要实现三个对象&#xff1a;Observer&#…

包装类初识泛型

一.包装类 在Java中, 基本类型不继承于Object类. 所以为了在泛型代码中可以支持基本类型,Java给每个基本类型都对应了一个包装类型.(包装类型相当于引用类型) 1.基本类型对应的包装类 byte -- Byteshort -- Shortint -- Integerlong -- Longfloat -- Floatdouble -- Doublech…

用c++实现串匹配问题、选择排序

5.2.2 串匹配问题 【问题】 给定两个字符串S和T&#xff0c;在主串S中查找子串T的过程称为串匹配(string matching,也称模式匹配&#xff09;&#xff0c;T称为模式。在文本处理系统、操作系统、编译系统、数据库系统以及 Internet 信息检索系统中&#xff0c;串匹配是使用最频…

便宜的dv ssl证书推荐

SSL数字证书是维护互联网安全的重要手段之一。SSL数字证书主要目的是保护客户端和服务器数据传输的安全&#xff0c;防止网站数据在传输过程中被窃取或者篡改。其次&#xff0c;SSL数字证书能够验证网站的身份和合法性&#xff0c;防止用户访问到假冒或钓鱼网站。此外&#xff…

C语言基础---指针的基本语法

概述 内存地址 在计算机内存中&#xff0c;每个存储单元都有一个唯一的地址(内存编号)。通俗理解&#xff0c;内存就是房间&#xff0c;地址就是门牌号 指针和指针变量 指针&#xff08;Pointer&#xff09;是一种特殊的变量类型&#xff0c;它用于存储内存地址。指针的实…

每日一VUE——组件的生命周期

文章目录 VUE组件的生命周期生命周期钩子函数实例创建Teleport VUE组件的生命周期 组件生命周期 组件从创建到挂载、更新、到销毁的一系列过程被称为组件的生命周期。 生命周期函数 在组件的各个生命周期节点执行的函数&#xff0c;为生命周期钩子函数。 生命周期钩子函数…

科技感画册制作方法,视觉效果直接拉满

随着科技的不断进步&#xff0c;科技感画册制作也变得更加精彩和引人注目。通过巧妙地运用先进的设计工具和技术&#xff0c;以及结合创新的视觉元素&#xff0c;可以轻松地将画册的视觉效果直接拉满。 那你想知道怎么制作吗&#xff1f;现在我来教你这个方法吧&#xff0c;方法…

六、新闻主题分类任务

以一段新闻报道中的文本描述内容为输入&#xff0c;使用模型帮助我们判断它最有可能属于哪一种类型的新闻&#xff0c;这是典型的文本分类问题。我们这里假定每种类型是互斥的&#xff0c;即文本描述有且只有一种类型&#xff0c;例如一篇新闻不能即是娱乐类又是财经类&#xf…

企业Linux常见用户命令/补充Linux文件系统删除原理/userdel(故障原理/etc/skel)详谈-9628字

想提高自己想拿20k以上冲冲冲&#xff01;&#xff01;&#xff01;&#xff0c;想要从0 学习到linux架构师可以关注小编专栏 本来都很卷&#xff0c;你还不努力&#xff0c;想拿高薪&#xff0c;付出行动! linux难点第一阶段非常难 1.命令多复杂&#xff08;大家抓不住重点&am…