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