diff --git "a/\345\220\264\345\230\211\347\216\262/20241120\344\275\234\344\270\232.md" "b/\345\220\264\345\230\211\347\216\262/20241120\344\275\234\344\270\232.md" new file mode 100644 index 0000000000000000000000000000000000000000..c3950ab643fdde6c6d96d608b4df1466bdef7296 --- /dev/null +++ "b/\345\220\264\345\230\211\347\216\262/20241120\344\275\234\344\270\232.md" @@ -0,0 +1,155 @@ +# Linux +1. 尝试使用以下几种方式分别登录服务器,说明它们分别的注意事项,并说明它们之间的区别: ++ ssh客户端; ++ tabby应用; ++ xShell; ++ putty; +``` + 平台支持:SSH客户端通常是跨平台的,而Xshell和PuTTY最初是为Windows设计的,尽管PuTTY也有Unix版本。 + 用户界面:Tabby和Xshell提供了图形用户界面,适合不喜欢命令行的用户;SSH客户端和PuTTY既可以使用命令行也可以使用图形界面。 + 功能丰富性:Tabby作为一个终端模拟器,功能更加丰富,支持多种协议和配置;而Xshell和PuTTY更专注于SSH连接。 + 安全性:所有工具都支持SSH加密连接,但密钥管理的便捷性和安全性可能有所不同,特别是图形界面工具可能更易于配置但需要更注意密钥的保护。 + ``` +2. 命令:apt update,并了解这一步的实际用处和意义 + + apt update 是维护Linux系统安全性和最新性的重要步骤,它确保了系统在安装、升级或移除软件包时能够基于最新的信息进行操作 + ``` +同步软件包列表: +apt update 命令会从配置的软件源(通常是APT软件仓库)下载最新的软件包列表。这些列表包含了可用软件包的版本信息、依赖关系和其他元数据。 + +检查更新: +通过同步最新的软件包列表,系统可以知道哪些软件包有可用的更新。这对于确保系统和软件的安全至关重要,因为软件更新通常包括安全修复。 + +准备安装、升级和移除操作: +在执行 apt install、apt upgrade 或 apt remove 等命令之前,通常需要先运行 apt update 来确保系统有最新的软件包信息。这样,当执行这些操作时,系统会基于最新的信息来安装、升级或移除软件包。 + +提高效率: +apt update 命令会缓存更新的软件包列表,这样在短期内再次执行 apt update 时,不需要重新下载整个列表,从而提高了操作的效率。 + +避免安装过时的软件包: +如果不定期更新软件包列表,可能会安装已经发布更新版本的过时软件包,这可能会导致安全漏洞或兼容性问题。 + +命令执行过程: +当执行 apt update 时,APT会: + +读取 /etc/apt/sources.list 文件和 /etc/apt/sources.list.d/ 目录下的 .list 文件,这些文件定义了软件源。 +从这些软件源下载最新的软件包列表。 +更新本地的软件包索引文件,这些文件通常位于 /var/lib/apt/lists/ 目录下。 + ``` + + +3. 命令:apt upgrade -y,并了解这一步的实际用处意义 +``` +1. 安装软件包更新 +2. 自动解决依赖关系 +3. 提高系统安全性 +4. 修复已知问题 +5. 自动统一安装 +apt upgrade -y 是一个强大的命令,用于自动化地更新系统中的所有软件包,提高系统的安全性和稳定性。然而,它也需要用户注意备份数据、监控更新过程,并确保网络连接的稳定性 +``` + +# mvc +1. +``` +项目名称通常与项目文件的名称相匹配。例如,如果你的项目名为 T4,那么项目文件通常命名为 T4.csproj +``` +2. 创建一个控制项目,项目名称Blog +``` + dotnet new console -n 'Blog' +``` +3. 创建一个控制台项目,输出到Blog目录 +``` +mkdir Blog +cd Blog +dotnet new console +``` +4. 创建一个MVC项目,指定项目名称 +``` +dotnet new mvc -n Blog +``` +5. 创建一个MVC项目,指定输出目录 +``` +dotnet new mvc -n Blog +cd Blog +dotnet new mvc +``` +6. 创建一个带解决方案,其下有一个MVC项目,3个类库项目的“综合项目” +``` +dotnet new sln -o 'sln' +dotnet new mvc -n 'Blog' + +dotnet new classlib -n Xiangmu1 +dotnet new classlib -n Xiangmu2 +dotnet new classlib -n Xiangmu3 +``` +7. 创建一个项目,在默认控制器(Home)下,新增一个Action方法,名为Ok,同时为其创建对应视图以显示这个视图 +``` +1. 在MVC项目中,打开Controllers文件夹中的HomeController.cs文件。 +2. 添加一个新的Action方法Ok: +public IActionResult Ok() +{ + return View(); +} +3. 创建视图文件,在Views/Home目录下创建一个名为Ok.cshtml的文件,并添加以下内容: +
This is the Ok view.
+``` +8. 创建一个项目,创建一个新的控制器,名为Blogs,新的控制器拥有一个名为Index的Action,该方法返回一个视图,视`图显示“神级预判” +``` +1.右键单击Controllers文件夹,选择“添加” > “控制器”。 +2.选择“MVC控制器 - 空”。 +3.输入控制器名称“BlogsController”,然后点击“添加”。 +4.在BlogsController.cs中添加Index方法: +using Microsoft.AspNetCore.Mvc; + +namespace MyMvcProject.Controllers +{ + public class BlogsController : Controller + { + public IActionResult Index() + { + return View(); + } + } +} +5. 创建视图文件,在Views/Blogs目录下创建一个名为Index.cshtml的文件,并添加以下内容: +This is a classic CRUD interface.
+``` +10. 给第8题的新控制器,新增一个Action,名为List,不接受任何参数,并返回对应视图,视图显示一个经典CRUD界面 +``` +右键单击Controllers文件夹,选择“添加” > “控制器”。 +选择“MVC控制器 - 空”。 +输入控制器名称“ProductsController”,然后点击“添加”。 +在ProductsController.cs中添加Edit方法: +using Microsoft.AspNetCore.Mvc; + +namespace MyMvcProject.Controllers +{ + public class ProductsController : Controller + { + public IActionResult Edit(int id) + { + ViewData["Message"] = "Edit this product: " + id; + return View(); + } + } +} +创建视图文件,在Views/Products目录下创建一个名为Edit.cshtml的文件,并添加以下内容: +@ViewData["Message"]
+``` +11. 新增一个控制器,名为Products,该控制器具有一个名为Edit的Action,这个Action接受一个int类型的参数id,显示这个id + +12. 在11题的新控制器中,新增一个名为Create的Action,该Action接受一个类型为Students(有姓名、年龄、体长属性)的参数,并展示该参数的姓名属性 \ No newline at end of file