简介:
想像黑客一样快速的打命令吗? 那就要懂得常用的快捷键,而不是用方向键一个一个移动,太慢了,我早就受不了,你呢?
常用快捷键:
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 倒数第二个命令变小写
命令扩展:
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的快捷键,学会之后,很多地方都通用!
参考资料: