首页 > 其他分享 >2023-2024-1 20211327 信息安全系统设计与实现 学习笔记3(必做)

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

时间:2023-09-24 15:36:16浏览次数:34  
标签:脚本 Shell 编程 2024 sh 2023 20211327 shell 执行

学习笔记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脚本通常不是处理高性能任务的首选语言,但了解如何分析脚本的性能瓶颈,并采取适当的优化措施仍然很重要。

实践过程截图

标签:脚本,Shell,编程,2024,sh,2023,20211327,shell,执行
From: https://www.cnblogs.com/shen-jianxiang/p/17726030.html

相关文章

  • 2023湖南省赛 E.ytree (线段树)
    传送门大致思路:1.将操作1拆分为两个部分x(-1)^d+kd(-1)^d。对于操作1中的x(-1)^d部分而言。我们可以对式子进行拆分,把x拆出来,我们会发现和v号点距离为奇数的点会减去x,为偶数的点会加上x,所以我们可以在线段树上用一个sum1维护应该减去的值,sum2维护加上的值即可。2.随即就是......
  • 2023.9.24 ABout Math
    CF645F我们可以计算这样的函数\(F(x)\)表示\(\gcd\)是\(x\)的倍数有多少个\(k\)元组。设\(x\)的倍数有\(cnt_x\)个数,那么\(F(x)=C_{cnt_x}^k\)。根据莫反,\(f(x)=\sum_{x|d}F(d)\mu(d/x)\)\(Ans=\sumxf(x)=\sum_{x=1}^nx\sum_{x|d}\mu(d/x)\timesC_{cnt_d}......
  • 2023数A题——WLAN网络信道接入机制建模
    A题——WLAN网络信道接入机制建模思路:该题主要考察的WLAN下退避机制建模仿真。资料获取问题1:假设AP发送包的载荷长度为1500Bytes(1Bytes=8bits),PHY头时长为13.6μs,MAC头为30Bytes,MAC头和有效载荷采用物理层速率455.8Mbps发送。AP之间的RSSI为-70dBm。大部分时候只有一个AP能够......
  • 2023华为杯数模C题——大规模创新类竞赛评审方案研究
    B题——大规模创新类竞赛评审方案研究思路:采用数据分析等手段改进评分算法性能完成情况资料获取问题一在每个评审阶段,作品通常都是随机分发的,每份作品需要多位评委独立评审。为了增加不同评审专家所给成绩之间的可比性,不同专家评审的作品集合之间应有一些交集。但有的交集......
  • CSP-S 2023 游记
    蒟蒻的第一次CSP&第一篇游记。同时应该也是最后一次CSP。第一轮Day998244350下载准考证。Day0(2023.9.16)和学校请了一天的假,成功错过三门考试。血赚.jpg上午看了看CSP初赛复习,写了喵了个喵,但没调完。在谷上看到CSP-J出锅,希望CSP-S无锅。Day499122177来到......
  • 2023.9.23——每日总结
    学习所花时间(包括上课):12h代码量(行):0行博客量(篇):1篇今天,上午做任务,下午完成任务。我了解到的知识点:1.一些电的知识,液压装置和机械结构,以及汇编语言的知识;2.由于昨天太劳累,忘记发博客,今日补上。明日计划:1.继续学习HTML;......
  • 2023年下半年北京地区成人本科学士学位英语统考9月25日起缴费
    已由报名校报名参加2023年下半年北京地区成人本科学士学位英语统一考试的考生,要于9月25日9:30至9月28日17:00登录北京教育考试院网站进行缴费。一起来看新发布的《2023年下半年北京地区成人本科学士学位英语统一考试缴费通知》↓↓↓2023年下半年北京地区成人本科学士学位英......
  • 2023.9.23(我的第一次博客)
     现在是晚上九点三十一,我正坐在图书馆以此总结我一天的学习 早上七点半我来到这个位置完成老师所布置的作业,说实话我并不讨厌英语,我讨厌的是高中英语老师,讨厌的是是她那种死板的教学方法,大家也都挺讨厌的。我自认为目前对于英语的学习效率不高,两篇文章读了两三遍加上做题竟然......
  • 2023LN省选游记
    前言CSP第一轮都考完了,我才写这个游记。我真懒惰书接上回正文Day-114514我也没想到我居然能报省选。报上了。准备去爆零。Day-114513~Day-1学习暴力算法以及痛苦的whkDay0放学后带着书包直接润开发区住酒店。不然我担心我起不来。晚上的轻轨真好,虽然人依然不少。D......
  • 20230921
    23/09/21NOIP模拟赛总结时间安排7:50-8:10看了T1,70是裸的质因数分解,花10分钟写代码。8:10-8:30想了会T1正解,不会,去看T2。8:30-9:00T2暴力不会(感觉自己最优解问题的暴力一直不太行),跳到T4。9:00-9:30先打了T4最低档暴力,没想到第二档是背包计数,去看T3。T3第二档和第三档......