Linux终端快捷键 二常用快捷方式复制为ctrl-shift-c粘贴为ctrl-shift-vtab=补全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:切换到标签页1Alt+2:切换到标签页2Alt+3:切换到标签页3Shift+Ctrl+N:新建窗口Shift+Ctrl+Q:关闭终端终端中的复制/粘贴: Shift+Ctrl+C:复制Shift+Ctrl+V:粘贴端改变大小: F11:全屏 Ctrl+plus:放大 Ctrl+minus: 减小 Ctrl+0:原始大小history 显示命令历史列表↑(Ct

二、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/23^4567890

1、去掉空格

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

2、将/替换成|

:s#/#|#g

3、将替换成|

:s#\#|#g

:g/^s*$/d                      ----------删除只有空白的行
 
:s/w+/2 1  ----------将 data1 data2 修改为 data2 data1
 
:%s/w+/2 1/   ----------将 Doe, John 修改为 John Doe
 
:%s/<id>/=line(".")          ----------将各行的 id 字符串替换为行号
 
:%s/
     将每行开头的单词替换为(行号-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_]。
匹配<TAB>字符。
s 匹配空白字符,等同于[ ]。
S 匹配非空白字符,等同于[^ ]。
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 匹配空格或断行
\_[]
 
元字符 说明
* 匹配 * 字符。
. 匹配 . 字符。
/ 匹配 / 字符。
\ 匹配 字符。
[ 匹配 [ 字符。
 
表示位置的符号
元字符 说明
$ 匹配行尾
^ 匹配行首
< 匹配单词词首
> 匹配单词词尾
 
替换变量
在正规表达式中使用 和 中的内容。
 
懒惰模式
{-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∗ +/ /”。
这回多了“”、“”、“ ”、“ ”和 “*”。“*”代表对前面的字符(此处为“s”)匹配零次或多次(越多越好;使用“*”表示单纯的“*”字符),“ ”代表换行符,“ ”代表回车符,“”和“”对表达式进行分组,使其被视作一个不可分割的整体。因此,这个表达式的完整意义是,把连续的换行符(包含换行符前面可能有的连续空白字符)替换成为一个单个的换行符。唯一很特殊的地方是,在模式中使用的是“ ”,而被替换的内容中却不能使用“ ”,而只能使用“ ”。原因是历史造成的,详情如果有兴趣的话可以查看“:help NL-used-for-Nul”。
 
3,去掉所有的“//”注释:
“:%s! s*//.*!!”。首先可以注意到,这儿分隔符改用了“!”,原因是在模式或字符串部分使用了“/”字符,不换用其他分隔符的话就得在每次使用“/”字符本身时写成“/”,上面的命令得写成“:%s/s*//.*//”,可读性较低。命令本身倒是相当简单,用过正则表达式的人估计都知道“.”匹配表示除换行符之外的任何字符吧。
 
4,去掉所有的“”注释:
“:%s!s*/*\_.{-}*/s*! !g”。这个略有点复杂了,用到了几个不太常用的 Vim 正则表达式特性。“\_.”匹配包含换行在内的所有字符;“{-}”表示前一个字符可出现零次或多次,但在整个正则表达式可以匹配成功的前提下,匹配的字符数越少越好;标志“g”表示一行里可以匹配和替换多次。替换的结果是个空格的目的是保证像“intmain()”这样的表达式在替换之后仍然是合法的。