開(kāi)小灶:隱藏bash歷史命令的小技巧
如果你登錄過(guò)Linux系統(tǒng),并敲過(guò)一些命令,那你應(yīng)該知道,bash history會(huì)記錄你輸入的所有命令,這個(gè)操作其實(shí)是有一定風(fēng)險(xiǎn)的。
我個(gè)人經(jīng)常使用Linux,所以我想著研究一番,看看如何隱藏bash history。下面就是我整理的一些方法,僅供大家參考:
- exit normally – history記錄正常寫(xiě)入· kill
– 服務(wù)器端運(yùn)行-kill bash進(jìn)程ID后就不會(huì)再記錄history了。我檢查過(guò)是否需要加-9參數(shù),不過(guò)不用,只需要一個(gè)基本的kill命令,就可以殺掉進(jìn)程并阻止它寫(xiě)入文件。· kill – 客戶(hù)端運(yùn)行–kill ssh進(jìn)程ID,即時(shí)加了-9參數(shù)還是會(huì)有歷史記錄。 set +o history – 不會(huì)將任何當(dāng)前會(huì)話(huà)寫(xiě)入日志。可以在會(huì)話(huà)期間任何時(shí)間運(yùn)行,并隱藏所有命令。 set -o history – 重啟日志記錄,但是會(huì)記錄set命令,所以會(huì)發(fā)生一些明顯的變化。 unset HISTFILE – 清除記錄歷史文件位置的變量,這樣就不會(huì)存儲(chǔ)任何東西 history -c – 徹底清除歷史。這條命令作用非常明顯,因?yàn)樗械臍v史命令都沒(méi)了。 export HISTIGNORE=“ls*:cat*” – 這條命令是不記錄引號(hào)中以冒號(hào)為分隔符的命令。這條命令可以使用shell模式,有點(diǎn)類(lèi)似正則,但不盡相同 export HISTFILESIZE=10 – 設(shè)置歷史記錄數(shù)量為10。如果你已經(jīng)完成了想要隱藏的操作,但又想保留其他的命令,請(qǐng)重新計(jì)算,將記錄數(shù)的大小設(shè)置為小于總數(shù)并繼續(xù)執(zhí)行。這樣,所有之前的命令就會(huì)不可見(jiàn),看起來(lái)會(huì)有一些可疑,但是因?yàn)闅v史記錄中還是有內(nèi)容,所以人們可能不會(huì)注意到。 editing the.bash_history file – 如果你在會(huì)話(huà)期間編輯這個(gè)文件,編輯的內(nèi)容將會(huì)出現(xiàn)在會(huì)話(huà)的命令之前,這樣你其實(shí)可以在history中添加一些你實(shí)際并沒(méi)有運(yùn)行過(guò)的命令,所以這也不失為一個(gè)好辦法。 using multiple sessions – 一個(gè)會(huì)話(huà)終止時(shí)才會(huì)寫(xiě)入bash history。那我們可以使用兩個(gè)會(huì)話(huà),第一個(gè)會(huì)話(huà)終止會(huì)寫(xiě)入history,然后第二個(gè)會(huì)話(huà)的內(nèi)容會(huì)在第一個(gè)會(huì)話(huà)終止時(shí)才開(kāi)始寫(xiě)入history putting a space before a command(命令前面加一個(gè)空格) – 根據(jù)配置,在命令前加一個(gè)空格,就會(huì)不進(jìn)行記錄。如果你已經(jīng)輸入了你不想記錄的命令,那么這個(gè)功能就沒(méi)什么用,但如果想讓幾條好不相關(guān)的命令看似一條的話(huà),使用這個(gè)還是不錯(cuò)的。在使用之前請(qǐng)先進(jìn)行測(cè)試,因?yàn)楦鶕?jù)發(fā)行版和用戶(hù)配置不同,情況會(huì)有所不同。 history -r – 這條命令會(huì)重新讀取history文件,能夠?qū)v史記錄重置為你登錄時(shí)的狀態(tài)。這條命令似乎非常有用,尤其是你可以編輯history文件,添加命令時(shí),然后關(guān)掉shell。這會(huì)寫(xiě)入經(jīng)過(guò)你修改的history,不留任何痕跡。