首页 > 其他分享 >信息安全系统设计与实现课程第十章学习笔记

信息安全系统设计与实现课程第十章学习笔记

时间:2023-09-24 14:56:56浏览次数:33  
标签:脚本 语句 信息安全 第十章 笔记 命令 sh 用于 执行

一、知识点总结

1、sh脚本

sh脚本是一种文本文件,包含一系列sh语句,用于执行一系列命令。它是一种脚本语言,通常以.sh为文件扩展名。脚本的执行需要使用shell解释器,比如Bash、csh、ksh等。脚本的基本结构如下:

#!/bin/bash
# This is a comment
echo "Hello, World!"

在这个示例中,#!/bin/bash指定了解释器为Bash,echo命令用于输出文本。脚本需要通过chmod +x script.sh命令赋予执行权限,然后可以运行它。

2、sh脚本与C程序

sh脚本和C程序在语法和执行方式上有明显的不同。sh脚本是解释型语言,逐行执行,而C程序需要编译成机器码。C程序的变量需要声明类型,而sh脚本中的变量都是字符串。此外,sh脚本无需主函数(如C中的main函数),脚本的入口点是第一个可执行语句。

3、命令行参数

sh脚本可以接受命令行参数,这些参数可以在脚本内部使用。例如,运行脚本时可以这样传递参数:

./myscript.sh arg1 arg2 arg3

在脚本内部,可以使用$0表示脚本名称,$1$2$3等表示命令行参数。还可以使用特殊变量$#表示参数的数量,$*表示所有参数,$$表示当前脚本的进程ID,$?表示上一个命令的退出状态。

4、sh变量

sh脚本中存在内置变量(如PATHHOMETERM等),同时用户也可以自定义变量。变量在sh脚本中无需声明类型,它们都是字符串类型。如果一个变量未被赋值,那么它的值为空字符串。

5、sh中的引号

在sh脚本中,引号用于引用特殊字符。有三种主要类型的引号:单引号(')、双引号(")和反引号(反撇号,``)。

  • 单引号:单引号内的字符会被视为字面值,不会进行任何替换。例如:echo 'Hello $USER'会输出文本Hello $USER

  • 双引号:双引号内的变量会被替换为其值,同时允许转义字符的使用。例如:echo "Hello $USER"会输出文本Hello <当前用户>

  • 反引号:反引号用于执行命令,并将其结果嵌入到字符串中。例如:echo "Today is $(date)"会输出当前日期。

6、sh语句

sh脚本中可以包含各种Unix/Linux命令,例如文件操作、文本处理、进程管理等。此外,还支持I/O重定向和管道操作,以及条件语句、循环结构和函数定义等高级语法。

7、命令

sh命令分为内置命令和外部Linux命令。内置命令由shell解释器执行,无需启动新的进程。一些常用的内置命令包括:

  • echo:用于输出文本。
  • cd:用于改变当前工作目录。
  • read:用于从标准输入读取用户输入。
  • export:用于设置环境变量。
  • if:用于条件判断。
  • for:用于循环。
  • while:用于循环。
  • function:用于定义函数。

外部Linux命令是由独立的可执行文件组成的,它们可以在sh脚本中调用,比如lsgrepsedawk等。

8、命令替换

在sh脚本中,可以使用$()或``(反引号)来执行命令,并将其结果作为字符串替换到脚本中。这可以用于动态生成命令或获取命令的输出。

current_date=$(date)
file_list=`ls /path/to/files`

9、控制命令

sh脚本支持多种控制语句,包括:

  • if-else-fi:条件判断语句。
  • for:循环语句,用于迭代一个列表。
  • while:循环语句,用于根据条件重复执行命令。
  • until-do:与while类似,但是在条件为假时执行命令块。
  • case:多分支条件语句,类似于switch-case
  • continuebreak:用于控制循环的执行流程。

10、I/O重定向

在sh脚本中,可以使用I/O重定向将输入、输出和错误流重定向到文件或其他地方。主要形式包括>(覆盖)、>>(追加)、<(输入重定向)和<<(嵌入文档)。

11、嵌入文档

嵌入文档是一种用于生成长文本块的技术,通过指定特定的关键字来结束文档输入。这通常用于创建配置文件或生成特定格式的文档。

12、sh函数

sh脚本可以定义函数,函数通过function关键字定义,可以在脚本中的任何位置调用。函数可以接受参数,并可以有返回值。

13、sh中的通配符

通配符用于匹配文件名,包括:

  • 星号*:匹配零个或多个字符。
  • 问号?:匹配单个字符。
  • 方括号[]:匹配方括号内的任何一个字符。
    这些通配符在文件名匹配和模式匹配中非常有用。

14、命令分组

在sh脚本中,可以使用{}()对一组命令进行分组。{}将命令组合在一起,()会在子进程中执行命令组。这些分组通常用于控制命令的执行环境或I/O重定向。

15、eval语句

eval是一个内置命令,用于执行参数字符串中的命令,并将结果作为字符串返回。它通常用于动态生成命令并执行。

16、调试sh脚本

为了调试sh脚本,可以在执行时加上-x选项,例如bash -x myscript.sh,这将会显示每个命令的执行过程,帮助排查问题。此外,还可以使用set -xset +x命令来在脚本中开启和关闭调试模式。

二、问题及解决

在下述实践中需要使用目录地址,由于其余目录内容很少,我选择使用主目录,但是主目录地址并不知道,查询chatgpt后成功解决。

三、ChatGpt提问





四、实践及代码托管

包含两个小实践

4.1


4.2


4.3

代码托管至gitee,链接:https://gitee.com/wang-yuxuan333/123.git
具体为10.txt文档

标签:脚本,语句,信息安全,第十章,笔记,命令,sh,用于,执行
From: https://www.cnblogs.com/wyx235300/p/17700381.html

相关文章

  • 学习笔记3
    第10章sh编程——教材知识点归纳这一章课本为我们介绍的是sh编程内容,sh是一种脚本,是一种可以实现在linux中批量执行命令的文件。10.1~10.2sh脚本、sh脚本和C程序sh是Linux下进行批处理的脚本,我觉得它类似于windows下的bat脚本。可见sh脚本的逻辑和C语言等程序设计语言有很多......
  • 学习笔记3
    知识点归纳无论是Python、C、Java还是其他编程语言,程序设计语言通常都有一些共同的必备要素和技能。这些要素和技能在shell脚本中也可以找到对应,尽管shell脚本是一种脚本语言,与通用编程语言有些不同,但也具备类似的元素和技能。以下是一些必备的要素和技能:语法编写规范的代码:......
  • 学习笔记3
    知识点归纳一门程序设计语言的必备要素和技能可以总结为以下几点:语法:掌握语言的基本语法规则,包括变量的声明和赋值、控制结构(条件语句、循环语句等)、函数和类的定义等。数据类型:了解语言提供的不同数据类型,如整数、浮点数、字符串、数组、列表、字典等,并能灵活地运用它们。......
  • 学习笔记三
    一、任务详情自学教材第10章,提交学习笔记(10分)大家学习过Python,C,Java等语言,总结一下一门程序设计语言有哪些必备的要素和技能?这些要素和技能在shell脚本中是如何呈现出来的?知识点归纳以及自己最有收获的内容(3分)问题与解决思路(2分)实践内容与截图,代码链接(3分)...(知......
  • 学习笔记3
    第十章sh编程1.一门程序设计语言有哪些必备的要素和技能?这些要素和技能在shell脚本中是如何呈现出来的?-要素:数据类型、常量、变量、运算符、表达式、标识符、关键字、数组、基本控制结构、函数、输入和输出、解释器和编译器-技能:数据结构分析和设计算法分析和设计系统......
  • 《信息安全系统设计与实现》第三周学习笔记
    《信息安全系统设计与实现》第三周学习笔记第十章sh编程sh脚本sh脚本是一个包含sh语句的文本文件,命令行解释程序sh要执行该语句。例如创建一个文本文件mysh,包含:#!/bin/bash#commentlineechohello用chmod+xmysh使其可执行sh脚本与C程序sh是一个解释......
  • 学习笔记1
    知识点ubuntulinux的使用unix/linux常用命令ls:lsdirname:列出CWD或目录的内容cddirname:更改目录pwd:打印CWD的绝对路径名touchfilename:更改文件名时间戳(如果文件不存在,则创建文件)catfilename:显示文件内容cpsrcdest:复制文件mvsrcdest:移动或重命名......
  • 学习笔记2
    第九章I/O库函数一.知识点归纳(一)I/O库函数与系统调用系统调用函数:open()、read()、write()、lseek()、close()I/O库函数:fopen()、fread()、fwrite()、fseek()、fclose()二者区别:在系统调用程序中,文件描述符fd是一个整数。在库I/O程序中,fp是一个文件流指针。系统调用ope......
  • PPT| 企业信息安全架构全貌 P17
        本人在四大咨询机构从事咨询工作多年,二十年一线数字化规划咨询经验,提供制造业数智化转型规划服务,顶层规划/企业架构/数据治理/数据安全解决方案资料干货.   【智能制造数字化咨询】该PPT共86页,由于篇幅有限,以下为部分资料,如需完整原版 方案,点击关注下方。  ......
  • vue笔记
    一、vue项目vscode自动import,VUE组件和ts模块1、在vscode插件市场安装vetur插件2、修改tsconfig.json文件将moduleResolution改为node3、重启vscode,后面再下代码就可以自动import了。二、vue项目中使用elementplus参考elementplus官网:https://element-plus.org/zh-CN/guide/desig......