Linux历史命令及bash快捷键

本文环境 Centos7

1.历史命令

  1.1 在使用linux中熟练的使用历史命令,能给我很多便捷,下面我来总结一些常用的一些历史命令。

    a) 执行上一条命令,这个很重要 ,执行上一条命令有四种方法,如下:

      

[root@CentOS-7-64 data]# 
[root@CentOS-7-64 data]# ls
[a-z]  kas  kokoa  l1234bd  l1234bd1dada  l12k  l12ka  l2a

    当然这个命令很简单,但是命令很复杂呢?使用 ↑ ,ctrl+p ,!-1 ,!! 这四种方式可以执行上条命令

[root@CentOS-7-64 data]# !!
ls
[a-z]  kas  kokoa  l1234bd  l1234bd1dada  l12k  l12ka  l2a
[root@CentOS-7-64 data]# ls   # 我这里按的是  ctrl+p 
[a-z]  kas  kokoa  l1234bd  l1234bd1dada  l12k  l12ka  l2a
[root@CentOS-7-64 data]# !-1
ls
[a-z]  kas  kokoa  l1234bd  l1234bd1dada  l12k  l12ka  l2a
[root@CentOS-7-64 data]# ls    # 这里是  ↑  键
[a-z]  kas  kokoa  l1234bd  l1234bd1dada  l12k  l12ka  l2a
[root@CentOS-7-64 data]# 

    b) 在历史命令中执行最新一条以cat开头的命令,要执行以什么开头的命令,在叹号后面加上你要执行的命令,执行的是最后一条以cat开头的命令          用法  !cat

[root@CentOS-7-64 data]# !cat
cat kas 
hello world





hello world
[root@CentOS-7-64 data]# 

    

    c) 在历史命令中执行包含red的命令,这条命不同于上条,上条是开头,这条是包含,使用方法:

      !?red   !?+你要包含的命令

[root@CentOS-7-64 data]# cat /etc/redhat-release 
CentOS Linux release 7.7.1908 (Core)
[root@CentOS-7-64 data]# !?red
cat /etc/redhat-release 
CentOS Linux release 7.7.1908 (Core)
[root@CentOS-7-64 data]# 

    d) 打印以kas开头的命令,只打印不执行  方法  !command:p

[root@CentOS-7-64 data]# !kas:p
kas

 

    e) 执行前一条命令(去除参数)并打印出命令  方法 !:0

[root@CentOS-7-64 data]# cat kas 
hello world





hello world
[root@CentOS-7-64 data]# !:0 kokoa
cat kokoa
hello china
hello china
[root@CentOS-7-64 data]# 

    f) 得到前一个命令的第一个参数并打印命令   用法  !:1

[root@CentOS-7-64 data]# cat kokoa 
hello china
hello china
[root@CentOS-7-64 data]# vim !:1
vim kokoa
[root@CentOS-7-64 data]# 

    g)  要重新调用前一个命令中最后一个参数并打印命令   有几种方法  我就写我常用的  用法 !$  Esc + .  英文点

[root@CentOS-7-64 data]# !grep
grep "hello" kokoa kas 
kokoa:hello china
kokoa:hello china
kas:hello world
kas:hello world
[root@CentOS-7-64 data]# vim !$
vim kas
[root@CentOS-7-64 data]# 

    Esc + 点   得到前一个命令的参数

[root@CentOS-7-64 data]# cat kokoa 
hello china
hello china
[root@CentOS-7-64 data]# vim kokoa

  1.2 用好这些历史命令的正确方式能给我们的工作很大的便利,还有很多类似的命令,我就不一一演示了,就写在下面了

      !$:p                                                 打印上一条命令的最后一个参数

      !*:p                                                  打印上一条命令的所有参数

 

      !^:p                                                 打印上一条命令的第一个参数  

      ^command                                 删除上一条命令中的第一个command,并执行删除 command 后的结果

      ^command1^command2                将上一条命令中的第一个command1替换为command2 

      !:gs/command1/command2            将上一条命令中所有的command1都替换为 command

      ctrl + r                                              搜索历史命令    ctrl+g     退出搜索

      command !^                                    将上个命令的第一个参数作command的参数 

      command !$                                    将上个命令的最后一个参数作command的参数 

      command !*                                     将上个命令的所有参数作command的参数

      command !:n                   将上个命令的第n个参数作command的参数

      command !n:^                                 获取第n条命令的第一个参数

      command !n:$                                 获取第n条命令的最后一个参数 

      command !n:m                               获取第n条命令的第m个参数 

        command !n:*                                 获取第n条命令的所有参数 

      command !cmd:^                            在命令历史中搜索以 cmd 开头的命令,并获取它的第一 个参数

      command !cmd:$                            在命令历史中搜索以 cmd 开头的命令,并获取它的最后一 个参数 

      command !cmd:n                            在命令历史中搜索以 cmd 开头的命令,并获取它的第n 个参数 

      command !cmd:*                            在命令历史中搜索以 cmd 开头的命令,并获取它的所有 参数 

 

   1.3 历史命令的环境变量

      HISTSIZE                                         记录历史命令条数

      HISTFILE                                         记录历史命令的文件

      HISTFILESIZE         命令历史文件记录历史的条数 

      HISTTIMEFORMAT                        显示历史命令时间   这个很有用    如:HISTTIMEFORMAT="%T-%F      "   后面留了几个空格,你试试不留空格的效果?

      HISTIGNORE

      HISTCONTROL                             以下是HISTCONTROL的值与效果

          ignoredups                   默认,忽略重复的命令,连续且相同为“重复”  

          ingorespace                 不记录以空格开头的命令

          ingoreboth                    是以上两个值的效果,不记录空格开头,忽略重复

          erasedups                     删除重复命令

 

2. bash快捷键  常用的很多没列出

  ctrl+l                                    清屏

  ctrl+y            将删除的粘贴到光标处

  ctrl+z          挂起

  ctrl+c            强行终止

  ctrl+s          锁定屏幕,组织输出

  ctrl+t          交换字符,将光标前的字符与光标处的字符交换

  ctrl+q          对应以上ctrl+s的命令,对ctrl+s进行恢复

  ctrl+o          执行当前命令,并重新显示本命令 

  ctrl+e          将光标移至行尾

  ctrl+a          将光标移至行首

  ctrl+u          删除到行首

  ctrl+k          删除到行尾

  ctrl+d          删除光标上的字符

  ctrl+h          删除光标前的字符

  ctrl+w          向左删除至单词首        

  alt+r          删除整行

  alt+f          光标向右移至单词尾

  alt+b          光标向左移至单词首

  alt+t          将光标处的单词与前一个单词换位置

  alt+d          向左删除至单词首

  

  

   

    

 

          

posted on 2019-09-24 10:54  林之森火  阅读(1950)  评论(0编辑  收藏  举报

导航