博客 2015-04-21

简介:

想像黑客一样快速的打命令吗? 那就要懂得常用的快捷键,而不是用方向键一个一个移动,太慢了,我早就受不了,你呢?


常用快捷键: 

1.设置模式:

set -o vi/emacs                                (一般不用改,习惯vi模式的可以改)


2.调用过的命令(内容):

history中找命令                              (找准一个关键字就可)

ctrl + r ctrl +f/b                                   (change)

alt + . =!$                                         (上一条命令的最后一个参数

alt + 0 .                                             (上一条命令第一个参数(alt 0 .. 上上)


3.移动光标

Ctrl + f/b                                          (charactor)

alt + f/b                                             (word)

ctrl + a/e                                         (start/end)


4.删除字符与单词

Ctrl + H                                       (charactor)

Alt + Backspace                              (word)

Ctrl + w                                        (Big-word)

ctrl + u/k                                      (删除到开始与结尾)


5.粘贴

ctrl + Y

ctrl + /                                           (恢复原来的)

Alt + y


6交换位置

Ctrl + t                                         (交换两个字母位置)

alt + t                                           (交换两个单词位置)


7历史命令

Ctrl + P                                        (上一个历史命令)

Ctrl + N                                       (下一个历史命令)

Ctrl + L                                       (等同clear命令)


高级进阶:

1.历史命令与参数的引用:

a.调用历史命令:  

    !!         最后一条历史命令

    !-2        倒数第二条(!-1  ==!!)

    !456    第456条历史命令

    !?ls      包含ls的,最近使用的历史命令

    

b.调用当前命令行的参数

    !#:1    当前命令行的第一个参数

    !#:2*    当前命令行第二个及以后的参数

    !#:2-8    当前命令行第二至第八个参数

    !#:*        当前命令行的所有参数


c.调用历史命令行中的参数

    !!:1    上个命令的第一个参数(等同于!:1  等同于!:^  等同于!^ 等同于 Ctrl + Alt + Y)

    !!:$     上个命令的最后一个参数(等同于!:$   等同于!$  等同于 Alt + . )

    !-2:2-8   倒数第二个命令的第2-8个参数

    !:*


2.历史字符串替换:

a.删除历史字符串:

    ^ls         删除上个含有 ls 命令中的ls   


b.替换:

    ^lss^ls   替换上个含有 lss 命令中的lss为ls ( 只替换第一个,等同于 !:s/lss/ls )

    !:gs/lss/ls   替换上个含有 lss 命令中的lss为ls ( 替换所有 )


3.历史命令参数的切割:

!$:h        参数路径   =dirname

!$:t        参数文件全名   =basename

!$:r        参数文件名

!$:e        参数文件名后缀


3.历史命令打印与大小写转换:

!-2:p        打印倒数第二个命令

!-2:u       倒数第二个命令变大写

!-2:l        倒数第二个命令变小写

        

hist.png



命令扩展:


1.正则表达

ls {a..z}.txt

touch {1..10..2}.txt  创建 {1,3,5,7,9}.txt  (下面的是反过来)

touch {9..1..2}.txt

echo {{A..Z},{a..z},{0..9}}  显示字母表与0-9


2.不常用快捷键:

^v + tab/^a/^c     打印tab/^a/^c ( ^是ctrl )

^x^x        在光标当前位置与上次停留位置 间跳动

^m/^j         等同于Enter

^i                等同于tab




结束语:

Linux Bash命令行 默认是readline 也就是emacs的快捷键,学会之后,很多地方都通用!


参考资料: