linux的bash內(nèi)部命令history就可以顯示命令行的命令歷史,默認(rèn)環(huán)境執(zhí)行 history
創(chuàng)新互聯(lián)是專業(yè)的二道江網(wǎng)站建設(shè)公司,二道江接單;提供網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站,網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行二道江網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
命令后,通常只會(huì)顯示已執(zhí)行命令的序號(hào)和命令本身。
如果想要查看命令歷史的時(shí)間戳,那么可以執(zhí)行:
# export HISTTIMEFORMAT='%F %T '
# history | more
1 2008-08-05 19:02:39 service work restart
2 2008-08-05 19:02:39 exit
3 2008-08-05 19:02:39 id
這樣顯示的格式就變成,序號(hào) - 時(shí)間 - 命令行。
history的其他的一些基本功能:
1、使用 HISTSIZE 控制歷史命令記錄的總行數(shù)
將下面兩行內(nèi)容追加到 .bash_profile 文件并重新登錄 bash shell,命令歷史的記錄數(shù)將變成 450
條:
# vi ~/.bash_profile
HISTSIZE=450
HISTFILESIZE=450
2、使用 HISTFILE 更改歷史文件名稱
默認(rèn)情況下,命令歷史存儲(chǔ)在 ~/.bash_history 文件中。
添加下列內(nèi)容到 .bash_profile 文件并重新登錄
bash shell,將使用 mandline_warrior 來存儲(chǔ)命令歷史:
# vi ~/.bash_profile
HISTFILE=/root/mandline_warrior
3、使用 HISTCONTROL 從命令歷史中剔除連續(xù)重復(fù)的條目
在下面的例子中,pwd 命令被連續(xù)執(zhí)行了三次。
執(zhí)行 history 后會(huì)看到三條重復(fù)的條目。
要剔除這些重復(fù)的條目,可以將
HISTCONTROL 設(shè)置為 ignoredups:
# export HISTCONTROL=ignoredups
4、使用 HISTCONTROL 清除整個(gè)命令歷史中的重復(fù)條目
上例中的 ignoredups 只能剔除連續(xù)的重復(fù)條目。
要清除整個(gè)命令歷史中的重復(fù)條目,可以將 HISTCONTROL 設(shè)置成
erasedups:
# export HISTCONTROL=erasedups
5、使用 -c 選項(xiàng)清除所有的命令歷史
如果你想清除所有的命令歷史,可以執(zhí)行:
# history -c
6、使用 HISTIGNORE 忽略歷史中的特定命令
下面的例子,將忽略 pwd、ls、ls -ltr 等命令:
# export HISTIGNORE=”pwd:ls:ls -ltr:”
一、查看Linux系統(tǒng)的歷史記錄指令
1、 使用w命令查看登錄用戶正在使用的進(jìn)程信息
w命令用于顯示已經(jīng)登錄系統(tǒng)的用戶的名稱,以及他們正在做的事。該命令所使用的信息來源于/var/run/utmp文件。w命令輸出的信息包括:
? 用戶名稱
? 用戶的機(jī)器名稱或tty號(hào)
? 遠(yuǎn)程主機(jī)地址
? 用戶登錄系統(tǒng)的時(shí)間
? 空閑時(shí)間(作用不大)
? 附加到tty(終端)的進(jìn)程所用的時(shí)間(JCPU時(shí)間)
? 當(dāng)前進(jìn)程所用時(shí)間(PCPU時(shí)間)
? 用戶當(dāng)前正在使用的命令
Exampl:
?
此外,可以使用who am i查看使用該命令的用戶及進(jìn)程,使用who查看所有登錄用戶進(jìn)程信息,這些查看命令大同小異;
2、使用pkill強(qiáng)制退出登錄的用戶
使用pkill可以結(jié)束當(dāng)前登錄用戶的進(jìn)程,從而強(qiáng)制退出用戶登錄,具體使用可以結(jié)合w命令;
首先:使用w查看當(dāng)前登錄的用戶,注意TTY所示登錄進(jìn)程終端號(hào)
其次:使用pkill –9 -t pts/1 結(jié)束pts/1進(jìn)程所對(duì)應(yīng)用戶登錄(可根據(jù)FROM的IP地址或主機(jī)號(hào)來判斷)
3、使用history指令查看歷史用戶操作指令
使用完W指令查看用戶的操作進(jìn)程后,使用history指令可以看到以往的用戶操作指令。
History使用參數(shù)
[neusoftadmin@server]# history [n] **:數(shù)字,要列出最近的 n 筆命令列表
[neusoftadmin@server]# history [-c] **:將目前的shell中的所有 history 內(nèi)容全部消除
[neusoftadmin@server]# history [-raw] histfiles
-a :將目前新增的history 指令新增入 histfiles 中,若沒有加 histfiles ,
則預(yù)設(shè)寫入 ~/.bash_history
-r :將 histfiles 的內(nèi)容讀到目前這個(gè) shell 的 history 記憶中
-w :將目前的 history 記憶內(nèi)容寫入 histfiles。
?
備注:
Linux系統(tǒng)當(dāng)你在shell(控制臺(tái))中輸入并執(zhí)行命令時(shí),shell會(huì)自動(dòng)把你的命令記錄到歷史列表中,一般保存在用戶目錄下的.bash_history文件中。默認(rèn)保存1000條,你也可以更改這個(gè)值。
如果你鍵入 history, history會(huì)向你顯示你所使用的前1000個(gè)歷史命令,并且給它們編了號(hào),你會(huì)看到一個(gè)用數(shù)字編號(hào)的列表快速?gòu)钠聊簧暇磉^。你可能不需要查看1000個(gè)命令中的所有項(xiàng)目, 當(dāng)然你也可以加入數(shù)字來列出最近的 n 筆命令列表。
linux中history命令不僅僅讓我們可以查詢歷史命令而已. 我們還可以利用相關(guān)的功能來幫我們執(zhí)行命令。
二、查看所有登錄用戶的操作歷史的代碼
通過在/etc/profile里面加入以下代碼就可以實(shí)現(xiàn):
**#this script records log of user,and records IP address .**
PS1="`whoami`@`hostname`:"'[$PWD]'
history
USER_IP=`who -u am i 2/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
if [ "$USER_IP" = "" ]
then
USER_IP=`hostname`
fi
if [ ! -d /tmp/Iprecords ]
then
mkdir /tmp/Iprecords
chmod 777 /tmp/Iprecords
fi
if [ ! -d /tmp/Iprecords/${LOGNAME} ]
then
mkdir /tmp/Iprecords/${LOGNAME}
chmod 300 /tmp/Iprecords/${LOGNAME}
fi
export HISTSIZE=4096
DT=`date "+%Y-%m-%d_%H:%M:%S"`
export HISTFILE="/tmp/Iprecords/${LOGNAME}/${USER_IP} Iprecords.$DT"
chmod 600 /tmp/Iprecords/${LOGNAME}/*Iprecords* 2/dev/null
[neusoftadmin@server]# source /etc/profile ********執(zhí)行腳本
重啟之后,上面腳本在系統(tǒng)的/tmp新建個(gè)Iprecords目錄,記錄所有登陸過系統(tǒng)的用戶和IP地址(文件名),每當(dāng)用戶登錄/退出會(huì)創(chuàng)建相應(yīng)的文件,該文件保存這段用戶登錄時(shí)期內(nèi)操作歷史,可以用這個(gè)方法來監(jiān)測(cè)系統(tǒng)的安全性。
1.linux如何查看用戶所有的歷史操作記錄
1、使用w命令查看登錄用戶正在使用的進(jìn)程信息,w命令用于顯示已經(jīng)登錄系統(tǒng)的用戶的名稱,以及他們正在做的事。該命令所使用的信息來源于/var/run/utmp文件。w命令輸出的信息包括:用戶名稱
用戶的機(jī)器名稱或tty號(hào)
遠(yuǎn)程主機(jī)地址
用戶登錄系統(tǒng)的時(shí)間
空閑時(shí)間(作用不大)
附加到tty(終端)的進(jìn)程所用的時(shí)間(JCPU時(shí)間)
當(dāng)前進(jìn)程所用時(shí)間(PCPU時(shí)間)
用戶當(dāng)前正在使用的命令
1、首先打開Linux直接輸入一個(gè)history即可。
2、然后如果想執(zhí)行歷史中的某個(gè)命令,直接感嘆號(hào)加行號(hào)即可。
3、還可以運(yùn)用感嘆號(hào)加命令的起始字符即可調(diào)出歷史命令。
4、輸完了以后按回車你就會(huì)看到命令起作用了。
5、然后就會(huì)顯示Linux中各個(gè)用戶具體的操作時(shí)間和操作,通過以上步驟即可解決查看Linux中各個(gè)用戶的歷史操作命令的問題。
linux查看過去用過的命令如下;
1、切換到要查看的用戶下。
2、運(yùn)行history命令即可。
cat /那個(gè)用戶的家目錄/.bash_history