bash
支持 1、命令历史 (用上下键)、命令补全
2、支持管道、重定向
3、命令别名
4、命令行编辑
5、命令行展开
6、文件名通配
7、变量
8、编程
命令行编辑
Ctrl+a :跳到命令行首
Ctrl+e :跳到命令行尾
Ctrl+u :删除光标至命令行首的内容
Ctrl+k :删除光标至命令行尾的内容
Ctrl+l :清屏
命令历史
查看命令历史 :history 命令可以查看命令历史,带行号
-c :清空命令历史
-d : -d +行号 删除指定位置的命令历史
-w :保存命令历史至历史文件中(命令历史缓冲文件,这个文件的大小可以由系统环境变量 HISTSIZE 设置)
!n : 执行命令历史中的第n条命令
!-n :执行命令历史中倒数第n条命令
!! :执行上一条命令
!string :执行命令历史中最近一个以指定string开头的命令
!$ :引用前一个命令的最后一个参数
按ESC 加 . : 和 !$ 相同的作用
Alt+. : 和 !$ 相同的作用
命令补全
在环境变量 PATH 中指定的命令目录中搜索
敲一下 TAB键 唯一命令补全
敲两下TAB键 给出命令可选的列表
路径补全 自己明白 用的也是tab键
命令别名
alias CMDALIAS='COMMAND [options] [arguments]' 不带选项的命令可以不带单引号
例子:alias cls=clear
注意:在shell中定义的别名仅在当前shell生命周期中有效;别名的有效范围为当前shell进程;
可以在bash配置文件中配置永久生效的别名
unalias 别名 可以撤销别名
命令替换
所谓命令替换指的是 把命令中某个子命令替换为其执行结果的过程
用法: $(COMMAND) 或 反引号: `COMMAND`
如下图例子
bash支持的引号:
`` :(和 ~ 一个键) 命令替换
" " :弱引用,可以实现变量替换
' ' :强引用,不完全变量替换
文件名通配 globbing
通配符:
* 任意长度的任意字符
? 任意单个字符
[ ] 匹配指定范围内的任意单个字符 [abc] ,[a-m],[a-z],[A-Z],[0-9],[a-zA-Z],[0-9a-bA-Z],
[:space:] 所有空白字符,
[:punct:] 所有标点符号
[:lower:] 小写字母
[:upper:] 大写字母
[:alpha:] 大小写字母
[:digit:] 数字
[:alnum:] 数字和大小写字母
# man 7 glob
[^] 匹配指定范围之外的任意单个字符 [^0-9]*