1. 程式人生 > >Linux下history命令用法

Linux下history命令用法

如果你經常使用 Linux 命令列,那麼使用># export HISTTIMEFORMAT='%F %T '
#># [Press Ctrl+R from the command prompt, which will display the reverse-i-search prompt]
(reverse-i-search)`red‘:># history | more
1># !ps
ps># vi ~/.bash_profile
HISTSIZE=450
HISTFILESIZE=450

使用 HISTFILE 更改歷史檔名稱

預設情況下,命令歷史儲存在 ~/.bash_history 檔案中。新增下列內容到 .bash_profile 檔案並重新登入># vi ~/.bash_profile
HISTFILE=/root/.commandline_warrior

使用 HISTCONTROL 從命令歷史中剔除連續重複的條目

在下面的例子中,pwd 命令被連續執行了三次。執行># pwd
#> # pwd
#> 57 pwd [Note that there is only one pwd command in the history, even after executing pwd 3 times as shown above]
58># export HISTCONTROL=erasedups
#> 36 pwd
37>

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

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

# history -c

命令替換

在下面的例子裡,!!:$ 將為當前的命令獲得上一條命令的引數:

# ls anaconda-ks.cfg
anaconda-ks.cfg
# vi !!:$
vi anaconda-ks.cfg

補充:使用 !$ 可以達到同樣的效果,而且更簡單。[感謝 wanzigunzi 讀者補充]

下例中,!^ 從上一條命令獲得第一項引數:

# cp anaconda-ks.cfg anaconda-ks.cfg.bak
anaconda-ks.cfg
# vi -5 !^
vi anaconda-ks.cfg

為特定的命令替換指定的引數

在下面的例子,!cp:2 從命令歷史中搜索以 cp 開頭的命令,並獲取它的第二項引數:

# cp ~/longname.txt /really/a/very/long/path/long-filename.txt
# ls -l !cp:2
ls -l /really/a/very/long/path/long-filename.txt

下例裡,!cp:$ 獲取 cp 命令的最後一項引數:

# ls -l !cp:$
ls -l /really/a/very/long/path/long-filename.txt

使用 HISTSIZE 禁用 history

如果你想禁用 history,可以將 HISTSIZE 設定為 0:

# export HISTSIZE=0
# history
# [Note that history did not display anything]

使用 HISTIGNORE 忽略歷史中的特定命令

下面的例子,將忽略 pwd、ls、ls -ltr 等命令:

# export HISTIGNORE=”pwd:ls:ls -ltr:”
#> 80 service httpd stop
81 history
[Note that history did not record pwd, ls and ls -ltr]

如果你經常使用Linux命令,那麼使用history命令無疑會提升你的工作效率。
History命令主要用於顯示歷史指令記錄內容, 下達歷史紀錄中的指令 。
1>History命令語法:
[[email protected]]# history [n]
[[email protected]]# history [-c]
[[email protected]]# history [-raw] histfiles
引數:
n   :數字,要列出最近的 n 筆命令列表
-c  :將目前的shell中的所有 history 內容全部消除
-a  :將目前新增的history 指令新增入 histfiles 中,若沒有加 histfiles ,
則預設寫入 ~/.bash_history
-r  :將 histfiles 的內容讀到目前這個 shell 的 history 記憶中
-w  :將目前的 history 記憶內容寫入 histfiles
Linux系統當你在shell(控制檯)中輸入並執行命令時,shell會自動把你的命令記錄到歷史列表中,一般儲存在使用者目錄下的.bash_history檔案中。預設儲存1000條,你也可以更改這個值。
如果你鍵入 history, history會向你顯示你所使用的前1000個歷史命令,並且給它們編了號,你會看到一個用數字編號的列表快速從螢幕上捲過。你可能不需要檢視1000個命令中的所有專案, 當然你也可以加入數字來列出最近的 n 筆命令列表。
linux中history命令不僅僅讓我們可以查詢歷史命令而已. 我們還可以利用相關的功能來幫我們執行命令。
2>執行特定的歷史命令
history會列出bash儲存的所有歷史命令,並且給它們編了號,我們可以使用“歎號接編號”的方式執行特定的歷史命令.
語法說明:
[[email protected]]# [!number]  [!command] [!!]
引數說明:
number   :第幾個指令的意思;
command  :指令的開頭幾個字母
!        :上一個指令的意思!
3>History命令實戰
列出所有的歷史記錄:
[[email protected]] # history
只列出最近10條記錄:
[[email protected]] # history 10 (注,history和10中間有空格)
使用命令記錄號碼執行命令,執行歷史清單中的第99條命令
[[email protected]] #!99 (!和99中間沒有空格)
重複執行上一個命令
[[email protected]] #!!
執行最後一次以rpm開頭的命令(!?  ?代表的是字串,這個String可以隨便輸,Shell會從最後一條歷史命令向前搜尋,最先匹配的一條命令將會得到執行。)
[[email protected]] #!rpm
逐屏列出所有的歷史記錄:
[[email protected]]# history | more
立即清空history當前所有歷史命令的記錄
[[email protected]] #history -c
除了使用history命令,在 shell 或 GUI 終端提示下,你也可以使用上下方向鍵來翻閱命令歷史(向下箭頭會向前翻閱),直到你找到所需命令為止。這可以讓我們很方便地編輯前面的某一條命令,而不用重複輸入類似的命令。
History命令的用途確實很大!但需要小心安全的問題!尤其是 root 的歷史紀錄檔案,這是黑客們的最愛!因為不小心的 root 會將很多的重要資料在執行的過程中會被紀錄在 ~/.bash_history 當中,如果這個檔案被解析的話,後果不堪設想!

相關推薦

Linuxhistory命令用法

如果你經常使用 Linux 命令列,那麼使用># export HISTTIMEFORMAT='%F %T ' #># [Press Ctrl+R from the command prompt, which will display the reverse-i

linuxhistory命令顯示歷史指令記錄的使用方法

語法 tex 系統 linux下 命令 過程 相關 不堪 中間 linux下history命令顯示歷史指令記錄的使用方法 History命令主要用於顯示歷史指令記錄內容, 下達歷史紀錄中的指令 。1>History命令語法: [test@li

Linuxshell命令用法和例項總結:du

完整的Linux下Shell命令總結歸檔於IT老兵部落格。 命令格式 du [選項] [檔案] 命令功能 du(disk usage 的簡稱)命令用於檢查計算機上檔案和目錄的磁碟使用情況,可以遞迴顯示檔案和目錄。顯示每個檔案和目錄的磁碟使用空間。 命令引數

Linuxcut命令用法詳解

  Linux下cut命令用法詳解                                                            原創:frozen_sucker(冰棍) 有時我們經常會遇到這樣一些問題:有一頁電話號碼薄,上面按順序規則地寫著人名、家庭

C語言再學習 -- Linuxfind命令用法

linux下查詢檔案的命令有兩個:locate 和 find 首先說一下locate: 這個命名是對其生成的資料庫進行遍歷(生成資料庫的命令:uodatedb),這一特性決定了用locate查詢檔案速度很快,但是locate命令只能對檔案進行模糊匹配,在精度上來說差了點,

Linuxrsync命令用法

目錄概述:     rsync工具簡介     1. rsync用法     2. rsync 引數說明     3. rsync的配置     3.1 2臺主機建立ssh信任     3.2 伺服

Linuxhistory命令詳解---轉載

Linux下History命令主要用於顯示歷史指令記錄內容, 下達歷史紀錄中的指令 。 >History命令語法: [[email protected]]# history [n] [[email protected]]# history [-

Linuxdiff命令用法詳解

大家好,我是良許。 我們在平時工作的時候,經常要知道兩個檔案之間,以及同個檔案不同版本之間有何異同點。在 Windows 下,有 beyond compare 這個好用的工具,而在 Linux 下,也有很多很強大的工具,良許之前也寫過一篇文章介紹: [Linux下9種優秀的程式碼比對工具推薦](https

Linux ls 命令的高階用法8例

在Linux下,ls這個命令大家肯定太熟悉了,良許相信只要是Linux工程師,每天都會離不開這個命令,而且一天會使用個幾百次。但是,除了 ls -l 以外,你還知 ls 的哪些高階用法呢?良許今天為大家介紹 ls 命令的8種高階用法。 假如我們有這樣的一個資料夾,我們用tree命令檢視它的目錄結構:

8 個 Linux ls 命令的高階用法!個個驚豔!

作者 | 良許 責編 | 胡巍巍 在Linux下,ls這個命令大家肯定太熟悉了,筆者相信只要是Linux工程師,每天都會離不開這個命令,而且一天會使用個幾百次。 但是,除了ls -l以外,你還知ls的哪些高階用法呢?筆者今天為大家介紹ls命令的8種高階用法。

linux常用命令與常用操作用法及解釋(初學者必備)

1、環境變數      (1)列印環境變數:ehco  $PATH      (2)新增到環境變數(一般放在當前使用者的宿主目錄~/下的.bashrc檔案裡):export PATH=/usr/local/bin:$PATH                 解釋:每一次

Linux小技巧之history命令用法15例

作為Linux系統工程師,在分析系統的安全或故障問題時,經常會使用history(歷史)命令檢視系統的歷史操作記錄,這篇文章將通過例項的方式向你介紹history命令相關的15個小技巧…… 1. 使用 HISTTIMEFORMAT 顯示時間戳 當你從命令列執行 history 命令後,通常只會顯示已

linuxps命令 和 grep命令用法

inux上程序有5種狀態: 1. 執行(正在執行或在執行佇列中等待) 2. 中斷(休眠中, 受阻, 在等待某個條件的形成或接受到訊號) 3. 不可中斷(收到訊號不喚醒和不可執行, 程序必須等待直到有中斷髮生) 4. 僵死(程序已終止, 但程序描述符存在, 直到父程序

Linuxgdb除錯用法命令

一直在Fedora平臺下寫opencv的程式,需要對程式進行除錯,主要用的除錯工具是gdb. gdb提供瞭如下功能: 1.在程式中設定斷點,Debug時遇到斷點處暫停 2.可以監視某個變數,並利用print函式將該變數的值打印出來 3.程式可step-by-

linuxrename命令用法——適合大批量修改檔名

linux下rename命令的用法——適合大批量修改檔名 在看鳥哥私房菜的時候,遇到了mv這個可以修改檔名的命令。後面還有一個命令,叫rename。鳥哥讓自己man幫助查詢。結果自己一看,發現這個命令居然可以批量的修改檔名。首先,看下man幫助裡面的說明: For example, given the fi

Linuxhistory 命令的15個用法

  1. 使用 HISTTIMEFORMAT 顯示時間戳   當你從命令列執行 history 命令後,通常只會顯示已執行命令的序號和命令本身。如果你想要檢視命令歷史的時間戳,那麼可以執行:   # export HISTTIMEFORMAT='%F %T '   # hi

Linux常用命令之sed學習總結

linux sed sed命令 正則表達式 sed總結 Sed功能說明:Sed是linux下一個強大的文本文件處理工具,通過對文件增加、刪除、查找、查詢操作,配合正則表達式以實現工作中的各種需求。同時也是一名運維人員必須掌握的核心技能。---------------------------

linuxcat命令詳解

forever ron localhost root sta testing 幫助 查看 一點 1、cat 顯示文件連接文件內容的工具; cat 是一個文本文件查看和連接工具。查看一個文件的內容,用cat比較簡單,就是cat 後面直接接文件名。 比如: de>[[

linuxalias命令具體解釋

margin san 登錄 white gre con 變量 每次 ext linux下alias命令具體解釋 用途說明 設置命令的別名。在linux系統中假設命令太長又不符合用戶的習慣,那麽我們能夠為它指定一個別名。盡管能夠為命令建立“鏈接” 解決長文件名

linuxyum命令出現Loaded plugins: fastestmirror

tle enable yum test enabled net post sdn http linux下yum命令出現Loaded plugins: fastestmirror yum install的時候提示:Loaded plugins: fastestmirror