diff --git "a/\346\235\234\344\270\200\345\215\232/\350\257\276\345\220\216\344\275\234\344\270\232/Linux\347\273\203\344\271\240.md" "b/\346\235\234\344\270\200\345\215\232/\350\257\276\345\220\216\344\275\234\344\270\232/Linux\347\273\203\344\271\240.md" new file mode 100644 index 0000000000000000000000000000000000000000..fc7f48ec93fe1aeac2ad8db3dbccec6ef25af636 --- /dev/null +++ "b/\346\235\234\344\270\200\345\215\232/\350\257\276\345\220\216\344\275\234\344\270\232/Linux\347\273\203\344\271\240.md" @@ -0,0 +1,100 @@ +## Linux练习 +### 任务1 +尝试使用以下几种方式分别登录服务器,说明它们分别的注意事项,并说明它们之间的区别 +ssh客户端 +tabby应用 +xShell +putty + +用户界面:SSH客户端和PuTTY较为简单,Tabby提供了现代化的界面,xShell提供了用户友好的图形界面。 + +平台支持:SSH客户端和PuTTY支持多平台,Tabby支持Windows、macOS和Linux,xShell主要针对Windows。 + +功能:SSH客户端功能强大但界面简单,PuTTY轻量级,Tabby和xShell提供了更多现代功能,如多标签和插件系统。 + +安全性:所有工具都支持SSH加密连接,但使用密钥对认证可以提供额外的安全性。 + +易用性:对于不熟悉命令行的用户,Tabby和xShell提供了更好的易用性。 + +### 任务2 +更新软件源,命令:apt update,并了解这一步的实际用处和意义: + +apt update命令是apt工具中的一个常用命令,用于更新本地软件包索引。 +它确保了你的系统软件包列表是最新的,这对于系统的维护、升级和安全性至关重要。 + +### 任务3 +更新软件和补丁,命令:apt upgrade -y,并了解这一步的实际用处意义 + +apt upgrade -y 是一个在基于Debian的Linux发行版(如Ubuntu)中使用的命令,用于升级所有已安装的软件包到最新版本。这个命令结合了 apt update 和 apt upgrade 的功能,并且自动回答“yes”以确认所有升级。 + +### 任务4 +``` +查看当前目录下的文件和文件夹 +命令:ls + +查看当前路径 +命令:pwd + +创建一个新的文件夹 +命令:mkdir [文件夹名] 例如:mkdir new_folder + +删除一个文件夹(注意:只能删除空文件夹) +命令:rmdir [文件夹名] 例如:rmdir new_folder + +移动或重命名文件/文件夹 +命令:mv [原路径] [新路径] 例如:mv old_name.txt new_name.txt + +复制文件 +命令:cp [源文件] [目标路径] 例如:cp file1.txt /path/to/destination/ + +删除文件 +命令:rm [文件名] 例如:rm file.txt + +查看文件内容 +命令:cat [文件名] 例如:cat file.txt + +分页查看文件内容 +命令:less [文件名] 例如:less file.txt + +查找文件 +命令:find / -name [文件名] 例如:find / -name filename.txt + +查看文件权限 +命令:ls -l [文件或目录名] 例如:ls -l file.txt + +改变文件权限 +命令:chmod [权限] [文件或目录名] 例如:chmod 755 file.txt(设置为可读可写可执行) + +改变文件所有者 +命令:chown [新所有者] [文件或目录名] 例如:chown new_owner file.txt + +查看当前登录用户 +命令:whoami + +查看系统运行时间和平均负载 +命令:uptime + +查看磁盘使用情况 +命令:df -h(以易读的格式显示) + +查看当前路径下的隐藏文件 +命令:ls -a + +创建一个空文件 +命令:touch [文件名] 例如:touch new_file.txt + +查看当前系统的内核版本 +命令:uname -r + +查看网络连接状态 +命令:ifconfig 或 ip addr(ifconfig 命令在某些新版本的Linux中已被ip命令取代) + +安装一个软件包 +命令:sudo apt-get install [软件包名] 例如:sudo apt-get install vim + +卸载一个软件包 +命令:sudo apt-get remove [软件包名] 例如:sudo apt-get remove vim + +更新软件包列表 +命令:sudo apt-get update +``` \ No newline at end of file diff --git "a/\346\235\234\344\270\200\345\215\232/\350\257\276\345\220\216\344\275\234\344\270\232/MVC\347\273\203\344\271\240.md" "b/\346\235\234\344\270\200\345\215\232/\350\257\276\345\220\216\344\275\234\344\270\232/MVC\347\273\203\344\271\240.md" new file mode 100644 index 0000000000000000000000000000000000000000..89126c74160fba879ceb3804fec4b7864b8186e4 --- /dev/null +++ "b/\346\235\234\344\270\200\345\215\232/\350\257\276\345\220\216\344\275\234\344\270\232/MVC\347\273\203\344\271\240.md" @@ -0,0 +1,104 @@ +### 1、创建一个控制台项目,没有任何选项,体会项目名称和什么有关系 +dotnet new console -n MyConsoleApp +### 2、创建一个控制项目,项目名称Blog +dotnet new console -n Blog +### 3、创建一个控制台项目,输出到Blog目录 +mkdir Blog +cd Blog +dotnet new console +### 4、创建一个MVC项目,指定项目名称 +dotnet new mvc -n MyMvcProject +### 5、创建一个MVC项目,指定输出目录 +mkdir MyMvcProject +cd MyMvcProject +dotnet new mvc -o . +### 6、创建一个带解决方案,其下有一个MVC项目,3个类库项目的“综合项目” +dotnet new sln -n ComprehensiveSolution +cd ComprehensiveSolution +dotnet new mvc -n MvcProject +dotnet sln add MvcProject +dotnet new classlib -n ClassLibrary1 +dotnet new classlib -n ClassLibrary2 +dotnet new classlib -n ClassLibrary3 +dotnet sln add ClassLibrary1 ClassLibrary2 ClassLibrary3 +### 7、创建一个项目,在默认控制器(Home)下,新增一个Action方法,名为Ok,同时为其创建对应视图以显示这个视图 +``` +dotnet new mvc -n MyMvcApp +cd MyMvcApp +public IActionResult Ok() +{ + return View(); +} +
This is the Ok view.
+``` +### 8、创建一个项目,创建一个新的控制器,名为Blogs,新的控制器拥有一个名为Index的Action,该方法返回一个视图,视图显示“神级预判” +``` +dotnet new mvc -n MyMvcApp +cd MyMvcApp +public class BlogsController : Controller +{ + public IActionResult Index() + { + return View(); + } +} +在Views/Blogs目录下创建Index.cshtml视图文件,并添加以下内容: +神级预判
+``` +### 9、给第8题的新控制,添加一个新的Action,名为Music,不接受任何参数,并返回对应的视图,视图显示“顶级打野” +``` +public IActionResult Music() +{ + return View(); +} +在Views/Blogs目录下创建Music.cshtml视图文件,并添加以下内容: +顶级打野
+``` +### 10、给第8题的新控制器,新增一个Action,名为List,不接受任何参数,并返回对应视图,视图显示一个经典CRUD界面 +``` +在BlogsController.cs中添加: +public IActionResult List() +{ + return View(); +} +在Views/Blogs目录下创建List.cshtml视图文件,并添加以下内容: +This is a classic CRUD interface.
+``` +### 11、新增一个控制器,名为Products,该控制器具有一个名为Edit的Action,这个Action接受一个int类型的参数id,显示这个id +``` +创建ProductsController.cs: +public class ProductsController : Controller +{ + public IActionResult Edit(int id) + { + ViewBag.Id = id; + return View(); + } +} +在Views/Products目录下创建Edit.cshtml视图文件,并添加以下内容: +ID: @ViewBag.Id
+``` +### 12、在11题的新控制器中,新增一个名为Create的Action,该Action接受一个类型为Students(有姓名、年龄、体长属性)的参数,并展示该参数的姓名属性 +``` +首先定义Students类: +public class Students +{ + public string Name { get; set; } + public int Age { get; set; } + public double Height { get; set; } +} +在ProductsController.cs中添加: +public IActionResult Create(Students student) +{ + ViewBag.Name = student.Name; + return View(); +} +在Views/Products目录下创建Create.cshtml视图文件,并添加以下内容: +Name: @ViewBag.Name
+``` \ No newline at end of file diff --git "a/\346\235\234\344\270\200\345\215\232/\350\257\276\345\220\216\344\275\234\344\270\232/\345\237\272\347\241\200\350\203\275\345\212\233.md" "b/\346\235\234\344\270\200\345\215\232/\350\257\276\345\220\216\344\275\234\344\270\232/\345\237\272\347\241\200\350\203\275\345\212\233.md" new file mode 100644 index 0000000000000000000000000000000000000000..b4e250003260dc5c586bf2bc1c09ff3a7ec50e72 --- /dev/null +++ "b/\346\235\234\344\270\200\345\215\232/\350\257\276\345\220\216\344\275\234\344\270\232/\345\237\272\347\241\200\350\203\275\345\212\233.md" @@ -0,0 +1,63 @@ +### 生成一个随机整数,范围[0,100],注意是否包含 +``` +public IActionResult Create(){ + int num = new Random().Next(0,101); + return Content(num.ToString()); + } + +``` +### 生成一个随机整数,范围(0,100],注意是否包含 +``` +public IActionResult Create(){ + int num = new Random().Next(0,101); + return Content(num.ToString()); + } + +``` +### 生成10个随机整数,范围[5,80],注意是否包含 +``` +public IActionResult Create(){ + int num = new Random().Next(5,81); + return Content(num.ToString()); + } +``` +### 定义一个字符串,字符串中有100个中文字符,需要从中随机取1个字符串 +``` +public IActionResult Create(){ + string text = "天地玄黄宇宙洪荒日月盈昃辰宿列张寒来暑往秋收冬藏闰余成岁律吕调阳云腾致雨露结为霜金生丽水玉出昆冈剑号巨阙珠称夜光果珍李柰菜重芥姜海咸河淡鳞潜羽翔龙师火帝鸟官人皇始制文字乃服衣裳推位让国有虞陶唐吊民伐罪周发殷汤坐朝问道垂拱平章爱育黎首臣伏戎羌遐迩一体率宾不宁载戢干戈载櫜弓矢民协厥中临深履薄同律度量垂宪章乘风破浪举重若轻" + int num = new Random().Next(0,text.Length); + return Content([num].ToString()); + } +``` +### 定义一个字符串,字符串中有100个中文字符,需要从中随机取5-50个字符,组成新的字符 +``` +public IActionResult Create(){ + string text = "天地玄黄宇宙洪荒日月盈昃辰宿列张寒来暑往秋收冬藏闰余成岁律吕调阳云腾致雨露结为霜金生丽水玉出昆冈剑号巨阙珠称夜光果珍李柰菜重芥姜海咸河淡鳞潜羽翔龙师火帝鸟官人皇始制文字乃服衣裳推位让国有虞陶唐吊民伐罪周发殷汤坐朝问道垂拱平章爱育黎首臣伏戎羌遐迩一体率宾不宁载戢干戈载櫜弓矢民协厥中临深履薄同律度量垂宪章乘风破浪举重若轻" + int num1 = new Random().Next(4,50); + string str = ""; + for (int i = 0; i < num1; i++) + { + int num2 = new Random().Next(0,text.Length); + str+=text[num2]; + } + return Content(str); + } +``` +### 定义2个字符串,第一个字符串中放百家姓,第二个字符串中放中文字符,要求从第一个字符串随机取得一个姓,再从第二个字符串中随机获得1到2个字符组成新字符串,和第一个字符串取得的姓组成一个姓名 +``` +public IActionResult Create(){ + string surname_name=""; + string surname="赵钱孙李周吴郑王冯陈褚卫蒋沈韩杨朱秦尤许何吕施张孔曹严华金魏陶姜戚谢邹喻柏水窦章云苏潘葛奚范彭郎鲁韦昌马苗凤花方俞任袁柳酆鲍史唐费廉岑薛雷贺倪汤滕殷罗毕郝邬安常乐于时傅皮卞齐康伍余元卜顾孟平黄和穆萧尹姚邵湛汪祁毛禹狄米贝明臧计伏成戴谈宋茅庞熊纪舒屈项祝董梁杜阮蓝闵席季麻强贾路娄危江童颜郭梅盛林刁钟徐邱骆高夏蔡田樊胡凌霍虞万支柯昝管卢莫经房裘缪干解应宗丁宣贲邓郁单杭洪包诸左石崔吉钮龚程嵇邢滑裴陆荣翁荀羊於惠甄麴家封芮羿储靳汲邴糜松井段富巫乌焦巴弓牧隗山谷车侯宓蓬全郗班仰秋仲伊宫宁仇栾暴甘钭厉戎祖武符刘景詹束龙叶幸司韶郜黎蓟薄印宿白怀蒲邰从丛鄂索咸籍赖卓蔺屠蒙池乔阴欎胥能苍双闻莘党翟谭贡劳逄姬" + int ranSueName = new Random().Next(0,surname_name.Length); + surname_name+=bname[surname]; + + string name = "天地玄黄宇宙洪荒日月盈昃辰宿列张寒来暑往秋收冬藏闰余成岁律吕调阳云腾致雨露结为霜金生丽水玉出昆冈剑号巨阙珠称夜光果珍李柰菜重芥姜海咸河淡鳞潜羽翔龙师火帝鸟官人皇始制文字乃服衣裳推位让国有虞陶唐吊民伐罪周发殷汤坐朝问道垂拱平章爱育黎首臣伏戎羌遐迩一体率宾不宁载戢干戈载櫜弓矢民协厥中临深履薄同律度量垂宪章乘风破浪举重若轻" + int ran = new Random().Next(1,3); + for(int i = 0;i