Linux下history命令的介紹

Linux下history命令的介紹

一、用處

對于Linux而言,命令是人機交互的重要方式,而查看命令歷史可以幫助我們了解系統的使用狀態、增強安全性也可以調用歷史達到快捷操作的目的。

二、命令行歷史

  執行過的命令會被存入緩存,當正常退出shell時,緩存中的命令會被寫入文件中并保存在用戶下的隱藏文件文件.bash_history中。當用戶登陸時內存會在文件中讀取命令歷史再次存入緩存。


三、命令歷史的調用


  重復執行上一條命令有四種方法:

    重復前一個命令使用上方向鍵,并回車執行;

    按 !! 并回車執行;

    輸入 !-1 并回車執行;

    按 Ctrl+p 并回車執行。

  幾個實用操作:

    !字符串:重復前一個以“字符串”開頭的命令:

 blob.png


    !num:按照history命令輸出中的序號重復對應命令:

 blob.png


    !?字符串:重復前一個包含該字符串的命令:

 blob.png

    !-n :重復n個命令之前的那個命令:

 blob.png


  在命令提示符中,使用↑(向上)和↓(向下)鍵來上下瀏覽從前輸入的命令。

  鍵入ctrl+r來在命令歷史中搜索命令

 blob.png

四、歷史參數的調用

    #cmd !^ : 利用上一個命令的第一個參數做cmd的參數

    #cmd !$ : 利用上一個命令的最后一個參數做cmd的參數    

      也可以使用:Esc, .(點擊Esc鍵后松開,然后點擊 . 鍵)或 Alt+ .(按住Alt鍵的同時點擊 . 鍵)       #cmd !* : 利用上一個命令的全部參數做cmd的參數

    #cmd !:n : 利用上一個命令的第n個參數做cmd的參數

    !n:^ 調用第n條命令的第一個參數

    !n:$ 調用第n條命令的最后一個參數

    !m:n 調用第m條命令的第n個參數

    !n:* 調用第n條命令的所有參數

    !string:^ 從命令歷史中搜索以string 開頭的命令,并獲取它的第一個參數

    !string:$ 從命令歷史中搜索以 string 開頭的命令,并獲取它
的最后一個參數

    !string:n 從命令歷史中搜索以 string 開頭的命令,并獲取
它的第n個參數

    !string:* 從命令歷史中搜索以 string 開頭的命令,并獲取
它的所有參數

五、history命令

  Linux下history是一個內部命令,主要用于顯示緩存中歷史指令記錄內容, 或下達歷史紀錄中的指令。

  一些常用命令:

    -c:用于清空緩存中的命令歷史

blob.png

     -d:刪除歷史中指定的命令;

blob.png

     #: 顯示最近的#條歷史;

blob.png

     -a: 把本次會話中新執行的命令歷史列表從緩存追加至歷史文件~/.bash_history中;

     -n: 顯示歷史文件~/.bash_history中未讀過的行到歷史列表,例如多個終端登錄同一個用戶時,緩存中的命令不會同步,使-n選項可以同步個終端的命令到歷史列表中。

     -r: 把歷史文件~/.bash_history中的命令附加到內存的歷史列表中,每次打開shell都會默認執行類似操作;

     -w: 保存歷史列表到指定的歷史文件;

blob.png

     -p: 展開歷史參數成多個行,但不存在歷史列表中;

blob.png

     -s: 展開歷史參數成一行,附加在歷史列表后(可以用來偽造命令)

blob.png

六、命令歷史的相關環境變量

    HISTSIZE:定義內存中緩存命令條數的最大值;

blob.png


    HISTFILE:指定歷史文件,默認為~/.bash_history;

blob.png


    HISTFILESIZE:命令歷史文件記錄歷史的條數,用法與HISTSIZE相同;


    HISTTIMEFORMAT=“%F %T“ 顯示時間:

blob.png


    HISTIGNORE="str1:str2: "忽略帶有string1,string…”字符的歷史命令。


    HISTCONTROL: 控制命令歷史的記錄方式


    ignoredups:忽略命令歷史中已有的命令,且只記錄第一條命令的時間


    ignorespace:忽略所有以空白行開頭的命令


    ignoreboth:相當于ignoredups,ignorespace組合效果 


    erasedups:刪除已有的重復命令

原創文章,作者:zhanghuanyu,如若轉載,請注明出處:http://www.www58058.com/26143

(0)
zhanghuanyuzhanghuanyu
上一篇 2016-07-29 09:38
下一篇 2016-07-29 09:56

相關推薦

  • 馬哥教育網絡班21期+第5周課程練習

    1、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行; [root@centos ~]# grep "^[[:space:]]\+" /boot/grub/grub.conf  root (hd0,0) kernel /vmlinuz-2.6.3…

    Linux干貨 2016-07-29
  • select和case用法

    一、作業 1、斐波那契數列又稱黃金分割數列,因數學家列昂納多·斐波那契以兔子繁殖為例子而引入,故又稱為“兔子數列”,指的是這樣一個數列:0、1、1、2、3、5、8、13、21、34、……,斐波納契數列以如下被以遞歸的方法定義:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2) 寫一個函數,求n階斐波那契數列 2、漢諾塔(又稱河內塔)問…

    Linux干貨 2016-08-21
  • Linux基礎操作-week5

    1、顯示當前系統上root、fedora或user1用戶的默認shell; 方式一: # whoami root # echo $SHELL /bin/bash 方式二: #grep user1 /etc/passwd|awk -F “:” ‘{print $7}’ /bin/bash 2、找出/etc/rc.…

    Linux干貨 2016-11-27
  • 數組和變量之間的關系及如何靈活運用數組

    什么是數組?數組:存儲多個元素的連續的內存空間,相當于多個變量的集合什么是變量? 變量即是存儲單個元素的內存空間 如果整個數組只有一個名字;數組名是數組的標識;也是數組所指向的存儲多個元素的連續的內存空間開始地址的標識;數組索引定義從 0 開始(第一個數組元素);到 N 結束引用某個數組元素時,數組名+【索引】格式:${ARRAY_NAM…

    Linux干貨 2017-05-22
  • Linux用戶及文件權限管理

    Linux,用戶,用戶組,文件,權限

    Linux干貨 2017-10-29
  • 過濾語句和復制,權限的一些事例

    1.復制/etc/skel 目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限 ~]# cp -r /etc/skel/ /home/tuser1/ ~]# chmod go= /home/tuser1/ 2.編輯/etc/group文件,添加組hadoop ~]# echo "hadoop:…

    Linux干貨 2016-10-14

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-07-29 09:49

    寫的很好,但是字體能統一一下會更好!!!

欧美性久久久久