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          向左刪除至單詞首

  

  

   

    

 

          


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM