Bash 常用快捷键
Ctrl + A 把光标移动到命令行开头
Ctrl + E 把光标移动到命令行尾
Ctrl + D 退出当前终端 ( 正常的退出 )
Ctrl + C 强制终止当前命令 ( 非正常的退出 )
Ctrl + L 清屏
Ctrl + U 删除或剪切光标之前的命令
Ctrl + K 删除或剪切光标之后的命令
Ctrl + Y 粘贴 Ctrl + U 或 Ctrl + K 剪切的内容
Ctrl + R 在历史命令中搜索
Ctrl + Z 暂停,并放入后台
Ctrl + S 暂停屏幕输出
Ctrl + Q 恢复屏幕输出
Bash 完整快捷键
从trl键组合
Ctrl+a:光标跳到行首。
Ctrl+b:光标左移一个字母
Ctrl+c:杀死当前进程。
Ctrl+d: 删除提示符后一个字符或exit或logout。
Ctrl+e:光标移到行尾。
Ctrl+f后移一个字符
Ctrl+h:删除光标前一个字符,同backspace 键相同。
Ctrl+k:清除光标后至行尾的内容。
Ctrl+l:清屏,相当于clear。
Ctrl+p重复上一次命令
Ctrl+r:搜索之前打过的命令。会有一个提示,根据你输入的关键字进行搜索bash的history
Ctrl+u: 清除光标前至行首间的所有内容。
Ctrl+w: 同上
Ctrl+t: 交换光标位置前的两个字符
Ctrl+y: 粘贴或者恢复上次的删除
Ctrl+d: 删除光标所在字母;注意和backspace以及Ctrl+h的区别,这2个是删除光标前的字符
Ctrl+f: 光标右移
Ctrl+z : 把当前进程转到后台运行,使用’ fg ‘命令恢复。比如top -d1 然后Ctrl+z ,到后台,然后fg,重新恢复
Ctrl+x同上但再按一次会从新回到原位置
Ctrl+o Ctrl+y Ctrl+i Crtl+m这4个没搞清楚怎么用
Ctrl-I 等同于按制表符<TAB>键
Ctrl-W 不是删除光标前的所有字符, 它删除光标前的一个单词
Ctrl-P 是recall出上一个命令 <===> Ctrl-N 是recall出下一个命令
Ctrl-M 等同于回车键
Ctrl-O 等同于回车键
Ctrl-V 使下一个特殊字符可以插入在当前位置, 如Ctrl-V <TAB> 可以在当前位置插入一个<TAB>字符, 其ASCII是9, 否则一般情况下按<TAB>结果是命令补齐
Ctrl-C 撤消当前命令行的编辑, 另起一行.
Ctrl-S 暂时冻结当前shell的输入
Ctrl-Q 解冻
esc组合
esc+d: 删除光标后的一个词
esc+f: 往右跳一个词
esc+b: 往左跳一个词
<TAB> 命令补齐
ESC-F 光标向前步进一个单词
ESC-B 光标向后步进一个单词
ESC-c 使下一个单词首字母大写, 同时光标前进一个单词, 如光标停留在单词的某个字母上, 如word中的o字母上, 则o字母变大写. 而不是w
ESC-u 使下一个单词所有字母变大写, 同时光标前进一个单词, 同上, 如光标在o字母上, 则ord变大写, w不变.
ESC-l 同ESC-U, 但使之全变为小写.
把bash所有的Ctrl组合键试了一遍,现总结如下(以下出现的所有键都是Ctrl组合键):
U K Y
U将光标(不包括)以前的字符删除
K将光标(包括)以后的字符删除
Y将刚才删除的字符粘出来
D H
D将光标处的字符删除
H将光标前的一个字符删除
A E
A将光标移动到行首
E将光标移动到行尾
F B
F将光标向右移动一个字符的位置
B将光标向左移动一个字符的位置
N P
N下一个命令
P上一个命令
L
L清屏
R
R搜索以前输入过的命令
T
T将光标处的字符和光标前一个字符替换位置
基本功:
用上下键看命令的历史
左右键区修改内容
tab补齐命令名字或者目录,文件名字,不是唯一的多按2次,会出来列表
!ls 重复运行最后一条以’ls’开头的命令,如果先ls -l 然后ls -lcrt,那么!ls,相当于ls -lcrt
ls abc.txt
vi !$
第二行的vi !$相当于vi abc.txt,!$等于上一个命令的参数, ‘$’ 是根据上下文来说的最后一行,列等。
Bash 的标准输入输出
设备 设备文件名 文件描述符 类型
键盘 /dev/stdin 0 标准输入
显示器 /dev/stdout 1 标准输出
显示器 /dev/stderr 2 标准错误输出
输出重定向
类型 符号 作用
标准输出重定向
命令 > 文件 以覆盖的方式,把命令的正确输出,输出到指定的文件或设备当中
命令 >> 文件 以追加的方式,把命令的正确输出,输出到指定的文件或设备当中
标准错误输出重定向
错误命令 2> 文件 以覆盖的方式,把命令的错误输出,输出到指定的文件或设备当中
错误命令 2>> 文件 以追加的方式,把命令的错误输出,输出到指定的文件或设备当中
正确输出和错误输出同时保存
命令 > 文件 2>&1 以覆盖的方式,把正确输出和错误输出,都保存到同一个文件当中
命令 >> 文件 2>&1 以追加的方式,把正确输出和错误输出,都保存到同一个文件当中
命令 &> 文件 以覆盖的方式,把正确输出和错误输出,都保存到同一个文件当中
命令 &>> 文件 以追加的方式,把正确输出和错误输出,都保存到同一个文件当中
命令 >> 文件1 2>>文件 2 把正确的输出追加到文件1中,把错误的输出追加到文件2中
命令执行顺序
; -- 命令的顺序执行 ===>>>不管前面的命令是否执行成功,都会挨个执行一遍,即使中间有的命令没能执行成功,也会接着执行后面的命令。
&& -- 前面命令执行不成功,后面的命令不执行
|| -- 前面的命令执行成功,后面的命令就不执行;前面的命令执行不成功,后面的命令才执行===>>>前面命令执行不成功,则执行后面命令,前面命令执行成功了,后面命令就不执行了
通配符
? 匹配一个任意字符
' * ' 匹配0个或任意多个任意字符,也就是可以匹配任意内容
[ ] 匹配 [ ] 中任意一个字符
[ - ] 匹配 [ ] 中任意一个字符, - 代表一个范围,从哪儿到哪儿
[ ^ ] 逻辑非,表示匹配不是中括号内的一个字符
常用字符类 :
[:alnum:] : 匹配任意一个字母或数字, 传统写法 : a-zA-Z0-9
[:alpha:] : 匹配任意一个字母, 传统写法 : a-zA-Z
[:digit:] : 匹配任意一个数字, 传统写法 : 0-9
[:lower:] : 匹配任意一个小写字母 传统写法 : a-z
[:upper:] : 匹配任意一个大写字母 传统写法 : A-Z
注:在使用专属字符集的时候,字符集之外还需要 [ ] 来包含,否则不能生效 ~!!如果使用上述格式的话,那对它的取反就是 在两个括号的中间进行取反如 :[^[ : alnum:]] [^[:digit:]] [^[:lower:]] 等等
{ } 生成序列
touch file{1..9}.txt # 当前路径生成 file1.txt-file9.txt 。 { a..f } 代表 a-f
不连续的使用 , 分隔,比如 file{1,3,5}.txt 那就是 file1.txt file3.txt file5.txt