我爱编程

Bash命令行快捷键与技巧

2018-05-27  本文已影响0人  alan787

Bash命令行快捷键与技巧

引言

Bash默认使用 Emacs 的输入模式,使用 GNU Readline 的KeyBinding(注:Mysql命令行也是使用它)

如果想使用vi KeyBinding可以在启动时设置set -o vi,通过命令可以看到具体当前设置情况:

[root@spirit1 ~]# set -o | grep -Ew "emacs|vi"

emacs          on

vi            off

vi mode简介,输入set -o vi 后直接进入了vi的INSERT模式,通过ESC的方式进入COMMAND模式,ESC后左右移动光标使用HL,上下命令行是用JK, 进入编辑模式使用i, 查找历史 ESC, /。更多vi mode内容可以参考 bash-vi-command-line-editing

因为Emacs和Vi都是神级编译器,熟悉他们将大大提高命令行操作效率,我对于他们也是刚刚入门,不过多介绍。

下面我主要介绍Emacs模式的相关内容

常用快捷键列表

注意剪切和删除的区别:剪切内容可以用于粘贴。

使用到MetaKey的快捷键,以下MetaKey设置为ESC表示(Windows下XShell/SecureCRT、macOS的iTerm2默认都是ESC)

部分快捷键如图:(此处的Alt对应ESC)

[图片上传失败...(image-fadcc1-1527382448837)]

暂不常用快捷键列表

其他未知的快捷键

高效操作历史命令(强大)

先看个例子:

[root@spirit1 ~]# touch file1 file2 file3 # 生成文件

[root@spirit1 ~]# mkdir !!*:gs/file/dir        # 替换上一个命令中所有参数file字符为dir,若不加*则是整行命令

mkdir dir1 dir2 dir3

操作历史命令分为三步:

更多内容见Bash History Expansion, 感叹号提高Bash下效率——历史扩展(bang命令)

典型场景

跳到命令行中间指定为执行位置进行编辑

[root@spirit1 ~]# ls /test/abcdef /test/abcdef 当前命令行下想要修改中间的test,一种方式是使用LeftArrow按字符移动亦或使用Alt+B按单词移动,更快速的方式时使用Ctrl+r,str 快速定位。

如果想定位到右边的test:

如果想定位到左边的test,只需要再按一次 Ctrl+r 即可

创建一个目录并切换到新目录

操作步骤

快速删除到指定位置

比如先测试了 export PYTHONPATH=./eggs/hiredis-0.2.0-py2.7-linux-x86_64.egg/ && python test_pythonpath.py ,然后需要测试 PYTHONPATH=''的场景,此时需要先删除 ./eggs/hiredis-0.2.0-py2.7-linux-x86_64.egg/,但是 CTRL+WALT+DELETE 都不是很合适,一个删除太多,一个需要多次操作。

技巧(Tricks And Tips)

To Be Continued

这里的很多技巧都是利用Emacs的知识点,因此深入了解Emacs有助于更好的使用Bash

Reference

上一篇下一篇

猜你喜欢

热点阅读