Shell¶
介绍¶
Bash Shell (后面简称 Shell )是 Unix shell 的一种,也是大多 Linux 发行版自带的默认 Shell 。熟记一些快捷键,可以大大地提高我们日常在 Linux 命令行操作的效率。
安装¶
Bash Shell 是大部分 Linux 发行版的默认 Shell 。一些发行版没有的话可以到 http://ftp.gnu.org/gnu/bash/ 处下载并编译安装。
常用快捷键¶
Bash 快捷键其实是 GNU Readline 快捷键。GNU ReadLine 是一个开源的跨平台程序库,只要使用了它的程序,都可以用同一个配置文件配置,而且用同样的方法操作命令行,让你可以方便的编辑命令行。
注解
这里介绍的快捷键是 Bash Shell 里面的快捷键。与其他 Shell (如 Zsh Shell , Fish Shell )的快捷键大部分相同,但并不完全一样。
移动光标¶
ctrl+b: 前移一个字符(backward)ctrl+f: 后移一个字符(forward)alt+b: 前移一个单词alt+f: 后移一个单词ctrl+a: 移到行首(a 是首字母)ctrl+e: 移到行尾(end)ctrl+xx: 在行首和光标当前位置来回转换
这里比较常用的是后面五个快捷键,方便我们来回移动光标来删除,添加,修改我们的命令行。尤其是最后一个 ctrl+xx 有时我们需要从当前位置移动回行首添加一下命令(比如添加 sudo 命令获取权限)之后回到之前的光标位置时会用到。
删除字符¶
alt+d: 删除当前光标到后一个单词的结束的字符ctrl+w: 删除当前光标到前一个单词的开始的字符ctrl+u: 删除光标到行首的字符ctrl+k: 删除光标到行尾的字符ctrl+h: 删除光标前一个字符(相当于 backspace)ctrl+d: 删除光标后一个字符(相当于 delete)
常用的是前四个, alt+d 和 ctrl+w 可以帮助我们删除命令行里边的参数, ctrl+u 和 ctrl+k 可以一起用达到删除整条命令的效果。
编辑字符¶
ctrl+shift+c: 复制ctrl+shift+v: 粘贴ctrl+t: 交换光标处和之前的字符(transposition)alt+t: 交换光标处和之前的单词
控制命令¶
ctrl+l: 清屏ctrl+s: 阻止屏幕输出ctrl+q: 允许屏幕输出ctrl+c: 终止命令ctrl+z: 挂起命令
查找历史命令¶
ctrl+r: 搜索历史命令(按Enter执行)ctrl+g: 从历史搜索模式中退出ctrl+p: 查看历史上一条命令(相当于PageUp)ctrl+n: 查看历史下一条命令(相当于PageDown)alt+.: 使用上一条命令的最后一个参数
ctrl+r 可以通过字符来查找历史命令,非常实用。 alt+. 用于重用上一条命令的最后一个参数。
比如我们创建目录时: mkdir foo + cd alt+. 。如果要使用上一条命令的全部参数,可以用下面的 !* Bang(!)命令。
Bang (!) 命令¶
Bang(!) 命令是 Shell 下面的历史扩展命令,是 Bash 下 History 库提供的一个将历史命令转换到可执行命令的功能。
!!: 执行上一条命令^foo: 删除上一条命令中的foo^foo^bar: 把上一条命令里的foo替换为bar,并执行!wget: 执行最近的以wget开头的命令!wget:p: 仅打印最近的以wget开头的命令,不执行!$: 使用上一命令令的最后一个参数, 与Alt+.相同!*: 使用上一条命令的所有参数!*:p: 打印上一条命令是所有参数,也即!*的内容!-num:执行前num条命令,执行上一条命令:!-1, 执行前5条命令的格式是:!-5