1、命令行补全、路径补全
Tab;按两次Tab可以给出系统所有的命令
命令补全:根据我们所给出的字符串在PATH环境变量中定义的路径进行查找;多于一个按两次Tab可以给出列表,否则直接补全
路径补全;根据我们所给出的起始路径下的文件名进行补全
2、命令别名
alias可以查看系统中定义的别名
alias 别名=命令
删除别名使用unalias 别名
在shell中定义的别名只对当前shell的生命周期生效,别名的有效范围仅为当前shell
如果要执行一个命令本身而非别名时使用 \命令 的方式,例如执行rm本身而非命令别名则使用\rm
3、命令替换
把某条命令中的子命令替换为其执行的结果
$(命令)或`命令`(反引号)
例如创建一个以$HISTSIZE变量值为名的文件 touch $(echo $HISTSIZE)或touch `echo $HISTSIZE`
bash支持的引号
`` 反引号 命令替换
‘‘ 单引号 强引用,不完成变量替换
"" 双引号 弱引用,可以实现变量替换
4、文件名通配
* 匹配任意长度的任意字符
?匹配任意单个字符
[]匹配指定范围的任意单个字符
[abc]匹配a、b、c中的任意一个
[a-z]匹配a-z字母中的任意一个
[A-Z]匹配A-Z字母中的任意一个
[0-9]匹配0-9数字的任意一个
[a-zA-Z]匹配a-z、A-Z中的任意一个
[0-9a-zA-Z]匹配0-9、a-z、A-Z中的任意一个
[[:space:]]第一个括号代表匹配符,[:space:]代表的是一个字符串
[:space:]空白字符
[:punct:]标点符号
[:lower:]小写字符
[:upper:]大写字母
[:alpha:]大小写字母
[:digit:]数字
[:alnum:]数字和大小写字母
可以使用man 7 glob查看此列表
[^]匹配指定范围外的任意单个字符
当然也有很多无法使用通配符进行匹配的,例如;就需要使用正则表达式了
5、命令历史
history 变量HISTSIZE记录使用过的命令,默认值为1000
-n 显示最近使用过的n个命令
-a 添加记录
-r 读取记录,但不会添加内容记录
-w 覆盖现有的history文件
-c 清除记录
!n 执行历史命令的第n条 n为编号
!-n 执行历史命令的倒数第n条
!! 执行上一条命令
!字符串 执行命令历史最近一个以指定字符串开头的命令
!$ 引用前一个命令的最后一个参数
ESC .(按ESC后松开再按.) 同上
Alt+. (ALT和.同时按)不支持模拟终端)同上
6、命令行编辑
光标跳转;
Ctrl + a :跳转到行首
Ctrl + e :跳转到行尾
Ctrl + u :删除光标到行首的内容
Ctrl + k :删除光标到行尾的内容
Ctrl + l :清屏
Ctrl + C :中断操作
Ctrl + D :退出shell