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

    1、去掉空格

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

    2、将/替换成|

    :s#/#|#g

    3、将替换成|

    :s#\#|#g

    :g/^s*$/d                      ----------删除只有空白的行
     
    :s/w+w+s+w+w+/2 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_]。
    匹配<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 匹配空格或断行
    \_[]
     
    元字符 说明
    * 匹配 * 字符。
    . 匹配 . 字符。
    / 匹配 / 字符。
    \ 匹配 字符。
    [ 匹配 [ 字符。
     
    表示位置的符号
    元字符 说明
    $ 匹配行尾
    ^ 匹配行首
    < 匹配单词词首
    > 匹配单词词尾
     
    替换变量
    在正规表达式中使用 和 符号括起正规表达式,即可在后面使用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 s∗ +/ /”。
    这回多了“”、“”、“ ”、“ ”和 “*”。“*”代表对前面的字符(此处为“s”)匹配零次或多次(越多越好;使用“*”表示单纯的“*”字符),“ ”代表换行符,“ ”代表回车符,“”和“”对表达式进行分组,使其被视作一个不可分割的整体。因此,这个表达式的完整意义是,把连续的换行符(包含换行符前面可能有的连续空白字符)替换成为一个单个的换行符。唯一很特殊的地方是,在模式中使用的是“ ”,而被替换的内容中却不能使用“ ”,而只能使用“ ”。原因是历史造成的,详情如果有兴趣的话可以查看“:help NL-used-for-Nul”。
     
    3,去掉所有的“//”注释:
    “:%s! s*//.*!!”。首先可以注意到,这儿分隔符改用了“!”,原因是在模式或字符串部分使用了“/”字符,不换用其他分隔符的话就得在每次使用“/”字符本身时写成“/”,上面的命令得写成“:%s/s*//.*//”,可读性较低。命令本身倒是相当简单,用过正则表达式的人估计都知道“.”匹配表示除换行符之外的任何字符吧。
     
    4,去掉所有的“”注释:
    “:%s!s*/*\_.{-}*/s*! !g”。这个略有点复杂了,用到了几个不太常用的 Vim 正则表达式特性。“\_.”匹配包含换行在内的所有字符;“{-}”表示前一个字符可出现零次或多次,但在整个正则表达式可以匹配成功的前提下,匹配的字符数越少越好;标志“g”表示一行里可以匹配和替换多次。替换的结果是个空格的目的是保证像“intmain()”这样的表达式在替换之后仍然是合法的。
  • 相关阅读:
    SQL Server 日期函数:某天是星期几?
    DZNEmptyDataSet,优秀的空白页或者出错页封装
    SVN文件排除
    Android开发艺术探索读书笔记——进程间通信
    HDU 2110 Crisis of HDU
    Android4.4之后休眠状态下Alarm不准时的问题
    Android App性能測试
    Java笔试面试题整理第一波
    美国大学计算机专业
    js 開始时间,当前时间,结束时间的比較
  • 原文地址:https://www.cnblogs.com/klb561/p/9170583.html
Copyright © 2020-2023  润新知