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