linux歷史命令
發(fā)布時(shí)間:2017-02-07 來(lái)源: 歷史回眸 點(diǎn)擊:
linux歷史命令篇一:Linux基礎(chǔ)教程 教你隱藏Linux的命令行歷史
Linux基礎(chǔ)教程教你隱藏Linux的命令行歷史
如果你是 Linux 命令行的用戶(hù),有的時(shí)候你可能不希望某些命令記錄在你的命令行歷史中。原因可能很多,例如,你在公司擔(dān)任某個(gè)職位,你有一些不希望被其它人濫用的特權(quán)。亦或者有些特別重要的命令,你不希望在你瀏覽歷史列表時(shí)誤執(zhí)行。
然而,有方法可以控制哪些命令進(jìn)入歷史列表,哪些不進(jìn)入嗎?或者換句話說(shuō),我們?cè)?Linux 終端中可以開(kāi)啟像瀏覽器一樣的無(wú)痕模式嗎?答案是肯定的,而且根據(jù)你想要的具體目標(biāo),有很多實(shí)現(xiàn)方法。在這篇文章中,將和大家討論一些行之有效的方法。
注意:文中出現(xiàn)的所有命令都在 Ubuntu 下測(cè)試過(guò)。
不同的可行方法
前面兩種方法已經(jīng)在之前一篇文章中描述了。如果你已經(jīng)了解,這部分可以略過(guò)。然而,如果你不了解,建議仔細(xì)閱讀。
1. 在命令前插入空格
是的,沒(méi)看錯(cuò)。在命令前面插入空格,這條命令會(huì)被 shell 忽略,也就意味著它不會(huì)出現(xiàn)在歷史記錄中。但是這種方法有個(gè)前提,只有在你的環(huán)境變量 HISTCONTROL 設(shè)置為 "ignorespace" 或者 "ignoreboth" 才會(huì)起作用。在大多數(shù)情況下,這個(gè)是默認(rèn)值。
所以,像下面的命令(LCTT 譯注:這里[space]表示輸入一個(gè)空格):
[space]echo "this is a top secret"
如果你之前執(zhí)行過(guò)如下設(shè)置環(huán)境變量的命令,那么上述命令不會(huì)出現(xiàn)在歷史記錄中。
export HISTCONTROL = ignorespace
下面的截圖是這種方式的一個(gè)例子。
第四個(gè) "echo" 命令因?yàn)榍懊嬗锌崭,它沒(méi)有被記錄到歷史中。
2. 禁用當(dāng)前會(huì)話的所有歷史記錄
如果你想禁用某個(gè)會(huì)話所有歷史,你可以在開(kāi)始命令行工作前簡(jiǎn)單地清除環(huán)境變量 HISTSIZE 的值即可。執(zhí)行下面的命令來(lái)清除其值:
export HISTSIZE=0
HISTSIZE 表示對(duì)于 bash 會(huì)話其歷史列表中可以保存命令的個(gè)數(shù)(行數(shù))。默認(rèn)情況,它設(shè)置了一個(gè)非零值,例如在我的電腦上,它的值為 1000。
所以上面所提到的命令將其值設(shè)置為 0,結(jié)果就是直到你關(guān)閉終端,沒(méi)有東西會(huì)存儲(chǔ)在歷史
記錄中。記住同樣你也不能通過(guò)按向上的箭頭按鍵或運(yùn)行 history 命令來(lái)看到之前執(zhí)行的命令。
3. 工作結(jié)束后清除整個(gè)歷史
這可以看作是前一部分所提方案的另外一種實(shí)現(xiàn)。唯一的區(qū)別是在你完成所有工作之后執(zhí)行這個(gè)命令。下面是剛說(shuō)到的命令:
history -cw
剛才已經(jīng)提到,這個(gè)和 HISTSIZE 方法有相同效果。
4. 只針對(duì)你的工作關(guān)閉歷史記錄
雖然前面描述的方法(2 和 3)可以實(shí)現(xiàn)目的,它們可以清除整個(gè)歷史,在很多情況下,有些可能不是我們所期望的。有時(shí)候你可能想保存直到你開(kāi)始命令行工作之間的歷史記錄。對(duì)于這樣的需求,你開(kāi)始在工作前執(zhí)行下述命令:
[space]set +o history
備注:[space] 表示空格。并且由于空格的緣故,該命令本身也不會(huì)被記錄。
上面的命令會(huì)臨時(shí)禁用歷史功能,這意味著在這命令之后你執(zhí)行的所有操作都不會(huì)記錄到歷史中,然而這個(gè)命令之前的所有東西都會(huì)原樣記錄在歷史列表中。
要重新開(kāi)啟歷史功能,執(zhí)行下面的命令:
[Space]set -o history
它將環(huán)境恢復(fù)原狀,也就是你完成了你的工作,執(zhí)行上述命令之后的命令都會(huì)出現(xiàn)在歷史中。
5. 從歷史記錄中刪除指定的命令
現(xiàn)在假設(shè)歷史記錄中已經(jīng)包含了一些你不希望記錄的命令。這種情況下我們?cè)趺崔k?很簡(jiǎn)單。直接動(dòng)手刪除它們。通過(guò)下面的命令來(lái)刪除:
history | grep "part of command you want to remove"
上面的命令會(huì)輸出歷史記錄中匹配的命令,每一條前面會(huì)有個(gè)數(shù)字。
一旦你找到你想刪除的命令,執(zhí)行下面的命令,從歷史記錄中刪除那個(gè)指定的項(xiàng):
history -d [num]
第二個(gè)‘echo’命令被成功的刪除了。
同樣的,你可以使用向上的箭頭一直往回翻看歷史記錄。當(dāng)你發(fā)現(xiàn)你感興趣的命令出現(xiàn)在終端上時(shí),按下“Ctrl + U”清除整行,也會(huì)從歷史記錄中刪除它。
總結(jié)
有多種不同的方法可以操作 Linux 命令行歷史來(lái)滿(mǎn)足你的需求。然而請(qǐng)記住,從歷史中隱藏或者刪除命令通常不是一個(gè)好習(xí)慣,盡管本質(zhì)上這并沒(méi)有錯(cuò)。但是你必須知道你在做什么,以及可能產(chǎn)生的后果。
linux歷史命令篇二:Linux培訓(xùn)教程 linux查詢(xún)歷史記錄命令history的用法介紹
Linux培訓(xùn)教程 linux查詢(xún)歷史記錄命令history的用法介紹
、什么是history
在bash功能中,它能記憶使用過(guò)的命令,這個(gè)功能最大的好處就是可以查詢(xún)?cè)?jīng)做過(guò)的舉動(dòng)!從而可以知道你的運(yùn)行步驟,那么就可以追蹤你曾下達(dá)過(guò)的命令,以作為除錯(cuò)的工具!
二、History的保存
那么命令記錄在哪里呢?在家目錄內(nèi)的 .bash_history 里! 不過(guò),需要留意的是,~/.bash_history 記錄的是前一次登陸以前所運(yùn)行過(guò)的命令,而至于這一次登陸所運(yùn)行的命令都被緩存在內(nèi)存中,當(dāng)你成功的注銷(xiāo)系統(tǒng)后,該命令記憶才會(huì)記錄到 .bash_history 當(dāng)中!
三、調(diào)用歷史命令
接下來(lái)學(xué)習(xí)history歷史命令的用法。
復(fù)制代碼代碼如下:
history [n]
[root@jb51 Desktop]#history [-c]
[root@jb51 Desktop]#history [-raw] histfiles
選項(xiàng)與參數(shù):
n :數(shù)字,意思是要列出最近的 n 條命令行表的意思!
-c :將目前的 shell 中的所有 history 內(nèi)容全部消除
-a :將目前新增的 history 命令新增入 histfiles 中,若沒(méi)有加 histfiles ,
則默認(rèn)寫(xiě)入 ~/.bash_history
-r :將 histfiles 的內(nèi)容讀到目前這個(gè) shell 的 history 記憶中;
-w :將目前的 history 記憶內(nèi)容寫(xiě)入 histfiles 中!
例1,列出目前內(nèi)存內(nèi)的所有 history 歷史記錄
復(fù)制代碼代碼如下:
[root@jb51 Desktop]#history
# 前面省略
1017 man bash
1018 ll
1019 history
1020 history
列出的信息當(dāng)中,共分兩欄,第一欄為該命令在這個(gè) shell 當(dāng)中的代碼, 另一個(gè)則是命令本身的內(nèi)容!至于會(huì)顯示多少條命令記錄,則與 HISTSIZE 有關(guān)!
例2,列出目前最近的 3 條數(shù)據(jù)
復(fù)制代碼代碼如下:
[root@jb51 Desktop]#history 3
1019 history
1020 history
1021 history 3
例3,立刻將目前的數(shù)據(jù)寫(xiě)入 histfile 當(dāng)中
復(fù)制代碼代碼如下:
[root@jb51 Desktop]#history -w
# 在默認(rèn)的情況下,會(huì)將歷史紀(jì)錄寫(xiě)入 ~/.bash_history 當(dāng)中!
[root@jb51 Desktop]#echo $HISTSIZE
1000
四、歷史使用的竅門(mén)
1、!的使用
⑴!!重復(fù)前一個(gè)命令
⑵!字符 重復(fù)前一個(gè)以“字符”開(kāi)頭的命令
⑶!num 按照history命令輸出中的序號(hào)來(lái)重復(fù)對(duì)應(yīng)命令
⑷!?abc 重復(fù)前一個(gè)包含abc的命令
⑸!-n 重復(fù)n個(gè)命令之前的那個(gè)命令
2、按鍵組合
⑴使用up和down鍵來(lái)上下瀏覽之前執(zhí)行的命令
⑵鍵入ctr+r來(lái)在命令歷史中搜索命令
復(fù)制代碼代碼如下:
[root@jb51 Desktop]#
(reverse-i-search)`':
(reverse-i-search)`h': cat /etc/shadow
按回車(chē)鍵執(zhí)行該命令
⑶要重新調(diào)用前一個(gè)命令中的參數(shù)
Esc + .(點(diǎn)擊Esc鍵,然后點(diǎn)擊.鍵)
注意:
History保存在每個(gè)用戶(hù)自己的歷史記錄中,位于用戶(hù)的家目錄中。
用戶(hù)登錄后,執(zhí)行命令存放在內(nèi)存中,只有登錄后才能看到。
五、如何保證每次推出登錄時(shí)情況history
在需要的用戶(hù)主目錄下,編輯~/.bash.logout添加一句history -c保存退出就可以了。
linux歷史命令篇三:Linux Shell簡(jiǎn)介——自動(dòng)補(bǔ)齊/命令行的歷史記錄/編輯命令行/可用的 Shell 快捷方式
Unix (及后繼者 Linux)在命令行下面誕生,因此,Unix 中的命令行有許多非常實(shí)用的功能。
一、自動(dòng)補(bǔ)齊;
如何用'cd'(改變目錄,change directory)最快地從您當(dāng)前所在的 home 目錄跳到'/usr/src/redhat/'呢?
cd /u<TAB>sr<TAB>r<TAB>
這稱(chēng)為'命令行自動(dòng)補(bǔ)齊'(automatic command line completion),這在平常應(yīng)用中是不可缺少的。讓我們仔細(xì)看看這個(gè)例子:
cd /u<TAB>
擴(kuò)展成了 cd /usr/ ,很簡(jiǎn)單吧。下面的
cd /u<TAB>sr<TAB>
擴(kuò)展為 cd /usr/src/ 。如果您只敲了cd /us,'/usr'下匹配的('cd /u*/s*')三個(gè)子目錄將列出供您選擇:'/usr/sbin'、'/usr/share'和'/usr/src'。
因此, 鍵可以很方便地用于根據(jù)前幾個(gè)字母,來(lái)查找匹配的文件或子目錄。比如,ls
/usr/bin/zip 將列出所有'/usr/bin'下面,以字符串'zip'開(kāi)頭的文件或子目錄。當(dāng)然,完成這類(lèi)任務(wù)還有更厲害的命令,但這個(gè)方法確實(shí)很管用。
另外,碰到長(zhǎng)文件名時(shí)就顯得特別方便。假設(shè)您要安裝一個(gè)名為
'boomshakalakwhizbang-4.6.4.5-i586.rpm'的 RPM 包,您輸入 rpm -i boom ,如果目錄下沒(méi)有其他文件能夠匹配,那 shell 就會(huì)自動(dòng)幫忙補(bǔ)齊。
cd /usrl
將擴(kuò)展成 cd /usr/src/linux ,并等待繼續(xù)。'/usr/src'中有兩個(gè)匹配的目錄:'/usr/src/linux-[...]'、北大青鳥(niǎo)中關(guān)村軟件園
地址:北京市海淀區(qū)上地信息路甲28號(hào)科實(shí)大廈B座3層(B305)
'/usr/src/linux'。如何告訴 shell 您想要后面的那個(gè)呢?只要跟一個(gè)斜線(/ ,slash),就可以選擇后面的那個(gè)了。
假如您不確定是'/usr/src/linux/Documentation'還是'/usr/src/linux/documentation'。而您知道,Linux 是區(qū)分大小寫(xiě)的。如果已經(jīng)仔細(xì)讀過(guò)前面部分的話,您想到可以用: cd /usrl/d
擴(kuò)展成了'/usr/src/linux/drivers/',因此應(yīng)該是'Documentation'(大寫(xiě)的'D')。
這種補(bǔ)齊對(duì)命令也有效:
[tom@belbo tom]$ gre<TAB>
grecord grefer grep
[tom@belbo tom]$ gre
在這里 shell 將列出所有以字符串'gre'開(kāi)頭的已知命令。
二、命令行的歷史記錄
通過(guò)按向上方向鍵,您可以向后遍歷近來(lái)在該控制臺(tái)下輸入的命令。用向下方向鍵可以向前遍歷。與 SHIFT 鍵連用的話,您還可以遍歷以往在該控制臺(tái)中的輸出。您也可以編輯舊的命令,然后再運(yùn)行。
按 后,shell 就進(jìn)入"reverse-i(ncremental)-search"(向后增量搜索)模式。現(xiàn)在輸入您要找的命令的首字母:
(reverse-i-search)`':. 敲入 'i'可能會(huì)變成:
(reverse-i-search)`i': isdnctrl hangup ippp0
如果您再按 鍵,上面的命令將再次執(zhí)行。而如果您按了向右、向左方向鍵或 ,上面的命令將回到普通的命令行,這樣您就可以進(jìn)行適當(dāng)編輯。
北大青鳥(niǎo)中關(guān)村軟件園
地址:北京市海淀區(qū)上地信息路甲28號(hào)科實(shí)大廈B座3層(B305)
編輯命令行
通過(guò)光標(biāo)和功能鍵(Home、End 等鍵),您可以瀏覽并編輯命令行,如果您需要,還可以用鍵盤(pán)的快捷方式來(lái)完成一般的編輯:
l <CTRL k>:刪除從光標(biāo)到行尾的部分
l <CTRL u>:刪除從光標(biāo)到行首的部分
l <ALT d>:刪除從光標(biāo)到當(dāng)前單詞結(jié)尾的部分
l <CTRL w>:刪除從光標(biāo)到當(dāng)前單詞開(kāi)頭的部分
l <CTRL a>:將光標(biāo)移到行首
l <CTRL e>:將光標(biāo)移到行尾
l <ALT a>:將光標(biāo)移到當(dāng)前單詞頭部
l <ALT e>:將光標(biāo)移到當(dāng)前單詞尾部
l <CTRL y>:插入最近刪除的單詞
l <!$>:重復(fù)前一個(gè)命令最后的參數(shù)。
例如:您用命令 mkdir peter/pan/documents/tinkerbell 新建了一個(gè)目錄,現(xiàn)在您向用命令'cd'進(jìn)入該目錄,您可以用 cd !$,shell 將把前一個(gè)命令'mkdir'的參數(shù)添加到現(xiàn)在的'cd'后面。 當(dāng)您更深入了解Linux后,將看到這些快捷方式在其他應(yīng)用程序下輸入時(shí),
有時(shí)也有效,比如,在瀏覽器中的輸入框中。三、可用的 Shell 快捷方式
Red Hat Linux 帶有不少快捷方式,其中一部分是 bash 原來(lái)就有的,而還有一些則是為您預(yù)先設(shè)置的(在后面您將看到如何設(shè)置)。
由于 home 目錄是每位用戶(hù)的活動(dòng)中心,許多 Unix 對(duì)此有特殊的快捷方式。
'~'就是您的 home 目錄的簡(jiǎn)寫(xiě)形式。我們假設(shè)您在其他目錄,想把一個(gè)名為'sometext'的文件復(fù)制到您 home 目錄下的 'docs'子目錄中。除了輸入:
cp sometext /home/myusername/docs
北大青鳥(niǎo)中關(guān)村軟件園
地址:北京市海淀區(qū)上地信息路甲28號(hào)科實(shí)大廈B座3層(B305)
您還可以用簡(jiǎn)寫(xiě):
cp sometext ~/docs
理論上,這也可以應(yīng)用在命令'cd'上。無(wú)論當(dāng)前路徑在哪里,cd ~ 將回到您的 home 目錄。其實(shí)還可以簡(jiǎn)化,只要鍵入 cd ,就可以返回 home 目錄了。
Red Hat Linux 為您提供了一些預(yù)先設(shè)置的快捷方式(稱(chēng)為'別名',aliases),比如:
l ll :將執(zhí)行'ls -l -k'(以長(zhǎng)格式列出目錄內(nèi)容,包括一些文件屬性,并以 KB 而不是 byte 為單位顯示文件大。
l ls :將執(zhí)行'ls -F --color=auto'(列出目錄內(nèi)容,加上文件類(lèi)型標(biāo)識(shí),并使用顏色)
北大青鳥(niǎo)中關(guān)村軟件園
地址:北京市海淀區(qū)上地信息路甲28號(hào)科實(shí)大廈B座3層(B305)
相關(guān)熱詞搜索:命令 歷史 linux linux歷史命令記錄 linux查看歷史命令
熱點(diǎn)文章閱讀