關于HISTCONTROL命令及對快捷鍵Ctrl+o命令的影響

        在linux中環境變量HISTCONTROL可以控制歷史的記錄方式。

        HISTCONTROL有以下的選項:

            ignoredups         默認,忽略重復命令

            ignorespace        忽略所有一空格開頭的命令

            ignoreboth         ignoredups 和 ignorespace 的組合

            erasedups          刪除重復命令

        下面我來演示一下HISTCONTROL 及 其選項的用法:

        linux默認忽略連續執行的相同命令,也就是默認設置是ignoredups,

        在生產中我們在輸入命令時有時會暴露一些重要信息,如果我們不想將這些重要信息記錄在歷史命令列表中我們可以將HISTCONTROL變量的改為ignorespace,在命令行更改完變量后,在我們輸入命令前加空格再執行,我們的歷史列表將不記錄此次執行的命令:

            #HISTCONTROL=ignorespace

            # pwd

            /root

            #history

            1 HISTCONTROL=ignorespace

            2 history

            #history

            1 HISTCONTROL=ignorespace

            2 history

            3 history

        pwd 的命令沒有被記錄,因為前面加了空格,但是執行兩次的history卻被重復的記錄了,因為我們把系統默認的忽略重復命令的變量改成了加空格忽略的變量,這時我們可以更改ignoreboth來解決這個問題:

            #HISTCONTROL=ignoreboth

            # pwd

            /root

            #history

            1 HISTCONTROL=ignoreboth

            2 history

            #history

            1 HISTCONTROL=ignorespace

            2 history

            #hostname
            localhost.localdomain
            #cd

            #hostname
            localhost.localdomain
            #cd

            #history

            1 HISTCONTROL=ignorespace

            2 history

            3 hostname

            4 cd

            5 hostname

            6 cd

        這時就出現了另一個問題,不連續執行的相同的命令被歷史命令列表記錄了,我們用erasedups可以消除這個效果:

            #HISTCONTROL=earsedups

            #hostname

            localhost.localdomain

            #cd

            #hostname
            localhost.localdomain
            #cd

            #history

            1 HISTCONTROL=ignorespace
            2 hostname

            3 cd

            4 history

        但請注意以上這些在命令行更改的環境變量設置只是臨時的,如果用戶被注銷了,設置會恢復,如果我們想徹底更改這個用戶的環境變量,我們可以到用戶目錄下的.bash_profile文件中進行更改,更改后用命令. . bash_profile來執行配置,如果你想更改所有用戶的設置可以到根目錄下/etc/profile文件中進行更改,再重啟。

        下面我講命令:

        Ctrl + o 這條命令是執行當前命令,并重新顯示本命令:

            #pwd

            /root

            #pwd

            /root

            #pwd

        上面的代碼可能不是很好理解,我描述一下,一般當你用Enter執行完一條命令后,提示符后是不會再次出現任何命令的,但是如果你用Ctrl + o來執行命令的話,執行完畢后提示符后面仍然會像是這條命令。

        這個時候我發現了一件奇怪的事情!??!

        當你更改歷史記錄方式的環境變量為ignorespace  或 ignoreboth 或 erasedups 時,Ctrl + o這條命令將會失效,會如同Enter一樣能執行命令,不能在提示符后重新顯示剛執行的命令,但是系統默認的ignoredups 歷史記錄方式環境變量不會影響Ctrl + o功能的實現。

        小總結加發現的一個小秘密,望批評指正?。?!

原創文章,作者:liu-linux,如若轉載,請注明出處:http://www.www58058.com/69250

(2)
liu-linuxliu-linux
上一篇 2017-02-18
下一篇 2017-02-18

相關推薦

  • 邏輯卷管理器

    邏輯卷管理器(LVM)     允許對卷進行方便操作的抽象層,包括重新設定文件系統的大小     允許在多個物理設備間重新組織文件系統         ? 將設備指定為物理卷   …

    Linux干貨 2016-09-06
  • 運維第一步

    學友分享各自工作經歷

    2018-03-26
  • 馬哥教育網絡班22期+第二周課程練習

    Linux上文件可管理類命令,其常用的使用方法和相關示例 目錄管理類命令 目錄管理類命令包含:mkdir,rmdir mkdir 使用說明及格式 移除空目錄 rmdir [OPTION]… DIRECTORY…   常見選項及說明 -p –parents 創建時如果父目錄不存在,一并創建 -v –ve…

    Linux干貨 2016-08-24
  • Shell腳本使用示例

    目錄如下:  1、編寫腳本/root/bin/systeminfo.sh,顯示當前主機系統信息,包括主機名,IPv4地址,操作系統版本,內核版本,CPU型號,內存大小,硬盤大小。 2、編寫腳本/root/bin/backup.sh,可實現每日將/etc/目錄備份到/root/etcYYYY-mm-dd中 3、編寫腳本/root/bin/disk.s…

    Linux干貨 2016-08-30
  • 網絡班N22期第三周博客作業

    一、列出當前系統所有已經登錄的用戶名,且同一個用戶登錄多次只顯示一次 [root@bogon ~]# w  15:17:44 up 15:28,  2 users,  load average: 0.00, 0.00, …

    Linux干貨 2016-08-29
  • 登錄后經常出現You have new mail in /var/spool/mail/root的提示

    安裝完LINUX后經常使用終端遠程登錄,登錄后經常出現You have new mail in /var/spool/mail/root的提示,很是煩人。 這東西到底是做什么用的呢?經過查詢才知道這是LINUX的郵年提示功能。LINUX會定時查看LINUX各種狀態做匯總,每經過一段時間會把匯總的信息發送的root的郵箱里,以供有需之時查看。 那要怎么去掉這麻…

    系統運維 2017-08-05
欧美性久久久久