bash
好了,现在我们换了一个遥控器,感觉顺手多了。现在来操练一下,下载一首 mp3:
我们使用 wget 这个程序,它非常可靠,完全值得您信赖。
首先找到一个可以下载的地址,复制链接,在终端窗口内点击鼠标中键,把它粘贴进去。
现在终端中大概是这种情形:
http://linuxtoy.org/xxx.mp3
按下 Ctrl+a
组合键,我们发现光标移动到了行首。输入 wget
和 空格
wget http://linuxtoy.org/xxx.mp3
回车后,终端中出现一些信息,不一会儿工夫,mp3 便下载完成。
使用 Ctrl+a
组合键,我们就不需要使用方向键来移动光标,方向键每次只能移动一个字符,没有效率
您还可以使用 Ctrl+f
向前移动光标, Ctrl+b
向后移动光标, Ctrl+e
将光标移动到行末……(键绑定)
注意 | |
---|---|
Linux 的图形界面中,鼠标中键通常执行“粘贴”的操作,如果您的鼠标没有中键,您可以左右键同时按下。 |
中止正在运行的程序
如果一个命令持续时间很长,以致于不能够进行其它操作,可以使用 Ctrl+c
来强行中止它。
Ctrl+s
有时您会不小心按下 Ctrl+s
这个组合键,Shell 便被冻结。尝试使用 Ctrl+q
组合键,看能否恢复正常。
键绑定
等等,有必要记这么多快捷键么?都这么复杂!
我们强烈建议您记住,以大幅度的提高操作效率。而且这是 readline 控件的键绑定,在任何使用 readline 控件的程序中,您都可以使用它们。例如 bash、lftp、gdb 等程序;同时,Linux 下倍受追捧的 Emacs 编辑器,也是这种风格的键绑定(其实是 readline 使用了 Emacs风格 的键绑定才对),甚至 FireFox 中,也可以使用类似风格的快捷键!(Linux 下主要有两种风格的键绑定,一种是 Emacs风格,另一种是 Vi风格,我们会在 第 24 章 Vim 编辑器 中介绍)
现在列举一些 ReadLine 的键绑定,您可以自行尝试。(运行 man readline
命令,来查看 ReadLine 手册)
先来了解一些约定:
- \C-a 表示
Ctrl+a
- \M-a 表示
Meta+a
Meta键 在 PC 中通常为 ALT键
表 14.1. Emacs风格 键绑定
向前 | 向后 | |||
移动 | ||||
行 | \C-a | Ahead | \C-e | End |
字符 | \C-f | Forward | \C-b | Backward |
单词 | \M-f | \M-b | ||
命令 | \C-n | Next | \C-p | Previous |
删除 | ||||
行 | \C-u | \C-k | ||
字符 | \C-h | \C-d | ||
单词 | \C-w | \M-d | ||
搜索 | ||||
搜索 | \C-r (连续使用 C-r 可以查找下一个) | |||
浏览搜索结果 | \M-n | \M-p | ||
其它 | ||||
粘贴 | C-y | |||
撤销 | C— | |||
清空屏幕 | C-l |
自动补全
Tab | 使用频率最高的功能! | |
\C-o | 遍历补全 | (未定义) |
\M-? | 列出所有可能选项,相当于按两次 Tab键 | Alt+Shift+/ |
\M-# | 注释掉当前命令,用于将当前命令暂存于历史纪录列表 | Alt+Shift+3 |
\M-! | 补全命令,通常用来补全子命令,例如 sudo 的子命令 | Alt+Shift+1 |
\M-~ | 补全用户名 | Alt+Shift+` |
\M-@ | 补全主机名 | Alt+Shift+2 |
\M-$ | 补全变量 | Alt+Shift+4 |
\M-_ | 补全历史纪录中的纪录 | Alt+Shift+- |
\M-* | 将所有可能选项放到命令行中 | Alt+Shift+8 |
自定义键绑定
通过修改 /etc/inputrc
文件,可以更改键绑定。建议您使用默认的键绑定,以避免不必要的烦恼。当然了,Emacs风格 的键绑定是通用的,随时都有可能用到。
在文件中添加该行,可以将 ReadLine 的键绑定设为 VI风格。(Bash、Lftp 等使用 ReadLine 的软件同时生效)
set editing-mode vi
找到这一行:
$if mode=emacs
在它的下面添加如下内容
"\C-o": menu-complete
###这两行不是必须的,视情况而定###
"\C-p": non-incremental-reverse-search-history
"\C-n": non-incremental-forward-search-history
重新登录 Shell,您就可以使用 \C-o
(Ctrl+o)来遍历补全。假如您的文件名为中文,或者出现乱码时,您可以使用 \M-*
将所有文件名放入命令行,再删除多余的,这真是麻烦极了!简单一点的方法是使用 \C-o
遍历补全,将所有可能的选项轮流放入命令行。
提示 | |
---|---|
使用 Vim编辑器, vi /etc/inputrc ,在插入模式下使用 Ctrl+v 组合键。按下 Ctrl+o ,这时编辑区新增一个 ^O 字符,等价于 \C-o |