命令行编辑:
光标跳转:
- Ctrl+a:跳到命令行首
- Ctrl+e:跳到命令行尾
- Ctrl+u: 删除光标至命令行首的内容
- Ctrl+k: 删除光标至命令行尾的内容
- Ctrl+l: 清屏
命令历史:
查看命令历史:history
- -c:清空命令历史
- -d OFFSET [n]: 删除指定位置的命令
- -w:保存命令历史至历史文件中
命令历史的使用技巧:
- !n:执行命令历史中的第n条命令;
- !-n:执行命令历史中的倒数第n条命令;
- !!: 执行上一条命令;
- !string:执行命令历史中最近一个以指定字符串开头的命令
- !$:引用前一个命令的最后一个参数;
- Esc, . Alt+.
命令补全,路径补全
- 命令补全:搜索PATH环境变量所指定的每个路径下以我们给出的字符串开头的可执行文件,如果多于一个,两次tab,可以给出列表;否则将直接补全;
- 路径补全:搜索我们给出的起始路径下的每个文件名,并试图补全;
命令别名 alias CMDALIAS='COMMAND [options] [arguments]' 在shell中定义的别名仅在当前shell生命周期中有效;别名的有效范围仅为当前shell进程;
ualias CMDALIAS
命令替换: $(COMMAND), 反引号:`COMMAND` 把命令中某个子命令替换为其执行结果的过程
bash支持的引号:
- ``: 命令替换
- "": 弱引用,可以实现变量替换
- '': 强引用,不完成变量替换
文件名通配, globbing
- *: 任意长度的任意字符
- ?:任意单个字符
- []:匹配指定范围内的任意单个字符 [abc], [a-m], [a-z], [A-Z], [0-9], [a-zA-Z], [0-9a-zA-Z]
- [:space:]:空白字符
- [:punct:]:标点符号
- [:lower:]:小写字母
- [:upper:]: 大写字母
- [:alpha:]: 大小写字母
- [:digit:]: 数字
- [:alnum:]: 数字和大小写字母
- [^]: 匹配指定范围之外的任意单个字符
# man 7 glob 查看帮助文档