一:名词理解
编译型:源程序(文本文件) 预处理 编译 汇编 链接
静态语言
解释型:源程序(文本文件) 解析器读取并执行
动态语言
编译器:
解释器:
解释:
词法分析
语法分析
语义分析
条件判断:选择分支
循环:
对象式编程:
过程式编程:
顺序执行
选择执行
循环执行
解释器:提供了编程环境
脚本:使用bash提供控制机智,将期望执行的命令罗列于文本文件中
bash没有库,整个程序几乎都要依赖于命令
二、变量
1、bash变量类别:
本地变量:只对当前shell进程有效,对其它shell进程无效,包括当前shell的子进程
变量赋值:向变量的存储空间保存数据 VAR_NAME=VALUE
变量引用:${VAR_NAME}
“”:弱引用,里面的变量会被替换
'':强引用,里面的所有字符都是字面量,直接输出
环境变量:对当前shell进程有效及其子shell有效,对其他shell无效
定义:export VAR_NAME=VALUE
导出:export VAR_NAME
撤销变量: unset VAR_NAME
只读变量: readonly VAR_NAME
用户可自定义,bash有许多内置的环境变量
局部变量:对shell脚本中某代码片段有效,通常用于函数本地:
定义: local VAR_NAME=VALUE
位置参数变量:$1,$2,$3、、、${10}
特殊变量:$?,
查看当前shell进程中的所有变量:set
查看当前shell进程中的所有环境变量:export,printenv,env
变量命令:
1、不能使用程序中的关键字(保留字)如,if,case,for
2、只能使用数字,字母和下划线,且不能以数字开头
3、要见名知义
2、变量类型
a.存储机制
b.存储空间
c.参与的运算方式
(二进制)数字的存储, 18:00010010
文本的存储, ASCII:128常用字符 18:1,8
1:8bits 8:8bits 18:16bits
变量类型:
数值型:
精确数值:整数
近似数值:浮点型
单精度浮点
双精度浮点
字符型:
char
string
布尔型:true,false
bash是弱字符型语言,一切皆字符
类型转换:显示转换,隐式转换
三、bash的配置文件
profile类:为交互式登录的用户提供配置
全局:
/etc/profile
/etc/profile.d/*.sh
用户:~/.bash_profile
用途:
1、设定环境变量
2、运行命令或脚本
bashrc类:为非交互式用户提供配置
全局:/etc/bashrc
用户:~/.bashrc
用途:
1、设定本地变量
2、定义命令别名
登录类型:
交互式:直接通过终端输入帐号和密码登录,使用su - USERNAME
非交互式:su USERNAME
图形界面下打开的终端
执行脚本
如何使通过编辑配置文件修改的配置生效?
1、退出并重新登录
2、让bash重读此配置文件
. FILENAME 注意,多次重读配置文件可能会产生重复赋值
source FILENAME
系统开机读取bash配置文件顺序
交互登录的用户:
/etc/profile /etc/profile.d/*.sh ~/.bash_profile ~/.bashrc /etc/bashrc
非交互式登录的用户:
~/.bashrc /etc/bashrc /etc/proile.d/*.sh