背景:history是linux中常會用到內容,在工作中一些使用者會突然發現其安裝不了某個軟體,於是尋求運維人員的幫助,而不給你說明他到底做了哪些坑爹的操作。此時你第一件要做的就是要檢視其history命令歷史。檢視後興許你就會發現他到底幹了什麼坑爹的操作。
history可以讓你在一定情況下快速定位問題所在。
本文的history介紹及其實踐都是來自centos7.2環境
history的介紹
history是shell的內建命令,其內容在系統預設的shell的man手冊中。
history是顯示在終端輸入並執行的過命令,系統預設保留1000條。
系統在關閉後會將現有history內容儲存在檔案~/.bash_history
與history相關的環境變數
讓上述環境變數生效方式:
1、直接在當前shell內輸入相關變數,比如我們不想留存命令歷史,我們把histsize設定為0
經測試,成功。不過這種設定的侷限性是其作用範圍僅僅針對當前shell及其子shell,如果切換使用者或登出再登入其設定失效。不過其特點是設定完立刻生效。
下面通過實驗說明這個問題
以上結果說明在當前shell內設定history的環境變數後,其作用範圍為當前shell及子shell
重新登陸後原有的history環境變數失效
2、另一種讓history環境變數生效的方式是修改~/.bash_profile檔案
wq儲存退出。
由結果可知變數並沒有生效,我們重新登入再嘗試下。
通過上面的兩個結果,我們可以發現第二種修改配置檔案雖然也可以成功修改history環境變數但是其生效需要重新登陸,並不是改完就生效。但是它的特點是此修改始終有效,時效性為永久。
history命令的使用
-c: 清空命令歷史
-d n: 刪除歷史中指定的命令,n表示命令號
#: 顯示最近的#條歷史
-a: 追加本次會話新執行的命令歷史列表至歷史檔案,因為多終端所以如果想看當前都發生了什麼操作就可以執行-a進行檢視
-n: 讀歷史檔案(本地資料)中未讀過的行到歷史列表(記憶體資料)
-r: 讀歷史檔案(本地資料)附加到歷史列表(記憶體資料)
-w: 儲存歷史列表(記憶體資料)到指定的歷史檔案(本地資料)
-s: 展開歷史引數成一行,附加在歷史列表後。用於偽造命令歷史
下面來演示上面幾種命令的使用
清空歷史
從歷史檔案讀取之前的命令歷史
刪除指定命令歷史
偽造歷史命令
我相信任誰輸入history看到這個命令都會嚇一身汗。
呼叫歷史引數詳解
下面通過實驗來實踐上面的歷史引數的具體用法
我們先使用!!來呼叫上一條命令
常用的快捷鍵
重新呼叫前乙個命令中最後乙個引數:
Linux之基礎知識
在此總結使用linux的時候,一些必須知道的基礎內容,記錄一下,加強記憶 一.linux 執行級別 執行級別就是作業系統當前正在執行的功能級別。這個級別從0到6 具有不同的功能。這些級別在 etc inittab檔案裡指定。這個檔案是init程式尋找的主要檔案,最先執行的服務是那些放在 etc rc...
Linux基礎知識之管道
取代將命令的輸出重定向到檔案,你可以重定向輸出到另乙個命令,這個過程稱為管道連線。類似於反引號,管道的符號的shell程式設計之外也很少用到,格式為command1 command2 不要以為管道鏈結會乙個乙個地執行,linux系統實際上會同時執行這兩個命令,在系統內部將它們連線起來,在第乙個命令產...
linux基礎知識
舉例來說,硬碟的檔名稱即為 dev hd a d 其中,括號內的字母為 a d 當中的任何乙個,亦即由 dev hda,dev hdb,dev hdc,及 dev hdd 這四個檔案的意思 注 這種型式的表示法在後面的章節當中會使用得很頻繁,請特別留意 那麼光碟機與軟盤呢?分別是 dev cdrom...