20211316郭佳昊 《信息安全系统设计与实现(上)》第三周学习笔记

发布时间 2023-09-24 20:37:32作者: 20211316郭佳昊

一、任务要求

[ 1 ] 知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容 (4分)
我在学***X知识点,请你以苏格拉底的方式对我进行提问,一次一个问题

核心是要求GPT:请你以苏格拉底的方式对我进行提问

然后GPT就会给你提问,如果不知道问题的答案,可以反问AI:你的理解(回答)是什么?

如果你觉得差不多了,可以先问问GPT:针对我XXX知识点,我理解了吗?

GPT会给出它的判断,如果你也觉得自己想清楚了,可以最后问GPT:我的回答结束了,请对我的回答进行评价总结,让它帮你总结一下。

[ 2 ] 问题与解决思路,遇到问题最先使用chatgpt等AI工具解决,并提供过程截图(3分)

[ 3 ] 实践过程截图,代码链接(2分)

[ 4 ] 其他(知识的结构化,知识的完整性等,提交markdown文档,使用openeuler系统等)(1分)

二、知识点归纳

  • 命令行参数

$#=命令行参数的数量
$*=所有命令行参数
$S=执行sh的进程PID
$?=最后一个命令执行的退出状态

  • sh变量

sh有PATH、HOME、TERM等内置变量,还可用任何符号作为sh变量,设置或赋值方式如下:
variable=string
若A是变量,则$A是变量的值。

  • sh命令
  1. 内置命令

.file:读取并执行文件
break[n]:从最近的第n个嵌套循环中退出。
cd[dirname]:更换目录
continue[n]:重启最近的第n个嵌套循环
exit[n]:退出sh,退出状态为n。
shirt:将位置参数$2,$3重命名
read命令

  1. Linux命令

echo命令:将参数字符串作为行回显到stdout
expr命令:简介修改sh变量的数值

3.实用命令

akw、cmp、comm、diff等

  • 命令替换

在sh中。$A会被替换为A值。当sh遇到'cmd'或$(cmd)时,会先执行cmd,然后用执行的结果字符串替换$(cmd)。

  • sh控制语句

1.if-else-fi语句

2.if-elif-else-fi复合语句

3.for语句

4.while语句
三、苏格拉底挑战

四、实践截图

sh脚本实践

  1. hello world

  1. 设置变量

  1. 位置参数变量

  1. 条件判断

  1. 循环

五、语言学习总结

  1. 变量和数据类型:能够声明和使用变量,已经有各种数据类型,如整数、浮点数、字符串、数组等。在sh脚本中,变量用于存储数据,并且通常是字符串类型。

  2. 运算符和表达式:能够使用运算符进行数学和逻辑运算,以及构建复杂的表达式。sh脚本中也支持这些运算符和表达式。

  3. 条件语句:能够编写条件语句(如if-else、switch等),根据条件执行不同的代码块。在sh脚本中,有if-else-fi语句和if-elif-else-fi语句,用于控制流程。

  4. 循环结构:能够编写循环结构(如for、while、do-while等),以便多次执行相同或类似的操作。在sh脚本中,有for循环,while语句等可以完成循环的操作。

  5. 函数:能够定义和调用函数,以便将代码组织成可重用的模块。在sh脚本中,可以使用func() {}进行函数的声明。

  6. 输入和输出:能够处理输入数据并生成输出数据。在sh脚本中,可以使用read来读取用户输入,并使用echo或重定向操作符将输出发送到屏幕或文件。

  7. 错误处理:能够处理错误和异常情况,以确保程序能够顺利运行。在sh脚本中,可以使用条件语句和错误检测机制来处理错误。

  8. 文件操作:需要进行打开、读取、写入和关闭文件,以及文件和目录的管理。在sh脚本中,使用命令来执行文件操作。

  9. 数据结构和算法:需要各种数据结构(如数组、列表、字典等)和算法,以解决复杂的问题。在sh脚本中,通常使用数组这种数据结构来处理数据。

  10. 调试和测试:需要调试程序,找出问题并进行修复。在sh脚本中,可以使用echo语句来输出调试信息,或者使用set -x来启用调试模式。