Linux终端快捷键

二常用快捷方式
复制为ctrl-shift-c
粘贴为ctrl-shift-v
tab=补全
ctrl+a=开始位置
ctrl+e=最后位置
ctrl+k=删除此处至末尾所有内容
ctrl+u= 删除此处至开始所有内容
Ctrl-L -刷新屏幕
Ctrl-C -杀死当前任务
较完整:
窗口操作:
Shift+Ctrl+T:新建标签页
Shift+Ctrl+W:关闭标签页
Ctrl+PageUp:前一标签页
Ctrl+PageDown:后一标签页
Shift+Ctrl+PageUp:标签页左移
Shift+Ctrl+PageDown:标签页右移
Alt+1:切换到标签页1
Alt+2:切换到标签页2
Alt+3:切换到标签页3
Shift+Ctrl+N:新建窗口
Shift+Ctrl+Q:关闭终端
终端中的复制/粘贴: 
Shift+Ctrl+C:复制
Shift+Ctrl+V:粘贴
端改变大小: 
F11:全屏 
Ctrl+plus:放大 
Ctrl+minus: 减小 
Ctrl+0:原始大小
history 显示命令历史列表
↑(Ctrl+p) 显示上一条命令
↓(Ctrl+n) 显示下一条命令
!num 执行命令历史列表的第num条命令
!! 执行上一条命令
!?string? 执行含有string字符串的最新命令
Ctrl+r 然后输入若干字符,开始向上搜索包含该字符的命令,继续按Ctrl+r,搜索上一条匹配的命令
Ctrl+s 与Ctrl+r类似,只是正向检索
Alt+< 历史列表第一项
Alt+> 历史列表最后一项
ls !$ 执行命令ls,并以上一条命令的参数为其参数
光标移动
Ctrl+f 光标向前移动一个字符,相当与->
Ctrl+b 光标向后移动一个字符,相当与<-
Alt+f 光标向前移动一个单词
Alt+b 光标向后移动一个单词
Ctrl+a 移动到当前行的开头
Ctrl+e 移动到当前行的结尾
Esc+b 移动到当前单词的开头
Esc+f 移动到当前单词的结尾
Ctrl+l 清屏
Ctrl+u 剪切命令行中光标所在处之前的所有字符(不包括自身)
Ctrl+k 剪切命令行中光标所在处之后的所有字符(包括自身)
Ctrl+d 删除光标所在处字符
Ctrl+h 删除光标所在处前一个字符
Ctrl+y 粘贴刚才所删除的字符
Ctrl+w 剪切光标所在处之前的一个词(以空格、标点等为分隔符)
Alt+d 剪切光标之后的词
Esc+w 删除光标所在处之前的字符至其单词尾(以空格、标点等为分隔符)
Ctrl+t 颠倒光标所在处及其之前的字符位置,并将光标移动到下一个字符
Alt+t 交换当前与以前单词的位置
Alt+u 把当前词转化为大写
Alt+l 把当前词转化为小写
Alt+c 把当前词汇变成首字符大写
Ctrl+v 插入特殊字符,如Ctrl+v+Tab加入Tab字符键
Esc+t 颠倒光标所在处及其相邻单词的位置
Ctrl+c 删除整行
Ctrl+(x u) 按住Ctrl的同时再先后按x和u,撤销刚才的操作
Ctrl+s 挂起当前shell
Ctrl+q 重新启用挂起的shell

二、vim快捷键和基本用法

i:向光标处插入

a:向光标处右移一个字符插入

o:向光标处下移一行插入

x:删除当前光标一个字符

X:删除当前光标左面一个字符

----------------------------

dd:删除当前光标所在的一行数据

yy:复制光标所在的行数据

p:在当前光标的下一行粘贴数据

P:在当前光标的上一行粘贴数据

---------------------------------

0:按零,移动到当前行的行首(当前屏幕范围内)

shift+$:移动到当前行的行尾(当前屏幕范围内)

ctrl+( :光标移动到当前段的行首

ctrl+) :光标移动到当前段的行尾

shift+h :光标移动到文档首端(当前屏幕范围内)

shift+g :光标移动到文档末端(整篇文档)

-------------------------------------

ctrl+v :进入列块可视化操作模式(这是vim的命令。root用户下的vi无此操作,普通用户下的vi有此操作)

  进入该模式后,可以进行列块操作

  如:注释很多列

   首先ctrl+v

   然后使用shift+g选择一列数据,或者用 "j" 或者用 "箭头"来选择需要的列

   再后shift+i

   在当前光标下敲入#

   Esc

   发现刚才选定的行都被注释掉了。

  解除注释:

    首先ctrl+v

    然后shift+h选定刚才被注释掉的行

    敲入x

    发现注释全部解除了。

-------------------------------------------------------------

改变大小写:

大写变小写

ctrl+v,然后移动L键选中要改变大写为小写的字段,按小u键即可

小写变大写

ctrl+v,然后移动L键选中要改变小写为大写的字段,按大U键即可

--------------------------------------------------

ctrl+z:将当前vi打开文件放到后台

fg:将刚放入后台的文件调出来

--------------------------

vi开一个文件A后

:vs /path/另一个文件B---------------打开对比窗口

ctrl+w:切换两个窗口。

注:此操作是vim操作,root下vi不带vim,普通用户可以。

 

---------------------------------------------------------

/

:查找

回车后按n键查找下一个

--------

:set nu    :打开序号

:1000      :将光标移到第1000行

-----------------------

用vi查看文件编码

vi tb1.txt
:set fileencoding
        fileencoding=latin1

--------------------------------------------------

:%s#待替换的字符#替换后的字符#g

   %为通配,替换所有。

\ :反斜杠-用来转义特殊字符。

eg:0 1/2\3^4567890

1、去掉空格

:s# ##g ---------空格可以不用转义

2、将/替换成|

:s#\/#|#g

3、将\替换成|

:s#\\#|#g

 

:g/^\s*$/d                      ----------删除只有空白的行
 
:s/\w\+\w\+\s\+\w\+\w\+/\2\t\1  ----------将 data1 data2 修改为 data2 data1
 
:%s/\w\+\w\+, \w\+\w\+/\2 \1/   ----------将 Doe, John 修改为 John Doe
 
:%s/\<id\>/\=line(".")          ----------将各行的 id 字符串替换为行号
 
:%s/\<\w\+\<\w\+/\=(line(".")-10) .".". submatch(1)   
     将每行开头的单词替换为(行号-10).单词的格式,如第11行的word替换成1. word
 
:/OB/+1,$!sort                  ----------排序

 

-----------------------------------

 

more时用v进入vi

-------------------------------------------------------------------------------------------

元字符 说明

. 匹配任意一个字符
[abc] 匹配方括号中的任意一个字符。可以使用-表示字符范围,
      如[a-z0-9]匹配小写字母和阿拉伯数字。
[^abc] 在方括号内开头使用^符号,表示匹配除方括号中字符之外的任意字符。
\d 匹配阿拉伯数字,等同于[0-9]。
\D 匹配阿拉伯数字之外的任意字符,等同于[^0-9]。
\x 匹配十六进制数字,等同于[0-9A-Fa-f]。
\X 匹配十六进制数字,等同于[^0-9A-Fa-f]。
\w 匹配单词字母,等同于[0-9A-Za-z_]。
\W 匹配单词字母之外的任意字符,等同于[^0-9A-Za-z_]。
\t 匹配<TAB>字符。
\s 匹配空白字符,等同于[ \t]。
\S 匹配非空白字符,等同于[^ \t]。
\a 所有的字母字符. 等同于[a-zA-Z]
\l 小写字母 [a-z]
\L 非小写字母 [^a-z]
\u 大写字母 [A-Z]
\U 非大写字母 [^A-Z]
 
表示数量的元字符
元字符 说明
* 匹配0-任意个
\+ 匹配1-任意个
\? 匹配0-1个
\{n,m} 匹配n-m个
\{n} 匹配n个
\{n,} 匹配n-任意个
\{,m} 匹配0-m个
\_. 匹配包含换行在内的所有字符
\{-} 表示前一个字符可出现零次或多次,但在整个正则表达式可以匹配成功的前提下,匹配的字符数越少越好
\= 匹配一个可有可无的项
\_s 匹配空格或断行
\_[]
 
元字符 说明
\* 匹配 * 字符。
\. 匹配 . 字符。
\/ 匹配 / 字符。
\\ 匹配 \ 字符。
\[ 匹配 [ 字符。
 
表示位置的符号
元字符 说明
$ 匹配行尾
^ 匹配行首
\< 匹配单词词首
\> 匹配单词词尾
 
替换变量
在正规表达式中使用 和 符号括起正规表达式,即可在后面使用\1、\2等变量来访问 和 中的内容。
 
懒惰模式
\{-n,m} 与\{n,m}一样,尽可能少次数地重复
\{-} 匹配它前面的项一次或0次, 尽可能地少
\| "或"操作符
\& 并列
 
 
函数式
:s/替换字符串/\=函数式
在函数式中可以使用 submatch(1)、submatch(2) 等来引用 \1、\2 等的内容,而submatch(0)可以引用匹配的整个内容。
 
与Perl正则表达式的区别 ?
元字符的区别
Vim语法 Perl语法 含义
\+       +       1-任意个
\?       ?       0-1个
\{n,m}   {n,m}   n-m个
和   (和)    分组
 
例如:
1,去掉所有的行尾空格:
“:%s/\s\+$//”。“%”表示在整个文件范围内进行替换,“\s”表示空白字符(空格和制表符),“\+”对前面的字符匹配一次或多次(越多越好),“___FCKpd___0rdquo;匹配行尾(使用“\___FCKpd___0rdquo;表示单纯的“___FCKpd___0rdquo;字符);被替换的内容为空;由于一行最多只需替换一次,不需要特殊标志。这个还是比较简单的。(/<Space><Tab>)
 
2,去掉所有的空白行:
“:%s/\s\n\s∗\n\+/\r/”。
这回多了“”、“”、“\n”、“\r”和 “*”。“*”代表对前面的字符(此处为“\s”)匹配零次或多次(越多越好;使用“\*”表示单纯的“*”字符),“\n”代表换行符,“\r”代表回车符,“”和“”对表达式进行分组,使其被视作一个不可分割的整体。因此,这个表达式的完整意义是,把连续的换行符(包含换行符前面可能有的连续空白字符)替换成为一个单个的换行符。唯一很特殊的地方是,在模式中使用的是“\n”,而被替换的内容中却不能使用“\n”,而只能使用“\r”。原因是历史造成的,详情如果有兴趣的话可以查看“:help NL-used-for-Nul”。
 
3,去掉所有的“//”注释:
“:%s!\ s*//.*!!”。首先可以注意到,这儿分隔符改用了“!”,原因是在模式或字符串部分使用了“/”字符,不换用其他分隔符的话就得在每次使用“/”字符本身时写成“\/”,上面的命令得写成“:%s/\s*\/\/.*//”,可读性较低。命令本身倒是相当简单,用过正则表达式的人估计都知道“.”匹配表示除换行符之外的任何字符吧。
 
4,去掉所有的“”注释:
“:%s!\s*/\*\_.\{-}\*/\s*! !g”。这个略有点复杂了,用到了几个不太常用的 Vim 正则表达式特性。“\_.”匹配包含换行在内的所有字符;“\{-}”表示前一个字符可出现零次或多次,但在整个正则表达式可以匹配成功的前提下,匹配的字符数越少越好;标志“g”表示一行里可以匹配和替换多次。替换的结果是个空格的目的是保证像“intmain()”这样的表达式在替换之后仍然是合法的。
posted @ 2018-06-11 23:29  konglingbin  阅读(707)  评论(0编辑  收藏  举报