1. 命令快速编辑
组合键 | 功能 |
---|---|
ctrl + u | 从光标处向前删除命令串(不含光标) |
ctrl + k | 从光标处向后删除命令串(含光标) |
ctrl + a | 让光标处移动到命令串最前面 |
ctrl + e | 让光标处移动到命令串最后面 |
2. bash默认组合键
其中ctrl +c
与ctrl + q
较为常用
组合键 | 执行结果 |
---|---|
ctrl + c | 终止目前命令 |
ctrl + d | 输入结束(EOF) |
ctrl + m | 回车 |
ctrl + s | 暂停屏幕输出,常有小伙伴随手ctrl + s,这个时候屏幕就不响应啦 |
ctrl + q | 恢复屏幕输出(误按ctrl + s后按这个可恢复) |
ctrl + u | 在提示字符下,删除整列命令 |
ctrl + z | 暂停目前命令 |
3. 变量设置规则
- 变量与变量内容之间通过 = 连接,等号两边不能有空格
- 变量名只能是英文字母与数字,但不能以数字开头
- 变量内容含空格可以用双引号或单引号包含
- 若变量需要在子程序中执行,需要
export 变量
- 取消变量,
unset var
- 反撇号中可以添加命令,一串命令中,反撇号中的命令最先被执行,如
ls -ld `locate crontab` # 先执行locate crontab
4. 变量相关命令
- env: 列出目前的shell下的所有环境变量及其内容
- set: 查看所有变量(含环境变量与自定义变量)
- read [-pt] var: 读取来自键盘输入的变量 ,-p后接提示字符,-t后接等待时间(s)
- declare [-aixr] var: 声明变量类型,-a 表示数组, -i 表示整数,-x 表示声明为环境变量, -r 表示只读变量(变量默认是字符串,如sum=1+2,则sum默认是字符串“1+2”,而不是3)
- ulimit: 限制用户的系统资源,如可开启文件数量,可使用内存量,可使用CPU时间等
5. 变量的删除、替换
变量设置方式 | 说明 |
---|---|
${变量#关键词} | 若变量内容从头开始的数据符合【关键词】, 将符合的最短数据删除 |
${变量##关键词} | 若变量内容从头开始的数据符合【关键词】, 将符合的最长数据删除 |
${变量%关键词} | 若变量从尾向前的数据符合【关键词】, 将符合的最短数据删除 |
${变量%%关键词} | 若变量从尾向前的数据符合【关键词】, 将符合的最长数据删除 |
${变量/旧字符串/新字符串} | 若变量内容符合【旧字符串】, 则【第一个旧字符串会被新字符串替换】 |
${变量//旧字符串/新字符串} | 若变量内容符合【旧字符串】, 则【全部旧字符串会被新字符串替换】 |
6. 通配符
符号 | 意义 |
---|---|
* | 0到无穷多个字符 |
? | 代表任意单个字符(有且只有一个) |
[] | 代表括号内的任意单个字符(有且只有一个)。 例如[abcd]代表一定包含abcd四个字符中的一个。 |
[-] | 若有减号在括号内,代表在编码顺序内的所有数字。 例如[1-9]代表1和9之间所有数字其中的一个。 |
[^] | 括号中的第一个字符为^代表反向选择。 |
7. 特殊符号
符号 | 内容 |
---|---|
# | 注释符号,其后数据均不执行 |
\ | 转义符,将通配符合特殊字符转换为一般字符 |
| | 分隔两个管道命令 |
; | 分隔连续的命令 |
~ | 用户家目录 |
$ | 变量前导符 |
& | 任务管理,将命令变成后台任务 |
! | 逻辑运算中的非 |
/ | 目录分隔符 |
>、>> | 输出重定向:替换与累加 |
<、<< | 输入重定向 |
’ ’ | 单引号,不具备变量替换功能($变为纯文本) |
" " | 双引号,具备变量替换功能($为取变量值) |
`` | 撇号,两个撇号之间可以执行命令,可用$()代替 |
() | 自shell的起始与结束 |
{} | 中间为命令区块的组合 |
8. 数据流重定向
- 标准输入:代码0,使用 < 或 << 表示
- 标准输出:代码1,使用 > 或 >>表示
- 标准错误:代码2,使用 2> 或 2>> 表示
- /dev/null 为垃圾桶,不需要的数据输向这里
- 标准输出和标准错误同时输到一个文件中,先写输出文件,再写
2>&1
或&>