首先是两个有意思的命令
clear
: 清屏
history
:显示历史列表的记录
1.编辑命令行
bash使用一个名为Readline的库来实现命令行的编辑。
1.1 光标移动
表1 光标移动命令
组合键 | 作用 |
---|---|
Ctrl+A | 移动光标到行首 |
Ctrl+E | 移动光标到行尾 |
Ctrl+F | 光标向前移动一个字符;和右箭头作用相同 |
Ctrl+B | 光标向后移动一个字符;和左箭头作用相同 |
Alt+F | 光标向前移动一个字 |
Alt+B | 光标向后移动一个字 |
Ctrl+L | 清屏并把光标移动到左上角;clear命令可以完成相同工作 |
1.2 修改文本
表2 文本编辑命令
组合键 | 作用 |
---|---|
Ctrl+D | 删除光标处的字符 |
Ctrl+T | 使光标处的字符与其前边字符对调 |
Alt+T | 使光标处的字符与其前边字对调 |
Alt+L | 把从光标到字尾的字符转换成小写字母形式 |
Alt+U | 把从光标到字尾的字符转换为大写字母形式 |
1.3剪切和粘贴文本
表3 剪切和粘贴命令
组合键 | 作用 |
---|---|
Ctrl+K | 剪切从光标到行尾的文本 |
Ctrl+U | 剪切从光标到行首的文本 |
Alt+D | 剪切从光标到词尾的文本 |
Alt+空格 | 剪切从光标到词头的文本。如果光标已经在词头,则剪切前一个单词 |
Ctrl+Y | 把kill-ring缓冲区的文本粘贴到光标位置 |
2.自动补齐功能
在输入命令是,按下Tab键将触发自动补齐功能。
没有自动补齐,只有哔哔声,意思是无匹配项。
3.使用历史命令
3.1 搜索历史命令
$ history | less
假如我们想列出/usr/bin相关的命令,可以
$ history | grep /usr/bin
例如有如下输出:
911 ls /bin /usr/bin | sort | uniq | grep -v zip
数字911代表了这个命令行在历史记录列表中所处的行号,可以通过使用名为历史记录扩展(history expansion)的扩展类型来立即使用它
$ !911
bash把!911扩展为历史列表中的第911行的内容.
bash也支持递增方式搜索历史记录,也就是说,当搜索历史记录时,随着输入字符数的增加,bash会相应改变其搜索范围。按下Ctrl+R键,接着输入想要查找的内容,当找到要查找的内容时,按下Enter键表示执行此命令。当要查找下一个匹配项时,再次按下Ctrl+R.若要退出搜索,可以按Ctrl+G或者Ctrl+C.
表4 历史记录命令
组合键 | 作用 |
---|---|
Ctrl+P | 移动到前一条历史记录,相当于上箭头 |
Ctrl+N | 移动到后一条历史记录,相当于下箭头 |
Alt+< | 移动到历史记录开始处 |
Alt+> | 移动到历史记录结束处 |
Ctrl+R | 逆向递增地搜索 |
Alt+R | 逆向非递增地搜索,按下这个组合键,接着输入待搜索的字符串,在按下Enter键后,搜索才真正开始 |
Alt+N | 向前飞递增地搜索 |
Ctrl+O | 执行历史记录列表中的当前项,执行完后跳到下一项 |
3.2 历史记录扩展
表6 历史记录扩展命令
序列 | 行为 |
---|---|
!! | 重复最后一个执行的命令 |
!number | 重复历史记录中第number行命令 |
!string | 重复最近以string开头的历史命令 |
!?string | 重复最近包含string的历史命令 |