history的命令詳解

  銘記歷史,圓夢(mèng)中華。在Linux操作系統(tǒng)中,對(duì)于管理員操作的命令進(jìn)行查詢也是非常重要,而且熟練掌握調(diào)用命令歷史能提高管理員管理系統(tǒng)的效率。

創(chuàng)新互聯(lián)專注于山南企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城網(wǎng)站定制開發(fā)。山南網(wǎng)站建設(shè)公司,為山南等地區(qū)提供建站服務(wù)。全流程按需網(wǎng)站策劃,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

  history的命令緩存數(shù)目是由一個(gè)在/etc/profile文件名為HISTSIZE的變量決定,可以通過env命令查看當(dāng)前設(shè)定的數(shù)目,也可以通過修改HISTSIZE的數(shù)值來決定緩存多少條命令。建議修改添加至自己家目錄下面的.bash_profile,不要修改全局的變量。以下所有變量我均是添加在自己的家目錄下面的.bash_profile,若有需要請(qǐng)自行在/etc/profile修改

  常用選項(xiàng)

n 列出當(dāng)前的n條命令

-a 清除緩存中的所有命令

-c 清除當(dāng)前shell中緩存的命令

-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)的列表快速從屏幕上卷過。你可能不需要查看1000個(gè)命令中的所有項(xiàng)目, 當(dāng)然你也可以加入數(shù)字來列出最近的 n 筆命令列表。linux中history命令不僅僅讓我們可以查詢歷史命令而已. 我們還可以利用相關(guān)的功能來幫我們執(zhí)行命令。運(yùn)行特定的歷史命令history會(huì)列出bash保存的所有歷史命令,并且給它們編了號(hào),我們可以使用“嘆號(hào)接編號(hào)”的方式運(yùn)行特定的歷史命令.

  常用用法:

    !NUMBER 執(zhí)行第NUMBER條命令

!! 和crtl+p 都是執(zhí)行上一條命令

! COMMAND e.g !c  執(zhí)行最近的以c開頭的命令,切記是從后往前最近的一條以C開頭的命令。   常用案例

1、查看history命令使用的時(shí)間

由于history列出的命令很多,我們可以通過管道命令將history命令送給less命令方便查看,e.g history |less ;

同時(shí)我們可以設(shè)置history的環(huán)境變量HISTTIMEFORMAT讓其顯示每條命令執(zhí)行時(shí)間,方便查看和了解當(dāng)前系統(tǒng)何時(shí)執(zhí)行過什么命令.

export HISTTIMEFORMAT='%F %T '

若要是想永久讓history命令顯示時(shí)間,將上面這條命令追加至當(dāng)前用戶的家目錄下面.bash_profile里面。

2、用Ctrl + R搜索歷史命令

我非常確信這應(yīng)該是你最常使用的history特性,當(dāng)你執(zhí)行了一串相當(dāng)長的命令之后,你只要用關(guān)鍵字搜索一下歷史命令然后重新執(zhí)行這條命令而不需要將整條命令再輸一遍。方法是:按下Ctrl +R然后輸入關(guān)鍵字。 在以下示例中,我搜索“sys”,則顯示以前的命令中含有”sys”的命令“cat/etc/system-release”。

[注:在命令行提示符下按下Ctrl+R,終端將顯示如下提示―reverse-i-search‖]

(reverse-i-search)`sys`: cat/etc/system-release

[注:當(dāng)看到你要的命令后按回車鍵,就可以重新執(zhí)行這條命令了]

cat /etc/system-release

而有的時(shí)候你需要在執(zhí)行一條歷史命令之前編輯它.比如,你可以像下面那樣搜索“sys”,終端顯示歷史命令“cat /etc/system-release”,選擇它把"system"改為“centos”然后執(zhí)行它

[注: 在命令提示符下按 Ctrl+R , 將會(huì)顯示提示符‖reverse-i-search‖]

(reverse-i-search)`sys`:cat /etc/system-release 

[注: 看到你想要的命令后按下左鍵或者右鍵,就可以在執(zhí)行這條命令之前編輯它了]

cat /etc/centos-release

3、使用HISTFILE改變歷史文件名

 默認(rèn)情況下,命令歷史被儲(chǔ)存在.bash_history文件中,把下面的一行添加到.bash_profile文件中,重新登錄shell,則.commandline_warrior文件將取代.bash_history文件用來儲(chǔ)存歷史命令。你可以使用這個(gè)命令來追蹤不同終端中執(zhí)行的命令,屆時(shí)只需要將不同終端中所執(zhí)行的命令保存在不同的歷史文件中即可。這樣就能知道系統(tǒng)出問題到底是誰在操作導(dǎo)致的。

vim ~/.bash_profile

HISTFILE=/root/.commandline_warrior

4、使用HISTCONTROL來消除命令歷史中的連續(xù)重復(fù)條目;

cat /etc/profile

if [ "$HISTCONTROL" = "ignorespace" ] ; then

    export HISTCONTROL=ignoreboth

else

    export HISTCONTROL=ignoredups

fi

這個(gè)HISTCONTROL變量就是控制是否顯示連續(xù)的重復(fù)條目,連續(xù)敲三次ls, 這三次ls就叫做連續(xù)重復(fù)命令;假若敲一次ls,一次cd,再一次ls,這不叫做連續(xù)重復(fù)命令;

ignoreups就是ignoredups去除連續(xù)重復(fù)的命令,只能剔除連續(xù)的重復(fù)條目;要清除整個(gè)命令歷史中的重復(fù)條目,可以將 HISTCONTROL 設(shè)置成 erasedups;

ignorespce 是以空格開頭的命令在history中不顯示,e.g [spcace] ls ,再去history就不能發(fā)現(xiàn)ls這個(gè)命令,但是我們能看到這個(gè)命令是執(zhí)行了的。

ignoreboth 就是同時(shí)帶著上面兩種選項(xiàng)的結(jié)果。

5、將上一個(gè)命令的參數(shù)傳遞給當(dāng)前命令。

!!:$將上一個(gè)命令的參數(shù)傳遞給當(dāng)前命令

e.g cat /etc/profile

   vim !!:$ 這個(gè)打開還是/etc/profile 這個(gè)文件

!^ 將上一個(gè)命令中的第一個(gè)參數(shù)傳遞給當(dāng)前命令

cp /etc/profile /tmp

vim !^ 打開的文件就是 /etc/profile

6、替換特定命令的特定參數(shù)

在下例中,!cp:2 在命令歷史中查找以cp開頭的命令,并將其第二個(gè)參數(shù)做為當(dāng)前命令(ls -l)的參數(shù)。

cp /etc/profile /tmp

ls -l !cp:2

ls -l /tmp

在下面的例子中“!cp:$”尋找先前以cp為開頭的命令,并把該條指令的最后一個(gè)參數(shù)(在這個(gè)例子中依舊是第二個(gè)參數(shù))替換到“l(fā)s –l”中。

ls -l !cp:$

ls -l /tmp

同理,ls -l !cp:^ 就是需要以cp開頭命令,并把該條命令的第一個(gè)參數(shù)替換到“l(fā)s -l”中

ls -l !cp:^

ls-l /etc/profile

7、用HISTIGNORE讓history在存儲(chǔ)時(shí)忽略某些指令

有時(shí)你不想在記錄里看到諸如“pwd”,“l(fā)s”之類的基本指令,可以用HISTIGNORE忽略這些指令。

注意在HISTIGNORE中添加“l(fā)s”,只忽略“l(fā)s”不忽略“l(fā)s –l”。一定要準(zhǔn)確的寫出要忽略的的指令。

#export HISTIGNORE=“pwd:ls:”

同理這條命令可以追加進(jìn)家目錄下的.bash_profile。

本文標(biāo)題:history的命令詳解
本文網(wǎng)址:http://muchs.cn/article14/jopsde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、網(wǎng)站營銷云服務(wù)器、Google、用戶體驗(yàn)、

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)