在Linux系統中預設的Shell就是Bourne-AgainShell
(簡稱Bash
),所以我們今天來掌握Bash
的一些基本用法。
1、history歷史命令
(1)歷史命令的檢視
在終端執行history
命令,就會顯示出在系統當中已經執行過的命令。
[root@localhost ~] # history [選項] [歷史命令儲存檔案]
選項:
-c
:清空歷史命令。-w
:把快取中的歷史命令寫入歷史命令儲存檔案。如果不手工指定歷史命令儲存檔案,則放入預設的歷史命令儲存檔案~/.bash_history
中。
(2)history
用法說明
1)直接執行history
命令,檢視歷史命令。
2)-w
選項的用法。
我們使用history
命令檢視的歷史命令,和~/.bash_history
檔案中儲存的歷史命令是不同的。那是因為當前登陸的系統中,所操作的命令並沒有直接寫入~/.bash_history
檔案,而是儲存在快取當中的。需要等當前使用者登出之後,快取中的命令才會寫入~/.bash_history
檔案。如果我們需要把記憶體中的命令直接寫入~/.bash_history
檔案,而不等使用者登出時再寫入,就需要使用-w
選項了。
命令如下:把快取中的歷史命令直接寫入~/.bash_history
檔案。
[root@localhost ~] # history -w
這時再去查詢~/.bash_history
檔案,歷史命令檔案中的內容,就和history
命令查詢的一致了。
注意:歷史命令最終是要寫入到檔案中的,所以說歷史命令是永久生效的,重啟也不會消失的。
3)~/.bash_history
檔案是在使用者的家目錄下,說明~/.bash_history
檔案只儲存當前使用者執行過的命令。也就是root
使用者的命令歷史,儲存在root
目錄下的.bash_history
檔案中,user1
使用者的命令歷史,儲存在user1
目錄下的.bash_history
檔案中。
2、設定命令歷史記錄的條數
我們Linux系統中,預設記錄的歷史命令條數是1000條。
這個屬性的配置內容,是在/etc/profile
檔案中。
執行:
[root@localhost ~] # vim /etc/profile
檔案中的HISTSIZE
屬性,如下圖:
說明:
- 我們之前說過
/etc/profile
檔案的,在說umask
值的時候。/etc/profile
檔案裡存放的是系統的環境變數,對所有使用者都有效果,要對其更改的話,必須要在root
使用者許可權下才能進行。- 我們可以使用
env
命令來檢視系統當前所有的環境變數,set
命令可以檢視所有本地定義的Shell變數。- 我們在
/etc/profile
裡面修改的話,是對所有使用者起作用,所以一般所有使用者都要使用的環境變數,就應該放在該檔案裡面,這樣系統執行之後該檔案裡面的環境變數都會生效。
這個歷史命令記錄條數一般建議多設定些。因為這個歷史記錄是存在硬碟上的,不會被載入到記憶體中,多些歷史命令的記錄,有很多時候可以方便我們操作。
3、清空歷史命令
如果需要清空歷史命令,只需要執行:
[root@localhost ~] # history -c
執行上邊命令,會把當前系統中記憶體緩衝區中的歷史命令,和當前使用者的~/.bash_history
檔案中的歷史命令,一起刪除。
一般我們不建議使用該命令,因為使用歷史命令是我們在使用Linux系統時常用的操作,方便操作的同時,還可以判斷你之前對系統做過什麼操作。只有在極特殊的情況下,才執行清空歷史命令的操作,如給MySQL設定完密碼之後,建議清空歷史命令。因為MySQL設定密碼的命令,是明文顯示的。
4、歷史命令的呼叫
如果想要使用原先的歷史命令有以下幾種方法:
- 使用
上、下箭頭
呼叫 以前的歷史命令。 - 使用
!n
重複執行第n條歷史命令。
前邊的數字就是n
。 - 使用
!!
重複執行上一條命令。
(還不如用上箭頭直觀一點。) - 使用
!字串
重複執行最後一條,以該字串開頭的命令。
(數字越大,越靠後。) - 使用
!$
重複上一條命令的最後一個引數。
只能列印引數,一般不能夠獨立執行,Shell指令碼中會用到。
5、命令與檔案的補全
Tab
鍵可以對命令和檔名進行補全。
這裡就是告訴你,Tab
鍵補全是Shell的功能。