Chinaunix首页 | 论坛 | 博客
  • 博客访问: 150076
  • 博文数量: 24
  • 博客积分: 455
  • 博客等级: 下士
  • 技术积分: 309
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-22 09:43
文章分类

全部博文(24)

文章存档

2013年(7)

2012年(5)

2011年(11)

2010年(1)

我的朋友

分类: LINUX

2011-11-16 10:00:45

From http://linuxtoy.org/archives/bash-shortcuts.html

这个总结的不错,转载一下以备查阅。

生活在 Bash shell 中,熟记以下快捷键,将极大的提高你的命令行操作效率。

编辑命令
  • Ctrl + a :移到命令行首
  • Ctrl + e :移到命令行尾
  • Ctrl + f :按字符前移(右向)
  • Ctrl + b :按字符后移(左向)
  • Alt + f :按单词前移(右向)
  • Alt + b :按单词后移(左向)
  • Ctrl + xx:在命令行首和光标之间移动
  • Ctrl + u :从光标处删除至命令行首
  • Ctrl + k :从光标处删除至命令行尾
  • Ctrl + w :从光标处删除至字首
  • Alt + d :从光标处删除至字尾
  • Ctrl + d :删除光标处的字符
  • Ctrl + h :删除光标前的字符
  • Ctrl + y :粘贴至光标后
  • Alt + c :从光标处更改为首字母大写的单词
  • Alt + u :从光标处更改为全部大写的单词
  • Alt + l :从光标处更改为全部小写的单词
  • Ctrl + t :交换光标处和之前的字符
  • Alt + t :交换光标处和之前的单词
  • Alt + Backspace:与 Ctrl + w 相同类似,分隔符有些差别 [感谢 rezilla 指正]
重新执行命令
  • Ctrl + r:逆向搜索命令历史
  • Ctrl + g:从历史搜索模式退出
  • Ctrl + p:历史中的上一条命令
  • Ctrl + n:历史中的下一条命令
  • Alt + .:使用上一条命令的最后一个参数
控制命令
  • Ctrl + l:清屏
  • Ctrl + o:执行当前命令,并选择上一条命令
  • Ctrl + s:阻止屏幕输出
  • Ctrl + q:允许屏幕输出
  • Ctrl + c:终止命令
  • Ctrl + z:挂起命令
Bang (!) 命令
  • !!:执行上一条命令
  • !blah:执行最近的以 blah 开头的命令,如 !ls
  • !blah:p:仅打印输出,而不执行
  • !$:上一条命令的最后一个参数,与 Alt + . 相同
  • !$:p:打印输出 !$ 的内容
  • !*:上一条命令的所有参数
  • !*:p:打印输出 !* 的内容
  • ^blah:删除上一条命令中的 blah
  • ^blah^foo:将上一条命令中的 blah 替换为 foo
  • ^blah^foo^:将上一条命令中所有的 blah 都替换为 foo

友情提示

  1. 以上介绍的大多数 Bash 快捷键仅当在 emacs 编辑模式时有效,若你将 Bash 配置为 vi 编辑模式,那将遵循 vi 的按键绑定。Bash 默认为 emacs 编辑模式。如果你的 Bash 不在 emacs 编辑模式,可通过 set -o emacs 设置。
  2. ^S、^Q、^C、^Z 是由终端设备处理的,可用 stty 命令设置。

再转一篇更完整和深入的,因为讲到了shell的bind命令。


bash 中的主命令提示符同时提供了编辑命令行的能力和历史记录功能,后者记住各个命令行,以便您能够再次执行它们。

编辑功能意味着您可以在当前显示的命令行中向前和向后移动,以做出更改或纠正输入错误。在标准 bash 形式中,您可以使用光标键来执行基本的移动。更广泛的命令(例如按单词向前和向后移动)可以通过 Readline 库来控制,该库在缺省情况下同时支持 vi 和 emacs 绑定。若要设置编辑模式,可以在命令行上或在引导文件中指定您的首选模式:$ set editing-mode emacs。

使用内部 bind bash 命令,您实际上可以随心所欲地将任何键或组合绑定到某个特定的操作。首先,您可以通过使用 -P 选项来获取可用命令列表

\C 引用 Control 键。\M 序列引用“Meta”键(某些键盘上的专用键,或者通常为 Alt 键或 Escape 键)。

若要设置绑定,您必须指定键序列和要执行的命令,它们之间用分号分隔,并且键序列要用双引号来转义(在极端情况下,您可能需要使用单引号来对该形式 进行再次转义)。例如,若要将 Control-B 更改为逐个单词地向后移动,可以使用$ bind "\C-b":backward-word

您甚至可以使用绑定来执行 Shell 命令(例如,运行某个应用程序)。为此,您必须添加 -x 选项,这是需要两次转义的一个示例。例如,若要将 Control-E 设置为运行 emacs,您要使用以下命令:$ bind -x '"\C-e"':emacs。

若要让 bash 中的键绑定在每次都启用,您可以设置 .inputrc 文件中的信息(然后此文件将影响所有启用了 Readline 的应用程序)

--------------------------------------------------------------------------------------------------------------------------------------

2010-06-06 xiao H Posted in

CTRL 键Ctrl + a - Jump to the start of the line
Ctrl + b - Move back a char
Ctrl + c - Terminate the command //用的最多了吧?
Ctrl + d - Delete from under the cursor
Ctrl + e - Jump to the end of the line
Ctrl + f - Move forward a char
Ctrl + k - Delete to EOL
Ctrl + l - Clear the screen //清屏,类似 clear 命令
Ctrl + r - Search the history backwards //查找历史命令
Ctrl + R - Search the history backwards with multi occurrence
Ctrl + u - Delete backward from cursor // 密码输入错误的时候比较有用
Ctrl + xx - Move between EOL and current cursor position
Ctrl + x @ - Show possible hostname completions
Ctrl + z - Suspend/ Stop the command
补充:
Ctrl + h - 删除当前字符
Ctrl + w - 删除最后输入的单词
ALT 键

平时很少用。有些和远程登陆工具冲突。

Alt + < - Move to the first line in the history
Alt + > - Move to the last line in the history
Alt + ? - Show current completion list
Alt + * - Insert all possible completions
Alt + / - Attempt to complete filename
Alt + . - Yank last argument to previous command
Alt + b - Move backward
Alt + c - Capitalize the word
Alt + d - Delete word
Alt + f - Move forward
Alt + l - Make word lowercase
Alt + n - Search the history forwards non-incremental
Alt + p - Search the history backwards non-incremental
Alt + r - Recall command
Alt + t - Move words around
Alt + u - Make word uppercase
Alt + back-space - Delete backward from cursor
// SecureCRT 如果没有配置好,这个就很管用了。
其他特定的键绑定:

输入 bind -P 可以查看所有的键盘绑定。这一系列我觉得更为实用。

Here "2T" means Press TAB twice
$ 2T - All available commands(common) //命令行补全,我认为是 Bash 最好用的一点
$ (string)2T - All available commands starting with (string)
$ /2T - Entire directory structure including Hidden one
$ ./2T - Only Sub Dirs inside including Hidden one
$ *2T - Only Sub Dirs inside without Hidden one
$ ~2T - All Present Users on system from "/etc/passwd" //第一次见到,很好用
$ $2T - All Sys variables //写Shell脚本的时候很实用
$ @2T - Entries from "/etc/hosts" //第一次见到
$ =2T - Output like ls or dir //好像还不如 ls 快捷
补充:
Esc + T - 交换光标前面的两个单词
阅读(1291) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~