bash特性及bash脚本编程初步
终端:附着在终端的接口程序:
GUI:KDE,GNome,Xfce
CLI:/etc/shells
bash的特性:
命令行展开:~,{}
命令别名:alias,unalias
命令历史:history
文件名通配:glob
快捷键:Ctrl+a,e,u,k,l
命令补全:$PATH
路径补全
bash的特性之:命令hash
缓存此前命令的查找结果:key-value hash命令: hash:列出 hash -d COMMAND:删除 hash -r:清空列表
bash特性之:变量
程序:指令+数据 指令:由程序文件提供 数据:IO设备,文件,管道,变量 程序:算法+数据结构 变量名+指向的内存空间=变量 变量赋值:name=value 变量类型:决定存储格式、表示数据范围、参与的运算 编程语言: 强类型变量编程语言:c (变量限制严格) 弱类型变量编程语言: bash把所有变量通通视作字符型:做数字运算时自动转换 bash中变量无需事先声明,相当于把声明和赋值过程同时实现 生命:类型,变量名 变量替换:把变量名出现的位置替换为其所指向的内存空间中数据 变量引用:${var_name} 变量名规范:包含字母,数字,下划线 ,不能以数字开头
-
bash变量类型:
本地变量:作用于仅为当前shell进程 环境变量:作用于为当前shell进程及其子进程 局部变量:作用于仅为某代码片段(函数上下文) 位置参数变量:当执行脚本的shell进程传递的参数 特殊变量:shell内置的有特殊功用的变量: $? 0:成功 1-255:失败 本地变量: 变量赋值:name=value 变量引用:${name} "":变量名会替换为其值 '':变量名不会替换为其值 查看变量:set 撤销变量:unset name 环境变量: 变量赋值 1.export name=value 2.name=value export name 3.declare -x name=value 4.name=value declare -x name 变量引用:${name} 注意:bash内嵌了许多环境变量(通常为全大写字符),用于定义bash的工作环境 PATH,HISTFILE,HISTSIZE,SHELL,HOME,UID... 查看环境变量:export,declare -x,printenv,env 撤销环境变量:unset name 只读变量: 1.declare -r name 2.readonly name 不可更改不可撤销,随shell进程终止而终止
bash特性之:多命令执行
[~]#COMMAND1;COMMAND2;COMMAND3... 逻辑运算: 运算数:真(true,yes,on,1) 假(false,no,off,0) 与: 1 && 1 = 1 1 && 0 = 0 0 && 1 = 0 0 && 0 = 0 或: 1 || 1 = 1 1 || 0 = 1 0 || 1 = 1 0 || 0 = 0 非: !1 = 0 !0 = 1
示例:id $username || useradd $username