2023-2024-1 20211327 信息安全系统设计与实现 学习笔记3(必做)

发布时间 2023-09-24 15:28:04作者: 沈楗翔

学习笔记3

  • 程序设计语言必备要素和技能
  • shell脚本
  • 实践过程截图

程序设计语言必备要素和技能

1.语法和语义: 了解语言的基本语法规则语义,包括如何定义变量、数据类型、运算符、控制结构等。这是编写有效代码的基础。
2.数据结构和算法: 掌握数据结构(如数组、链表、栈、队列)和基本算法(如排序、搜索算法)是编程的关键。
3.编程范式: 了解不同编程范式,如面向对象编程、函数式编程、命令式编程等。选择适合任务的范式,有助于编写清晰和可维护的代码。
4. 标准库和框架: 熟悉语言的标准库常用框架,以便能够利用现有的功能和资源,加速开发过程。
5. 算法分析和性能优化: 了解如何分析算法的时间和空间复杂度,以及如何优化代码以提高性能。
6. 问题解决能力: 编程语言只是解决问题的工具,重要的是培养解决问题的思维方式,能够分析问题、制定解决方案并实施它们。

shell脚本

1. shell脚本知识点总结:

Shell脚本是一种用来执行一系列命令的脚本编程语言,通常在Unix、Linux和类Unix操作系统中使用。Shell脚本可以用来自动化任务、管理文件系统、配置系统和执行各种系统维护任务。

Shell: Shell是用户与操作系统内核之间的交互界面,提供了一种解释执行命令的方式。常见的Unix/Linux Shell包括Bash(Bourne Again Shell)Zshsh(Bourne Shell)Ksh(Korn Shell)等。Shell脚本就是用Shell编写的脚本文件。

脚本文件扩展名: Shell脚本文件通常以.sh为扩展名,例如myscript.sh

权限设置: 在执行Shell脚本之前,需要为脚本文件设置执行权限,可以使用chmod +x script.sh命令来赋予脚本执行权限。

脚本的结构: Shell脚本通常包括以下部分:

  • Shebang: 脚本的第一行通常包括一个Shebang(#!)行,指定了用于执行脚本的Shell解释器,例如#!/bin/bash表示使用Bash来执行脚本。

  • 注释: 注释用于提供脚本的说明和文档,以#开头。例如:

    # 这是一个Shell脚本示例
    
  • 变量定义:定义变量来存储数据,例如:

    bash
    Copy code
    name="John"
    age=30
    
  • 命令执行:执行系统命令和操作,例如:

    bash
    Copy code
    echo "Hello, $name!"
    
  • 流程控制:使用条件语句(if-else)、循环(for、while)、函数等控制脚本的流程和逻辑。

  • 输入和输出:通过标准输入(stdin)和标准输出(stdout)来与用户和其他程序进行交互。例如,使用read命令读取用户输入,使用echo命令输出信息。

  • 错误处理:可以使用条件语句和错误处理机制来处理脚本执行中的错误情况。

变量: Shell脚本支持字符串、整数等不同类型的变量。变量名通常是区分大小写的。要访问变量的值,可以使用$符号,例如$name 表示变量 name 的值。

特殊变量: Shell脚本中有一些特殊变量,如$0表示脚本名,$1$2等表示脚本的参数。

条件语句: Shell脚本支持条件语句,如ifelifelse,用于根据条件执行不同的命令块。

循环结构: Shell脚本可以使用forwhile等循环结构来重复执行一组命令,用于处理重复性任务。

函数: Shell脚本可以定义和调用函数,以模块化和重用代码。

输入输出重定向: Shell脚本可以将命令的输入和输出重定向到文件或管道中,以实现输入输出控制。

管道和过滤器: Shell脚本可以使用管道|将多个命令串联在一起,将一个命令的输出作为另一个命令的输入。

错误处理: 通过检查命令的退出状态码($?)以及使用trap等机制来处理错误和异常情况。

调试: Shell脚本支持调试工具和技术,例如set -x用于启用调试模式,set +x用于关闭调试模式。

执行脚本: 要执行Shell脚本,可以在命令行中输入脚本文件名,例如./myscript.sh

常见用途: Shell脚本广泛用于系统管理、日志分析、自动化任务、备份、部署和配置管理等领域。

2. shell脚本与c语言:

shell是个脚本语言,也是应用程序与内核进行交互的桥梁(一个让开发者与内核交互的软件)。

①我们计算机的运行状态等我们是无法肉眼来查看的,但是通过shell我们就能看到他的数据,其他一些应用程序,比如浏览器、音乐播放器等获得内核所掌管的音频、显卡等驱动的帮助。

②我们还可以将一系列的操作放入一个文件中,并给予这个文件可执行的权限,我们就可以一次运行文件中的所有的指令。

③C语言是另一种高级的计算机语言,他可以开发很多软件,其实shell也是用c写的

sh是一个解释程序,逐行读取sh脚本文件会直接执行这些行。而C程序必须先编译链接到一个二进制可执行文件,然后通过主sh的子进程运行二进制可执行文件。

①在C程序中,每个变量必须有一个类型,例如char、int、float,但是在sh脚本文件中,每个变量都是字符串(只有一种类型)。

②每个C程序必须要有一个main函数,每个函数必须定义一个返回值类型和参数,sh脚本不需要main函数,在sh脚本中,第一个可执行语句是程序的入口点。

平均每行脚本语言代码执行成百上千条机器指令,高级语言则大约为五条。其中的原因之一是脚本语言使用了解释器,更大的原因是脚本语言的操作更加强大。脚本语言的代码量和编程时间都少于高级语言。

3.shell脚本的要素与技能:
语法和语义: 我们需要熟悉Shell脚本语言的语法规则和语义,包括如何定义变量、执行命令、控制结构等。

数据结构和算法: 虽然Shell脚本不如一些编程语言强大,但我们仍然需要了解如何使用数组、关联数组等数据结构,并编写适当的脚本以解决问题。

编程范式: Shell脚本通常是命令式编程,但我们仍然可以运用一些面向对象编程和函数式编程的思想,例如使用函数来模块化代码。

标准库和工具: Shell脚本可以调用操作系统提供的命令和工具,因此我们需要熟悉常见的Shell命令和工具,如awksedgrep等。

算法分析和性能优化: 虽然Shell脚本通常不是处理高性能任务的首选语言,但了解如何分析脚本的性能瓶颈,并采取适当的优化措施仍然很重要。

实践过程截图