shell 命令行下不少键盘操作跟 Emacs 是类似的,可能不能说是从 Emacs 借鉴过来的,这些快捷的使用,谁早谁晚还不好考证,不过思路是一致的。之前某次突然来劲试了 C-a C-e 等,刚搜索并实践了若干操作,在 SecureCRT 登录 suse 的环境验证了,整理如下(不一定是所有 shell 都支持):
(注意下面的”前”都是指”左”或”上”,”后”是”右”或”下”)
C-r 查找历史执行命令,很便捷的调用历史命令的方式,输入历史命令关键字,就会及时显示匹配命令,enter 即可执行
C-p 前一条指令
C-n 后一条指令
C-c 终止已经运行的命令(针对还没有运行完的命令和脚本,实际为向相关进程发送中断信号)或者取消已经输入的命令
C-o/C-j/C-m 执行当前行输入的命令,跟 enter 类似
C-l 清屏,clear 命令
C-a 移动光标到行首
C-e 移动光标到行尾
C-t 交换光标前俩字符的位置
C-h 往后删除一字符
C-d 往前删除一字符
C-b 往后移动一个字符
C-f 往前移动一个字符
下面几个操作原理估计类似 emacs 的 yank 操作,可以理解为一套独立的粘贴板机制:
C-w 剪切前一个单词(空格间隔的字符串单元)
C-u 剪切到行首
C-k 剪切到行尾
C-y 粘贴剪切
(注意下面的”前”都是指”左”或”上”,”后”是”右”或”下”)
C-r 查找历史执行命令,很便捷的调用历史命令的方式,输入历史命令关键字,就会及时显示匹配命令,enter 即可执行
C-p 前一条指令
C-n 后一条指令
C-c 终止已经运行的命令(针对还没有运行完的命令和脚本,实际为向相关进程发送中断信号)或者取消已经输入的命令
C-o/C-j/C-m 执行当前行输入的命令,跟 enter 类似
C-l 清屏,clear 命令
C-a 移动光标到行首
C-e 移动光标到行尾
C-t 交换光标前俩字符的位置
C-h 往后删除一字符
C-d 往前删除一字符
C-b 往后移动一个字符
C-f 往前移动一个字符
下面几个操作原理估计类似 emacs 的 yank 操作,可以理解为一套独立的粘贴板机制:
C-w 剪切前一个单词(空格间隔的字符串单元)
C-u 剪切到行首
C-k 剪切到行尾
C-y 粘贴剪切