在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的功能。
