20211128李杰《信息安全系统设计与实现》第十章笔记

发布时间 2023-09-24 16:53:50作者: 20211128李杰

一、任务内容

自学教材第10章,提交学习笔记(10分)

 

大家学习过Python,C,Java等语言,总结一下一门程序设计语言有哪些必备的要素和技能?这些要素和技能在shell脚本中是如果呈现出来的?

 

,评分标准如下

 

1. 知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容 (4分)

 

“我在学***X知识点,请你以苏格拉底的方式对我进行提问,一次一个问题”

 

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

 

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

 

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

 

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

 

 

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

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

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

二、知识点归纳以及自己最有收获的内容

1.知识点归纳

1sh编程内容总结

 Shell编程是一种在Unix/Linux操作系统上使用Shell(命令行解释器)编写脚本的技术。以下是关于Shell编程的详细总结:

脚本文件:Shell脚本是由一系列命令和控制结构组成的文本文件,以特定的扩展名(如.sh)保存。脚本文件可以通过Shell解释器执行,并且可以包含注释以及Shebang#!/bin/sh)来指定使用哪个Shell解释器。

变量:Shell脚本使用变量来存储和操作数据。变量的命名约定是以字母或下划线开头,可以包含字母、数字和下划线。变量的赋值使用等号(=),但不要在等号两侧添加空格。

shellCopy Code

name="John"

age=25

使用变量时,在变量名前面加上美元符号($)。

环境变量:Shell脚本可以读取和修改环境变量。环境变量是全局可用的特殊变量,存储有关系统环境和配置的信息。通过export命令设置环境变量。

shellCopy Code

export PATH="/usr/local/bin:$PATH"

输入输出重定向:Shell脚本可以使用输入输出重定向来处理命令的输入和输出。例如,使用>将命令输出重定向到文件,使用<将文件内容作为命令的输入。

shellCopy Code

command > output.txt  # 输出重定向到文件

command < input.txt   # 输入重定向从文件读取

条件语句:Shell脚本支持条件语句,用于根据条件执行不同的命令或代码块。常见的条件语句包括if-elsecase语句。

shellCopy Code

if [ $age -gt 18 ]; then

    echo "You are an adult."

else

    echo "You are a minor."

fi

循环语句:Shell脚本支持循环语句,用于重复执行一组命令。常见的循环语句有for循环和while循环。

shellCopy Code

for i in 1 2 3; do

    echo $i

done

 

while [ $count -lt 5 ]; do

    echo $count

    count=$((count + 1))

done

函数:Shell脚本可以定义和调用函数,用于封装一组命令或代码块,实现代码的复用和模块化。

shellCopy Code

greet() {

    echo "Hello, $1!"

}

 

greet "John"

命令替换:Shell脚本可以通过命令替换将命令的输出结果赋值给变量。

shellCopy Code

files=$(ls)

错误处理:Shell脚本可以通过条件语句和返回值获取命令执行的状态,并根据需要进行错误处理。

shellCopy Code

if [ $? -eq 0 ]; then

    echo "Command executed successfully."

else

    echo "Command failed."

fi

调试:Shell脚本可以使用echo命令输出调试信息,帮助定位问题。还可以使用set -x开启跟踪模式,以便在执行脚本时显示每个命令。

shellCopy Code

set -x

# script commands

set +x

(2)sh编程的命令

echo:用于在终端输出文本或变量的值。

echo "Hello, World!"

echo $name

read:用于从终端读取用户输入,并将其赋值给变量。

read name

echo "Hello, $name!"

if:用于执行条件语句,根据条件判断来执行不同的命令。if语句通常与fi配对使用。

if [ $age -gt 18 ]; then

    echo "You are an adult."

else

    echo "You are a minor."

fi

for:用于执行循环语句,按照指定的列表或范围重复执行一组命令。

for i in 1 2 3; do

    echo $i

done

while:用于执行循环语句,根据条件判断来重复执行一组命令。

while [ $count -lt 5 ]; do

    echo $count

    count=$((count + 1))

done

case:用于执行条件语句,根据变量的值匹配不同的模式,并执行相应的命令。

case $option in

    1)

        echo "Option 1 selected."

        ;;

    2)

        echo "Option 2 selected."

        ;;

    *)

        echo "Invalid option."

        ;;

export:用于设置环境变量,将变量的值导出为全局可用的环境变量。

export PATH="/usr/local/bin:$PATH"

source:用于在当前Shell进程中执行脚本文件,并将其内容加载到当前环境中。该命令通常用于加载其他脚本文件中定义的函数或变量。

source myscript.sh

chmod:用于修改文件或目录的权限。

chmod +x script.sh  # 添加执行权限

grep:用于在文件中搜索指定的模式,并输出匹配的行。

grep "pattern" file.txt

sed:用于根据指定的规则对文本进行编辑和转换。

sed 's/foo/bar/' file.txt  # 将每行中的第一个“foo”替换为“bar”

awk:用于处理和提取文本数据,并基于指定的规则执行操作。

awk '{print $1}' file.txt  # 输出每行的第一个字段

(3)程序设计语言必备的要素和技能

一门程序设计语言具有许多必备的要素和技能,以下是其中的一些要素和技能:

语法:了解语言的语法规则和结构,包括变量、数据类型、运算符、控制流等。掌握正确的语法使用方法对于编写有效的代码至关重要。

数据类型:理解不同的数据类型,如整数、浮点数、字符串、数组、字典等。了解每种数据类型的特点和用途,并能够正确操作和处理数据。

变量和赋值:学会声明变量和赋值操作,掌握变量的作用域和生命周期,并能够正确地使用变量存储和操作数据。

函数和模块化:掌握函数的定义和调用,了解如何将代码模块化以提高可维护性和复用性。熟悉库和模块的导入和使用,以便使用现有的代码资源。

控制流:了解条件语句(如if-else语句、switch语句)和循环语句(如for循环、while循环),掌握控制程序执行流程的技巧。

输入和输出:学会从用户获取输入和向用户输出信息,如读取文件、打印文本等。了解文件操作和输入输出流的基本操作。

Shell脚本中,这些要素和技能可以通过以下方式呈现出来:

Shell变量和赋值:使用$符号来引用变量,使用=进行赋值操作。示例:name="John"

Shell函数和模块化:通过定义和调用Shell函数来实现代码模块化。可以将一系列操作封装在函数中,并在需要时调用。示例:

function greet {

  echo "Hello, $1!"

}

 

greet "World"  # 输出:Hello, World!

条件语句和循环语句:使用条件判断语句(如if-else语句)和循环语句(如for循环、while循环)来控制程序的执行流程。示例:

if [ $age -gt 18 ]; then

  echo "You are an adult."

else

  echo "You are a minor."

fi

 

for num in 1 2 3; do

  echo $num

done

 

while [ $count -lt 5 ]; do

  echo $count

  count=$((count + 1))

done

输入和输出:使用read命令从用户获取输入,使用echo命令向用户输出信息。示例:

echo "What is your name?"

read name

echo "Hello, $name!"

 

echo "Enter a number:"

read number

echo "You entered: $number"

2.最有收获的内容

 

 

       

 

 

 

 

 

 

 

 

   

 

 

 

 

 

 

 

 

 

 

 

 

 

、问题与解决思路

 

 

、实践过程