linux命令歷史

        發(fā)布時間:2017-02-06 來源: 歷史回眸 點擊:

        linux命令歷史篇一:Linux基礎教程 linux下學習history命令的用法實例

        Linux基礎教程 linux下學習history命令的用法實例

        1.使用 HISTTIMEFORMAT 顯示時間戳

        當你從命令行執(zhí)行 history 命令后,通常只會顯示已執(zhí)行命令的序號和命令本身。如果你想要查看命令歷史的時間戳,那么可以執(zhí)行:

        復制代碼代碼如下:

        # export HISTTIMEFORMAT='%F %T '

        # history | more

        1 2008-08-05 19:02:39 service network restart

        2 2008-08-05 19:02:39 exit

        3 2008-08-05 19:02:39 id

        4 2008-08-05 19:02:39 cat /etc/redhat-release

        注意:這個功能只能用在當 HISTTIMEFORMAT 這個環(huán)境變量被設置之后,之后的那些新執(zhí)行的 bash 命令才會被打上正確的時間戳。在此之前的所有命令,都將會顯示成設置HISTTIMEFORMAT 變量的時間。

        2.使用 Ctrl+R 搜索歷史

        Ctrl+R 是我經常使用的一個快捷鍵。此快捷鍵讓你對命令歷史進行搜索,對于想要重復執(zhí)行某個命令的時候非常有用。當找到命令后,通常再按回車鍵就可以執(zhí)行該命令。如果想對找到的命令進行調整后再執(zhí)行,則可以按一下左或右方向鍵。

        復制代碼代碼如下:

        # [Press Ctrl+R from the command prompt, which will display the reverse-i-search prompt](reverse-i-search)`red‘: cat /etc/redhat-release

        [Note: Press enter when you see your command, which will execute the command from the history]# cat /etc/redhat-release

        Fedora release 9 (Sulphur)

        3.快速重復執(zhí)行上一條命令

        有 4 種方法可以重復執(zhí)行上一條命令:

        使用上方向鍵,并回車執(zhí)行。

        按 !! 并回車執(zhí)行。

        輸入 !-1 并回車執(zhí)行。

        按 Ctrl+P 并回車執(zhí)行。

        4.從命令歷史中執(zhí)行一個指定的命令

        在下面的例子中,如果你想重復執(zhí)行第 4 條命令,那么可以執(zhí)行 !4:

        復制代碼代碼如下:

        # history | more

        1 service network restart

        2 exit

        3 id

        4 cat /etc/redhat-release

        # !4

        cat /etc/redhat-release

        Fedora release 9 (Sulphur)

        5.通過指定關鍵字來執(zhí)行以前的命令

        在下面的例子,輸入 !ps 并回車,將執(zhí)行以 ps 打頭的命令:

        復制代碼代碼如下:

        # !ps

        ps aux | grep yp

        root 16947 0.0 0.1 36516 1264 ? Sl 13:10 0:00 ypbind

        root 17503 0.0 0.0 4124 740 pts/0 S+ 19:19 0:00 grep yp

        6.使用 HISTSIZE 控制歷史命令記錄的總行數

        將下面兩行內容追加到 .bash_profile 文件并重新登錄 bash shell,命令歷史的記錄數將變成 450 條:

        復制代碼代碼如下:

        # vi ~/.bash_profile

        HISTSIZE=450

        HISTFILESIZE=450

        7.使用 HISTFILE 更改歷史文件名稱

        默認情況下,命令歷史存儲在 ~/.bash_history 文件中。添加下列內容到 .bash_profile 文件并重新登錄 bash shell,將使用 .commandline_warrior 來存儲命令歷史:

        復制代碼代碼如下:

        # vi ~/.bash_profile

        HISTFILE=/root/.commandline_warrior

        8.使用 HISTCONTROL 從命令歷史中剔除連續(xù)重復的條目

        在下面的例子中,pwd 命令被連續(xù)執(zhí)行了三次。執(zhí)行 history 后你會看到三條重復的條目。要剔除這些重復的條目,你可以將 HISTCONTROL 設置為 ignoredups:

        復制代碼代碼如下:

        # pwd

        # pwd

        # pwd

        # history | tail -4

        44 pwd

        45 pwd

        46 pwd [Note that there are three pwd commands in history, after executing pwd 3 times as shown above]

        47 history | tail -4

        # export HISTCONTROL=ignoredups

        # pwd

        # pwd

        # pwd

        # history | tail -3

        56 export HISTCONTROL=ignoredups

        57 pwd [Note that there is only one pwd command in the history, even after executing pwd 3 times as shown above]

        58 history | tail -4

        9.使用 HISTCONTROL 清除整個命令歷史中的重復條目

        上例中的 ignoredups 只能剔除連續(xù)的重復條目。要清除整個命令歷史中的重復條目,可以將 HISTCONTROL 設置成 erasedups:

        復制代碼代碼如下:

        # export HISTCONTROL=erasedups

        # pwd

        # servicehttpd stop

        # history | tail -3

        38 pwd

        39 service httpd stop

        40 history | tail -3

        # ls -ltr

        # servicehttpd stop

        # history | tail -6

        35 export HISTCONTROL=erasedups

        36 pwd

        37 history | tail -3

        38 ls -ltr

        39 service httpd stop

        [Note that the previous service httpd stop after pwd got erased]

        40 history | tail -6

        10.使用 HISTCONTROL 強制 history 不記住特定的命令

        將 HISTCONTROL 設置為 ignorespace,并在不想被記住的命令前面輸入一個空格:

        復制代碼代碼如下:

        # export HISTCONTROL=ignorespace

        # ls -ltr

        # pwd

        # servicehttpd stop [Note that there is a space at the beginning of service, to ignore this command from history]

        # history | tail -3

        67 ls -ltr

        68 pwd

        69 history | tail -3

        11.使用 -c 選項清除所有的命令歷史

        如果你想清除所有的命令歷史,可以執(zhí)行:

        復制代碼代碼如下:

        # history -c

        12.命令替換

        linux命令歷史篇二:Linux基礎教程 教你隱藏Linux的命令行歷史

        Linux基礎教程教你隱藏Linux的命令行歷史

        如果你是 Linux 命令行的用戶,有的時候你可能不希望某些命令記錄在你的命令行歷史中。原因可能很多,例如,你在公司擔任某個職位,你有一些不希望被其它人濫用的特權。亦或者有些特別重要的命令,你不希望在你瀏覽歷史列表時誤執(zhí)行。

        然而,有方法可以控制哪些命令進入歷史列表,哪些不進入嗎?或者換句話說,我們在 Linux 終端中可以開啟像瀏覽器一樣的無痕模式嗎?答案是肯定的,而且根據你想要的具體目標,有很多實現方法。在這篇文章中,將和大家討論一些行之有效的方法。

        注意:文中出現的所有命令都在 Ubuntu 下測試過。

        不同的可行方法

        前面兩種方法已經在之前一篇文章中描述了。如果你已經了解,這部分可以略過。然而,如果你不了解,建議仔細閱讀。

        1. 在命令前插入空格

        是的,沒看錯。在命令前面插入空格,這條命令會被 shell 忽略,也就意味著它不會出現在歷史記錄中。但是這種方法有個前提,只有在你的環(huán)境變量 HISTCONTROL 設置為 "ignorespace" 或者 "ignoreboth" 才會起作用。在大多數情況下,這個是默認值。

        所以,像下面的命令(LCTT 譯注:這里[space]表示輸入一個空格):

        [space]echo "this is a top secret"

        如果你之前執(zhí)行過如下設置環(huán)境變量的命令,那么上述命令不會出現在歷史記錄中。

        export HISTCONTROL = ignorespace

        下面的截圖是這種方式的一個例子。

        第四個 "echo" 命令因為前面有空格,它沒有被記錄到歷史中。

        2. 禁用當前會話的所有歷史記錄

        如果你想禁用某個會話所有歷史,你可以在開始命令行工作前簡單地清除環(huán)境變量 HISTSIZE 的值即可。執(zhí)行下面的命令來清除其值:

        export HISTSIZE=0

        HISTSIZE 表示對于 bash 會話其歷史列表中可以保存命令的個數(行數)。默認情況,它設置了一個非零值,例如在我的電腦上,它的值為 1000。

        所以上面所提到的命令將其值設置為 0,結果就是直到你關閉終端,沒有東西會存儲在歷史

        記錄中。記住同樣你也不能通過按向上的箭頭按鍵或運行 history 命令來看到之前執(zhí)行的命令。

        3. 工作結束后清除整個歷史

        這可以看作是前一部分所提方案的另外一種實現。唯一的區(qū)別是在你完成所有工作之后執(zhí)行這個命令。下面是剛說到的命令:

        history -cw

        剛才已經提到,這個和 HISTSIZE 方法有相同效果。

        4. 只針對你的工作關閉歷史記錄

        雖然前面描述的方法(2 和 3)可以實現目的,它們可以清除整個歷史,在很多情況下,有些可能不是我們所期望的。有時候你可能想保存直到你開始命令行工作之間的歷史記錄。對于這樣的需求,你開始在工作前執(zhí)行下述命令:

        [space]set +o history

        備注:[space] 表示空格。并且由于空格的緣故,該命令本身也不會被記錄。

        上面的命令會臨時禁用歷史功能,這意味著在這命令之后你執(zhí)行的所有操作都不會記錄到歷史中,然而這個命令之前的所有東西都會原樣記錄在歷史列表中。

        要重新開啟歷史功能,執(zhí)行下面的命令:

        [Space]set -o history

        它將環(huán)境恢復原狀,也就是你完成了你的工作,執(zhí)行上述命令之后的命令都會出現在歷史中。

        5. 從歷史記錄中刪除指定的命令

        現在假設歷史記錄中已經包含了一些你不希望記錄的命令。這種情況下我們怎么辦?很簡單。直接動手刪除它們。通過下面的命令來刪除:

        history | grep "part of command you want to remove"

        上面的命令會輸出歷史記錄中匹配的命令,每一條前面會有個數字。

        一旦你找到你想刪除的命令,執(zhí)行下面的命令,從歷史記錄中刪除那個指定的項:

        history -d [num]

        第二個‘echo’命令被成功的刪除了。

        同樣的,你可以使用向上的箭頭一直往回翻看歷史記錄。當你發(fā)現你感興趣的命令出現在終端上時,按下“Ctrl + U”清除整行,也會從歷史記錄中刪除它。

        總結

        有多種不同的方法可以操作 Linux 命令行歷史來滿足你的需求。然而請記住,從歷史中隱藏或者刪除命令通常不是一個好習慣,盡管本質上這并沒有錯。但是你必須知道你在做什么,以及可能產生的后果。

        linux命令歷史篇三:強有力的Linux歷史命令

        強有力的Linux歷史命令 你還記得幾個

        忘記歷史的Linux用戶注定要輸入很多信息。這也讓強有力的歷史命令不僅在援引之前執(zhí)行命令時有用,在調用其它很少用到的命令時也有用。本文就介紹些強有力的Linux歷史命令,不知你還能記起幾個? AD:

        "忘記歷史的Linux用戶注定要輸入很多信息!

        這也讓強有力的歷史命令(包括Bash shell的歷史變體)不僅在援引之前執(zhí)行命令而不需重新輸入它們時有用,在調用其它很少用到的命令時也有用,這省去了必須重新使用它們的麻煩。該命令按時間順序列出了之前執(zhí)行命令的清單。

        該命令的輸出示例如下: $ history

        ...

        62 rm 092210.sql

        63 mysqldump

        64 mysqldump -u root -p dev_gamenomad_com > 092210.sql 65 more 092210.sql

        66 rm 092210.sql

        ...

        9991 mkdir chapter05

        9992 cd chapter05

        9993 dir

        9994 npm install websocket-server

        9995 node hello.js

        9996 exit

        9997 history

        與每條命令相關的順序號服務于重要目的,允許用戶通過提供直接跟著感嘆號的順序號來重新執(zhí)行相關命令,如下: $ !10000

        sudo /etc/init.d/apache2 start

        * Starting web server apache2

        但這并不是全部。Linux歷史命令能做到更多,本文后續(xù)部分也將提及。

        掌控歷史擴展

        敲擊向上箭頭鍵會顯示之前執(zhí)行的命令,敲擊Enter鍵會再次執(zhí)行該命令。但是還可以使用另一個可能更快的包括歷史擴展功能的選擇:

        $ !!

        如果你重復執(zhí)行同樣兩條或三條命令的不同排列組合,你還可以選擇通過識別其位移負指數來執(zhí)行出現在上一命令出現處的命令。例如,執(zhí)行之前命令的前一命令(回退兩條命令),運用以下序列:

        $ !-2

        執(zhí)行早期命令的另一方式是輸入緊跟著感嘆號的命令序列號的開頭。符合字符對象的第一條命令會執(zhí)行。舉例來說,假設最后三條命令如下: $ history

        ... 9876 build-book /home/wjgilmore/easy_php

        9877 mkdir chapter05

        9878 cd chapter05

        9879 touch chapter05.md

        你可以只通過運行以下命令來再次執(zhí)行構書腳本:

        $ !b

        用兩步過程創(chuàng)建一個確認它的新目錄和導航和以運用歷史擴展縮短。在本例中,我創(chuàng)建了一個叫做

        easy_bash的新目錄,位置在/home/wjgilmore/books。要確認該目錄,運用!$來獲得在前一命令中發(fā)現在最后“字符”:

        $ mkdir /home/wjgilmore/books/easy_bash

        $ cd !$

        搜索命令歷史

        雖然可以翻閱命令歷史(或使用grep命令),但在使用Ctrl+R開放選擇搜索它之后也可以調用該命令的片段,提示的命令行將如下所示:

        (reverse-i-search)`':

        開始輸入命令片段,命令行會實時更新反映出最符合的一條。輸入apa后會出現類似于這樣的命令: (reverse-i-search)`apa': sudo /etc/init.d/apache2 start

        當你看到想要的命令,敲擊Enter執(zhí)行它,或者敲擊向上箭頭鍵在重新執(zhí)行前修改它。

        調整歷史行為

        你可以做很多有趣的設置更改來控制命令歷史的行為方式。例如,Bash shell設置的默認歷史大小是500條記錄,這個限制很快就達到了,即使是很小的命令行相互作用。你可以通過設置在Bash配置文件(.bash

        linux命令歷史

        rc,位于主目錄中)上發(fā)現的HISTSIZE變量提高限制數。

        HISTSIZE=10000

        你在命名為HISTCONTROL的.bashrc中通常還會遇到另一個與歷史有關的變量。該變量幫助明確規(guī)定歷史文件中的存放內容(位于.bash_history,也可見于主目錄中)。例如,你也許在檢查最新的日志文件附件時重復執(zhí)行了尾命令,就在運行tail的幾分鐘里。通過重復來集群歷史文件不太實際,通過設置它為ignoredups來讓HISTCONTROL變量忽視復制行。

        HISTCONTROL=ignoredups

        可疑效用的另一個HISTCONTROL設置是忽略空格。該HISTCONTROL設置的結果是所有前面有空格的執(zhí)行命令都從歷史文件中刪除。這對于不跟蹤每條命令似乎起了反作用,但是如果你除了ignoredups之外還想實現該功能,你可以將兩者設置成:

        HISTCONTROL=ignoreboth

        我最后要談及的一個功能是命令替換。假設你想基于一個虛擬主機配置文件模板快速配置一群虛擬主機。這些命令序列可能非常長,就像下面所示: $ cp vhost.template /etc/apache2/sites-available/dev.example.com

        $ cp vhost.template /etc/apache2/sites-available/forum.example.com

        $ cp vhost.template /etc/apache2/sites-available/staging.example.com

        通常你執(zhí)行該一列命令的方法會是首先輸入和執(zhí)行,接著向上滾動、刪除尾行片段(dev.example.com),然后輸入下一片段(forum.example.com),然后重新執(zhí)行。另一種方法,你可以運用命令替換來快速地用一行字符串替換另一相關字符串,如下所示:

        $ !!:s/dev/forum

        該命令行在指向-點擊界面中已為用戶帶來了大量好處,讓任務執(zhí)行和操作系統(tǒng)導航可以快速且優(yōu)雅地完成。最大程度上地利用歷史命令只能增加這些功能,促進生產力會走得更遠。

        相關熱詞搜索:命令 歷史 linux linux查看歷史命令 linux清除歷史命令

        版權所有 蒲公英文摘 www.zuancaijixie.com
        91啦在线播放,特级一级全黄毛片免费,国产中文一区,亚洲国产一成人久久精品