终端,附着在终端的接口程序:
GUI:KDE,GNome,Xfce
CLI:/etc/shells
bash的特性:
命令行展开:~,{ }
命令别名:alisa,unalisa
命令历史:history
文件名通配:glob
快捷键:Ctrl+a,e,u,k,l
命令补全:$PATH
路径补全:
bash特性之命令hash 缓存此前的查找结果:key-value key:搜索键 value:值
hash命令
hash:列出
hash -d command:删除缓存中的命令
hash -r:清空
bash的特性之:变量程序:指令+数据
指令:有程序文件提供
数据:IO设备、文件、管道、变量
程序:算法+数据结构
变量名+指向的内存空间
变量赋值:name=value
变量类型:存储格式、表示数据范围、参与的运算
编程语言:
强类型变量
弱类型变量:
- bash把所有变量统统视作字符型
- bash中的变量无需事先声明
变量替换:把变量名出现的位置替换为其所指向的内存空间中数据
变量引用:$(var_name),$var_name 一般括号可以省略
变量名:变量名只能包含数字、字母和下划线,而且不能以数字开头,不能使用程序的保留字符,例如:if ,else,then,while
bash变量类型:
本地变量: 作用域仅为当前shell进程
- 变量赋值:name=value
- 变量引用:${name},$name大多数情况可以省略大括号
- 查看变量set
- 撤销变量:unset name此处非变量引用,所以不用$符合
环境变量:
变量赋值:
- export name=value
- name=value
export name - declare -x name= value
- name=value
declare -x name
变量赋值:
局部变量:作用域仅为某种代码片段(函数上下文)
位置参数变量:当执行脚本的shell进程传递的参数
特殊变量: shell内置的有特殊功能的变量
- $?
- 1 0:成功
- 2 1-255:失败
注意:bash内嵌了许多环境变量(通常全为大写)用于定义bash的工作环境
PATH,HISTFILE,HISTSIZE, HISTFILESIZE , HISTCONTROL, SHELL, HOME, UID, PWD, OLDPWD
查看环境变量:export,declare -x,printenv,env
撤销环境变量:unset name
只读变量:- declare -r name
- readonly name
只读变量无法重新赋值,并且不支持撤销:存储时间为当前shell进程的生命周期,随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
短路法则:
~]# COMMAND1&& COMMAND2
COMMAND1为“假”,那么COMMAND2将不会运行
如果COMMAND1为“真”,那么COMMAND2必须运行