教你一些Linux中隱藏bash歷史命令的小技巧
導讀 | 如果你登入過 Linux 系統,並敲過一些命令,那你應該知道,bash history 會記錄你輸入的所有命令。這個操作其實是有一定風險的。 |
我個人經常使用 Linux,所以我想著研究一番,看看如何隱藏 bash history。下面就是我整理的一些方法,僅供大家參考:
· exit normally – history 記錄正常寫入
· kill– 伺服器端執行 -kill bash 程序ID後就不會再記錄 history 了。我檢查過是否需要加-9引數,不過不用,只需要一個基本的 kill 命令,就可以殺掉程序並阻止它寫入檔案。
·kill – 客戶端執行–kill ssh 程序 ID,即時加了-9引數還是會有歷史記錄。
· set +o history– 不會將任何當前會話寫入日誌。可以在會話期間任何時間執行,並隱藏所有命令。
· set -o history– 重啟日誌記錄,但是會記錄 set 命令,所以會發生一些明顯的變化。
· unset HISTFILE – 清除記錄歷史檔案位置的變數,這樣就不會儲存任何東西
· history -c– 徹底清除歷史。這條命令作用非常明顯,因為所有的歷史命令都沒了。
· export HISTIGNORE=“ls*:cat*”– 這條命令是不記錄引號中以冒號為分隔符的命令。這條命令可以使用shell模式,有點類似正則,但不盡相同
· export HISTFILESIZE=10– 設定歷史記錄數量為10。如果你已經完成了想要隱藏的操作,但又想保留其他的命令,請重新計算,將記錄數的大小設定為小於總數並繼續執行。這樣,所有之前的命令就會不可見,看起來會有一些可疑,但是因為歷史記錄中還是有內容,所以人們可能不會注意到。
· editing the.bash_history file– 如果你在會話期間編輯這個檔案,編輯的內容將會出現在會話的命令之前,這樣你其實可以在 history 中新增一些你實際並沒有執行過的命令,所以這也不失為一個好辦法。
· using multiple sessions– 一個會話終止時才會寫入 bash history。那我們可以使用兩個會話,第一個會話終止會寫入history,然後第二個會話的內容會在第一個會話終止時才開始寫入 history
· putting a space before a command(命令前面加一個空格) – 根據配置,在命令前加一個空格,就會不進行記錄。如果你已經輸入了你不想記錄的命令,那麼這個功能就沒什麼用,但如果想讓幾條好不相關的命令看似一條的話,使用這個還是不錯的。在使用之前請先進行測試,因為根據發行版和使用者配置不同,情況會有所不同。
· history -r– 這條命令會重新讀取 history 檔案,能夠將歷史記錄重置為你登入時的狀態。這條命令似乎非常有用,尤其是你可以編輯 history 檔案,新增命令時,然後關掉 shell。這會寫入經過你修改的 history,不留任何痕跡。
上面這些命令,好像“set +o history”是最好用的也是最通用的方法,因為它會隱藏當前會話的所有命令,但是會保留之前的命令。
不過根據場景不同,其他的命令也是非常有效的。
在你使用這些命令之前,一定要先自己測試一遍。當你已經登入了一個系統,而且意識到需要隱藏某些命令時,不要慌張,history 只會在會話結束時寫入,所以只要會話還沒有結束,你就可以停下來思考,怎麼去隱藏命令,希望本文的內容能夠幫到你。