算法 + 数据结构 = 程序


编程语言分类:

低级语言:

机器语言:二进制码,0、1

汇编语言:用一些容易理解和记忆的缩写单词来代替一些特定的指令

高级语言:

解释型语言:源代码-->编译-->得到二进制可执行文件-->执行

eg:PHP、Python、Shell

编译型语言:源代码-->执行

eg:Java、C、C++、Golang

动态编译语言

不用事先声明,可随时改变类型

静态编译语言

需要事先声明,不可改变类型。


强类型语言


弱类型语言

编程风格:面向过程、面向对象


编程逻辑处理方式:顺序执行、选择执行、循环执行、


shell脚本语言的基本用法

脚本的用途:

将简单的命令组合完成复杂的工作,自动化执行命令,提高工作效率

减少手工命令的输入,一定程度上避免人为错误

将软件或应用的安装及配置实现标准化

用于实现日常性的,重复性的,非交互式的运维工作,如:文件打包压缩备份,监控系统运行状态并实现告警等


常见脚本执行方式:

相对路径执行:

绝对路径执行:

bash执行:

管道执行:

当前进程中执行:

当前子进程中执行:

本地执行远程脚本:

在远程主机中运行本地脚本:


脚本调试:

语法调试  bash -n 文件名称.sh

Debug     bash -x 文件名称.sh


脚本错误:

语法错误、命令错误、逻辑错误


变量类型:内置变量、用户自定义变量


系统环境变量 VS 用户环境变量

linux环境变量和Windows的环境变量一样,分系统环境变量和用户环境变量,系统环境变量对所有用户有效,而用户环境变量只对当前用户有效。

如果既配置了系统环境变量,又配置了用户环境变量,最终会以用户环境变量的配置为准。


全局变量 vs 局部变量

局部变量通过export提升称全局变量,但是值得注意的是就算在子shell中提升成全局变量,它的父shell中也不能用,与此相对的是将父shell中的局部变量提升成全局变量,它的子孙shell中却可以用。

全局变量能当在shell和子shell中显示无差别。

局部变量只能在当前shell中显示。

可用通过ps -f 查看当前机器中的进程