在linux系統(tǒng)中,用戶的操作指令會(huì)被保存下來,具體存儲(chǔ)在用戶目錄下的.bash_history文件中。每個(gè)指令都帶有時(shí)間戳,標(biāo)記其執(zhí)行時(shí)間。
當(dāng)用戶通過Shell進(jìn)入Linux系統(tǒng)時(shí),系統(tǒng)首先會(huì)將.bash_history文件中的歷史指令加載到歷史記錄緩存區(qū)中。在用戶正常退出Shell之前,所有執(zhí)行的指令都會(huì)被記錄在緩存區(qū)中。只有在用戶正常退出Shell(例如通過exit命令或使用Ctrl+D)時(shí),Shell進(jìn)程才會(huì)將緩存區(qū)中的歷史記錄寫入到.bash_history文件中。
要查看歷史記錄緩存區(qū)中的指令,可以使用以下命令:
history #查看歷史記錄緩存區(qū)中保存的歷史指令
歷史記錄可以從最開始到現(xiàn)在的所有時(shí)間段內(nèi)查看。
用戶可以通過鍵盤的上下箭頭鍵快速瀏覽歷史緩存區(qū)中的指令。
如果只想查看最近的n條歷史指令,可以使用以下命令:
history n #查看緩沖區(qū)中最近的n條歷史指令
如果用戶執(zhí)行了幾條指令,例如兩次ls和ll,這些指令會(huì)首先記錄在歷史緩存區(qū)中。
檢查.bash_history文件時(shí),用戶會(huì)發(fā)現(xiàn)這些新指令尚未寫入,因?yàn)樗鼈內(nèi)栽跉v史緩存區(qū)中,只有在退出Shell時(shí)才會(huì)自動(dòng)保存到.bash_history。
如果希望手動(dòng)將歷史緩存區(qū)的內(nèi)容寫入.bash_history,可以使用以下命令:
history -w #手動(dòng)將歷史緩存寫入用戶目錄下的.bash_history
通常,只有在Shell正常退出時(shí),緩存區(qū)的內(nèi)容才會(huì)保存到.bash_history。如果需要主動(dòng)保存歷史記錄,可以使用-w選項(xiàng)。
要清除歷史緩存區(qū)中的記錄,可以使用以下命令:
history -c #清除歷史緩沖區(qū)
清除歷史緩存區(qū)只會(huì)刪除當(dāng)前會(huì)話中的操作記錄,不會(huì)影響.bash_history文件中已保存的之前的歷史記錄。
要重復(fù)執(zhí)行歷史緩存區(qū)中的某條指令,可以使用以下命令:
!n #重復(fù)執(zhí)行緩沖區(qū)中的第n條歷史指令
如果要重復(fù)執(zhí)行倒數(shù)第n條指令,可以使用:
!-n #重復(fù)執(zhí)行緩沖區(qū)中倒數(shù)第n行歷史指令
要重復(fù)執(zhí)行上一條指令,可以使用:
!! #重復(fù)執(zhí)行上一條命令
搜索歷史命令時(shí),可以使用以下快捷鍵:
快捷鍵:Ctrl + R # 輸入殘缺指令,搜索對(duì)應(yīng)完整歷史指令