偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

揭開Linux命令Bash history的神秘面紗

系統(tǒng) Linux
本文將揭開Bash history的神秘面紗,使之成為一個更友好的系統(tǒng)管理工具。

 您可能知道如何使用上下箭頭鍵滾動瀏覽Bash歷史記錄,但是你是否知道Bash history不僅僅是重復命令,而且還有很多其他的功能,或者還有更多?history命令是一個晦澀難懂的命令,但至少它是強大且方便的。本文將揭開Bash history的神秘面紗,使之成為一個更友好的系統(tǒng)管理工具。

背景

在Bash中,命令歷史記錄存儲在主目錄的(.bash_history)文件中。前綴點(.)表示該文件是隱藏文件。要查看它,請發(fā)出ls-a命令。 

  1. linuxmi@linuxmi:~$ ls -a 

你現(xiàn)在可以像對待其他文本文件一樣對.bash_history文件進行操作。

你需要了解的三個相關(guān)環(huán)境變量是HISTFILE,HISTFILESIZE和HISTSIZE。

HISTFILE—/home/linuxmi/.bash_history

HISTFILESIZE—2000

HISTSIZE—1000

HISTFILE變量保存Bash歷史記錄文件的名稱和位置。HISTFILESIZE是.bash_history文件中可以存儲多少個命令。HISTSIZE是緩存的命令數(shù)。一旦達到1000條命令,最舊的命令將被丟棄,而新的命令將被保存。 

  1. linuxmi@linuxmi:~$ echo $HISTSIZE  
  2. 1000  
  3. linuxmi@linuxmi:~$ echo $HISTFILESIZE  
  4. 2000  
  5. linuxmi@linuxmi:~$ echo $HISTFILE  
  6. /home/linuxmi/.bash_history 

每個用戶(包括root用戶)都默認分配了這些變量和大小。如果要更改這些變量,請在主目錄中編輯.bashrc文件。例如,如果要將大小變量更改為800個命令,請編輯.bashrc文件并使用以下條目:

export HISTSIZE=800

export HISTFILESIZE=800

要使用新值而不用注銷及重新登錄,執(zhí)行.bashrc文件命令即可。 

  1. linuxmi@linuxmi:~$ . ~/.bashrc 

現(xiàn)在,你的值現(xiàn)在對于當前shell和任何子shell都是激活的。

如果你不想讓你的歷史記錄保留重復的命令,你可以通過添加以下內(nèi)容到你的.bashrc文件來指示你的歷史記錄忽略重復的條目:

一個問題

Bash history的問題在于,直到您注銷,它才被寫入.bash_history文件。這使得不可能使用history命令進行腳本編寫。例如,假設(shè)您正在班級教學Linux,并且想檢查學生是否已運行特定命令以將其文件復制到一個掛載的外部驅(qū)動器。如果學生保持登錄狀態(tài),您將無法確定是否已執(zhí)行復制,因為您的腳本使用其歷史文件(/home/linuxmi/.bash_history)來檢查命令是否已經(jīng)運行。

解決方案

要變通解決此功能,請為history命令使用write選項。作為課堂教學的一部分,即使學生沒有注銷,您也要讓他們運行該命令以保存其歷史記錄。 

  1. linuxmi@linuxmi:~/www.linuxmi.com$ history -w 

現(xiàn)在開始所有當前會話命令歷史記錄都將寫入HISTFILE?,F(xiàn)在,您的檢查腳本可以輕松找到命令是否已運行。您還必須相信學生會運行歷史記錄命令。

另一個問題

由于HISTSIZE和HISTFILESIZE相對較大(1000個命令或者2000個命令),因此學生有可能在之前運行過該命令。您可以將export HISTCONTROL=ignoredups條目添加到他們的.bashrc中,但是如果學生幾天前運行了類似的命令,這將沒有用,因為文件將只顯示一個命令。

這個問題的解決方案

要變通解決此問題,你應該在登錄后清除學生的歷史記錄。再次編輯.bashrc文件,并向其中添加以下命令。

history -c

此命令在每次登錄時清除其歷史記錄,并消除了選擇以前運行的命令的問題。您不必擔心會從以前的會話中拾取命令,因為如果您在/etc/profile中設(shè)置了空閑時間限制,則系統(tǒng)會在指定的時間段后注銷空閑用戶。編輯/etc/profile文件并添加以下條目。

TMOUT=180

TMOUT變量使用幾秒鐘的空閑時間。在這種情況下,180秒等于3分鐘。您可以將此值設(shè)置為任何秒數(shù)。該值將在所有用戶的下次登錄時生效。要設(shè)置單個超時值,請使用.bashrc,但要知道到用戶可以隨意更改此文件。

總結(jié)

Bash history是一個方便的工具,但是如果您不熟悉它的選項和怪癖,可能會令人沮喪。history中還有更多可用選項。你可以查看手冊頁以獲取更多信息。請記住,你輸入的每一個命令都是正在形成的歷史記錄。 

 

責任編輯:龐桂玉 來源: Linux公社
相關(guān)推薦

2015-08-20 13:43:17

NFV網(wǎng)絡功能虛擬化

2024-12-12 09:40:27

Strace命令監(jiān)控

2010-05-17 09:13:35

2014-03-12 11:11:39

Storage vMo虛擬機

2021-06-07 08:18:12

云計算云端阿里云

2010-05-26 19:12:41

SVN沖突

2009-09-15 15:34:33

Google Fast

2023-11-02 09:55:40

2016-04-06 09:27:10

runtime解密學習

2018-03-01 09:33:05

軟件定義存儲

2009-06-01 09:04:44

Google WaveWeb

2021-07-28 21:49:01

JVM對象內(nèi)存

2021-09-17 15:54:41

深度學習機器學習人工智能

2020-04-14 10:44:01

區(qū)塊鏈滲透測試比特幣

2021-08-11 09:01:48

智能指針Box

2010-06-17 10:53:25

桌面虛擬化

2011-08-02 08:59:53

2017-10-16 05:56:00

2024-02-14 09:00:00

機器學習索引ChatGPT

2025-01-07 15:07:13

點贊
收藏

51CTO技術(shù)棧公眾號