九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開(kāi)通VIP
history命令_Linux history命令:查看和執(zhí)行歷史命令

列出曾經(jīng)輸入的命令

要減少輸入,首先要知道曾經(jīng)輸入過(guò)什么命令,對(duì)于這個(gè)問(wèn)題,Linux 有很好的解決方案,它就是今天的主角——history。

我們直接輸入 history 命令:
[roc@roclinux ~]$ history    1  cat .bash_history    2  echo "" > .bash_history    3  ls    4  man ls    5  date    6  logout    7  history

看到了什么?是不是曾經(jīng)輸入的命令都列了出來(lái)。但這里有一個(gè)問(wèn)題,雖然命令都列了出來(lái),但沒(méi)有時(shí)間戳呀,也不知道命令是什么時(shí)候執(zhí)行的,這怎么能稱得上是“history”呢?不用擔(dān)心,我們?cè)囋囅旅娴拿睢?pre>#我們?cè)O(shè)置了一個(gè)環(huán)境變量[roc@roclinux ~]$ export HISTTIMEFORMAT='%F %T ' #再來(lái)看history[roc@roclinux ~]$ history 1 2016-04-06 12:15:59 cat .bash_history 2 2016-04-06 12:15:59 echo "" > .bash_history 3 2016-04-06 12:15:59 ls 4 2016-04-06 12:15:59 man ls 5 2016-04-06 12:15:59 date 6 2016-04-06 12:15:59 logout 7 2016-04-06 12:16:16 history 8 2016-04-06 12:18:15 export HISTTIMEFORMAT='%F %T ' 9 2016-04-06 12:18:20 history看看是不是已經(jīng)給命令打上了時(shí)間的烙印了。

雖然時(shí)間戳出現(xiàn)了,但還有兩個(gè)問(wèn)題困擾著我們:
  1. 系統(tǒng)是怎么知道我們?cè)谑裁磿r(shí)間執(zhí)行了哪些命令呢?
  2. 有沒(méi)有發(fā)現(xiàn),輸出內(nèi)容中的前 6 條命令的時(shí)間戳竟然是完全一樣的,都是“2016-04-0612:15:59”,這又是為什么呢?

我們先來(lái)重新登錄一下系統(tǒng),然后輸入下面的命令,一起來(lái)尋找問(wèn)題的答案:
[roc@roclinux ~]$ cat .bash_history cat .bash_historyecho "" > .bash_historylsman lsdatelogout#1459916176history#1459916295export HISTTIMEFORMAT='%F %T '#1459916300history#1459916459logout

看到文件中的“#1459916176”這種格式的字符串了嗎?這些就是命令執(zhí)行的時(shí)間戳,通過(guò)這些標(biāo)記,history 就能正確顯示命令的執(zhí)行時(shí)間了。

為什么前 6 條命令的時(shí)間戳是一樣的呢?這是因?yàn)檫@些命令執(zhí)行時(shí)沒(méi)有開(kāi)啟“時(shí)間戳記錄功能”,在后面需要顯示時(shí)間戳?xí)r,它們只能取距離它們最近的有時(shí)間記錄的那個(gè)時(shí)間點(diǎn)作為它們的時(shí)間戳。這也就是前 6 條命令所顯示的時(shí)間戳都是同一個(gè)時(shí)間點(diǎn)的原因。

重復(fù)上一次的執(zhí)行

平時(shí)大家最常遇到的一個(gè)場(chǎng)景應(yīng)該是“想重復(fù)執(zhí)行上一條命令”,對(duì)于這種情況,我們首先想到的方法就是按“上方向鍵”,但其實(shí)我們有四種方法可以實(shí)現(xiàn)這一效果:
  1. 使用向上方向鍵,并回車執(zhí)行。
  2. 輸入 !!,并回車執(zhí)行。
  3. 輸入 !-1,并回車執(zhí)行。
  4. 輸入 Ctrl+P 組合鍵并回車執(zhí)行。

嘆號(hào)定位法

如果想執(zhí)行以前執(zhí)行過(guò)的某條命令,該怎么辦呢?這也是一種經(jīng)常會(huì)遇到的情況,下面我們就一起來(lái)看看:
[roc@roclinux ~]$ history    7  ls    8  vi test.go    9  ls   10  history   11  export HISTTIMEFORMAT='%F %T'   12  histroy   13  export HISTTIMEFORMAT='%F %T'   14  history   15  export HISTTIMEFORMAT=   16  man grep   17  ls   18  ll   19  history

看到 man grep了嗎?假設(shè)這條命令就是你想執(zhí)行的命令,你可以先記下它前面的標(biāo)號(hào) 16,然后這樣來(lái)執(zhí)行:
[roc@roclinux ~]$ !16Ctrl+R 搜索曾經(jīng)的命令

上面的嘆號(hào)定位法雖然好用,但有個(gè)缺點(diǎn),就是不太方便,這個(gè)方法需要我們先找出命令的編號(hào),然后才能執(zhí)行。下面,我們?cè)贋榇蠹医榻B一種更方便的方法,那就是“搜索定位法”。

搜索定位法,就是通過(guò) Ctrl+R 來(lái)實(shí)現(xiàn)歷史命令關(guān)鍵字的搜索功能,快速查找到要執(zhí)行的命令并執(zhí)行。

下面,同學(xué)們可以嘗試一下,在你們的 Shell 中按一下 Ctrl+R 組合鍵,是不是會(huì)出現(xiàn)下面的提示:
(reverse-i-search)`':

然后輸入一些關(guān)鍵字,比如“man”:
(reverse-i-search)`man': man grep

系統(tǒng)是不是就找到 man grep 這條歷史命令了,如果這條命令正是你想要執(zhí)行的,那么就直接回車,命令就會(huì)立即執(zhí)行了。

注意:如果找到的命令和想執(zhí)行的命令稍微有點(diǎn)不同的話,你可以按一下向左或向右方向鍵來(lái)對(duì)命令進(jìn)行微調(diào),等調(diào)整成你想要執(zhí)行的命令后,再按回車執(zhí)行。

清除所有的命令

安全是計(jì)算機(jī)世界里的頭等大事,出于安全的考慮,我們常常需要清除曾經(jīng)輸入的命令,避免被其他別有用心的人看到。這種情況下,我們就要用 -c 選項(xiàng)來(lái)幫忙了。
[roc@roclinux ~]$ history -c

-c表示 clear,只要一執(zhí)行,那么我們的歷史命令列表瞬間就變得一干二凈了,曾經(jīng)的歷史命令統(tǒng)統(tǒng)不見(jiàn)了,這樣我們就再也不用擔(dān)心信息泄露了。

其實(shí),你想刪除歷史記錄可沒(méi)那么容易,上面的方法其實(shí)只是個(gè)障眼法,它只是讓系統(tǒng)暫時(shí)不顯示歷史命令。當(dāng)你再次重新登錄系統(tǒng)后,以前的歷史就又會(huì)重新出現(xiàn)。

我們?cè)嚵艘幌?,確實(shí)是這樣子的,這到底是怎么一回事呢?

事情的真相是這樣的:history-c 命令刪除的只是 Linux 系統(tǒng)內(nèi)存中的歷史命令,當(dāng) Shell 退出時(shí),就不會(huì)有歷史命令追加到文件 .bash_history 中。但當(dāng)重新登錄到 Shell 時(shí),Shell 便會(huì)加載文件 .bash_history,該文件中存儲(chǔ)著曾經(jīng)輸入的歷史命令,因此,系統(tǒng)的歷史命令就又出現(xiàn)了。

那么如何真正徹徹底底地刪除所有的歷史命令呢?我們可以采用以下方法。
[roc@roclinux ~]$ history -c[roc@roclinux ~]$ history -w

history-w 的作用就是用內(nèi)存中的歷史命令覆蓋 .bash_histroy 文件的內(nèi)容,這樣,即使 Shell 重新加載也加載不到任何命令了,因?yàn)榇藭r(shí) .bash_history 文件中已經(jīng)空空如也了。

history的配置

工欲善其事,必先利其器,科學(xué)地配置 history 命令,可以大大提高我們的工作效率,下面我們就來(lái)看看 history 都有哪些配置項(xiàng)。

(1) 設(shè)置歷史記錄的時(shí)間:
export HISTTIMEFORMAT='%F %T '     # 注意有個(gè)空格, 這樣在顯示時(shí)日期與命令之間會(huì)有空格分隔

(2) 控制歷史命令記錄的總個(gè)數(shù):
export HISTSIZE=1000         # 設(shè)置內(nèi)存中的history命令的個(gè)數(shù)export HISTFILESIZE=1000     # 設(shè)置文件中的history命令的個(gè)數(shù)

(3) 更換歷史命令的存儲(chǔ)位置:
一般情況下,歷史命令會(huì)被存儲(chǔ)在 ~/.bash_history 文件中。如果不想存儲(chǔ)在這個(gè)文件中,而想存儲(chǔ)在其他文件中,那么可以通過(guò)下面的方式來(lái)更改:
export HISTFILE=~/history.log

(4) 還有很多更加個(gè)性化的配置供大家選擇:
export HISTCONTROL=erasedups    # 清除整個(gè)命令歷史中的重復(fù)條目export HISTCONTROL=ignoredups   # 忽略記錄命令歷史中連續(xù)重復(fù)的命令export HISTCONTROL=ignorespace  # 忽略記錄空格開(kāi)始的命令export HISTCONTROL=ignoreboth   # 等價(jià)于ignoredups和ignorespace

尊重重要命令的隱私

試想一下,我們操作 Linux 系統(tǒng),如果把所有的命令都記錄到 .bash_history 中,會(huì)不會(huì)有風(fēng)險(xiǎn)呢?

當(dāng)然有風(fēng)險(xiǎn)啦,如果哪一天我們不幸中招,黑客攻入了我們的系統(tǒng),他只要查看一下 history 就能知道我們的很多秘密,比如一些登錄密碼。為了避免該類事情的發(fā)生,我們希望 history 不要顯示含有隱私信息的歷史命令,只顯示不含有隱私信息的命令。這個(gè)需求太個(gè)性化,但 history 仍然能夠?qū)崿F(xiàn),下面我們就為大家介紹兩種行之有效的解決方案。

第一種靠譜的解決方案:
  • 第1步:設(shè)置 HISTCONTROL 環(huán)境變量:export HISTCONTROL=ignorespace。
  • 第2步:輸入重要命令時(shí),記得在輸入命令前加上空格。
  • 第3步:執(zhí)行 history,可以看到剛輸入的重要命令沒(méi)有出現(xiàn)在 history 中。

通過(guò)設(shè)置 HISTCONTROL=ignorespace,可以讓 history 不記錄你的特殊輸入(命令前加空格),這樣可以在一定程度上有效地保護(hù)我們的系統(tǒng)。

第二種靠譜的解決方案:
  • 第1步:設(shè)置 HISTIGNORE 環(huán)境變量 export HISTIGNORE=*。
  • 第2步:輸入重要命令,比如 mysql-uroot-p123。
  • 第3步:查看你的 history,可以看到剛輸入的 mysql 命令沒(méi)有記錄在 history 中。
  • 第4步:恢復(fù)命令的記錄 export HISTIGNORE=。
  • 第4步后,系統(tǒng)又恢復(fù)正常,輸入的命令又能被正常記錄了。

這個(gè)方法雖然略顯煩瑣,需要你每次在輸入重要命令時(shí)都要先設(shè)置 HISTIGNORE=*,執(zhí)行完命令后再設(shè)置 HISTIGNORE=,但是,這種方法能規(guī)避由于你的粗心大意(忘記命令前加空格)帶來(lái)的巨大安全隱患,確保機(jī)密信息不會(huì)被泄露出去。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
lLinux history命令
Linux中history歷史命令使用方法詳解
設(shè)置linux系統(tǒng)history相關(guān)變量,命令時(shí)間、保存history條數(shù),多session共享history – 酷喃|c(diǎn)oolnull|
linux history配置
增強(qiáng) Bash 的功能
[BASH] 打造自己的 shell 環(huán)境 (2) - Shell Option
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服