bash:快捷键
Ctrl+a: 跳转至命令行首
Ctrl+e: 尾
Ctrl+u: 删除命令行首至当前光标所在处之前的所有内容
Ctrl+k: 删除当前光标所在处至命令行尾的所有内容
Ctrl+l: 清屏
Ctrl+c: 中止或取消
Ctrl+z: 把当命令送至后台配合bg、fg 使用-
bash环境:
编译器:
-
解释器:
- 解释:
- 词法分析
- 语法分析
- 语义分析
-条件判断,选择分支循环
- 过程式编程语言:
顺序执行
选择执行
循环执行
- 解释:
解释器:提供了编程环境
脚本:使用bash提供控制机制,将期望执行的命令罗列于文本文件中;
bash没有库,整个程序几乎都要依赖于系统命令来完成;编译型:
源程序(文本文件)--> 预处理 --> 编译 --> 汇编 --> 链接
静态语言
- 解释型
源程序(文本文件)--> 解析器去读取并执行
动态语言
- bash的重要特性:变量
-
bash变量类别:
- 本地变量:只对当前shell进程有效的变量;对其它shell进程无效,包当前shell进程的子进程;
VAR_NAME=VALUE - 变量赋值:向变量的存储空间保存数据
- 变量引用:${VAR_NAME}
- "":弱引用,里面的变量会被替换;
- '':强引用,里面的所有字符都是字面量,直接输出;
- 本地变量:只对当前shell进程有效的变量;对其它shell进程无效,包当前shell进程的子进程;
-
环境变量:对当前shell进程及其子shell有效,对其它的shell进程无效;
定义:export VAR_NAME=VALUE
导出:export VAR_NAME
用户可自义环境变量
撤消变量:unset VAR_NAME
只读变量:readonly VAR_NAME-
局部变量:
对shell脚本中某代码片断有效;通常用于函数本地;
local VAR_NAME=VALUE- 位置变量:
$1, $2, ..., ${10} - 特殊变量:
$? - 查看当前shell进程中的所有变量:set
- 查看当前shell进程中的所有环境变量:export, printenv, env
- 位置变量:
变量命名:
1、不能使用程序中的关键字(保留字);
if, case, for
2、只能使用数字、字母和下划线,且不能以数字开头;
3、要见名知义
userName
-
变量类型:
数值型:
精确数值:整数
近似数值:浮点型
单精度浮点
双精度浮点
字符型:
char
string
布尔型:
true, false
类型转换:
显式转换
隐式转换
bash是弱类型的语言:一切皆字符
18:0001 0010
18: 1, 8
ASCII: 128常用字符
000 0001 a
000 0010 a
1: 8bits
8: 8bits
18: 16bits110:
-
bash的配置文件:
-
profile类:为交互式登录的用户提供配置
全局:
/etc/profile
/etc/profile.d/*.sh
用户:
~/.bash_profile功用:
1、设定环境变量
2、运行命令或脚本 -
bashrc类:为非交互式的用户提供配置
全局:
/etc/bashrc
用户:
~/.bashrc功用:
1、设定本地变量
2、定义命令别名
-
登录类型:
-
交互式:
- 直接通过终端输入账号和密码登录;
- 使用su -l USERNAME 或 su - USERNAME;
-
非交互式:
- su USERNAME
- 图形界面下打开的终端
- 执行脚本
通过编辑配置文件修改的配置生效?
1、退出并重新登录;
2、让bash重读此配置文件;
. FILE
source FILE交互登录的用户:
/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc非交互登录的用户:
~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh