学习笔记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)
、Zsh
、sh(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脚本支持条件语句,如if
、elif
、else
,用于根据条件执行不同的命令块。
循环结构: Shell脚本可以使用for
、while
等循环结构来重复执行一组命令,用于处理重复性任务。
函数: 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命令和工具,如awk
、sed
、grep
等。
算法分析和性能优化: 虽然Shell脚本通常不是处理高性能任务的首选语言,但了解如何分析脚本的性能瓶颈,并采取适当的优化措施仍然很重要。