Linux系統 shell基礎(一)(編輯中)
一、什麽是shell
shell是一個命令解釋器,提供用戶和機器之間的交互。每次我們登錄系統後,出現的界面就是shell,相當於我們在界面輸入命令,shell把我們輸入的內容轉換成系統能夠理解的內容傳遞給系統去執行。shell支持特定的語法,有點像c語言,支持邏輯判斷,if while語句。
這就是基本的shell。
centos7默認的shell是bash,系統中還支持其他類型的shell,比如zsh、ksh。
二、歷史變量(HISTSIZE)介紹及其參數
centos7系統中當前用戶輸入的命令都儲存在用戶的家目錄下,比如root用戶命令就存在/root/.bash_history文件中。
![技術分享圖片](http://i2.51cto.com/images/blog/201801/10/eb897ceb79dfbf0474565c763db81bc2.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
這個文件能儲存的命令的數量由HISTSIZE變量決定。這個變量初始值為1000
![技術分享圖片](http://i2.51cto.com/images/blog/201801/10/d073217ac04f470e7315c3bd753c9267.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
每次退出終端時,你敲過的命令就會保存在/root/.bash_history文件中。
HISTSIZE變量值的設置在/etc/profile中,這個文件中能夠更改很多系統的參數,包括記錄命令的數量,記錄命令的格式等等。
1、修改系統記錄的命令數量
在/etc/profile文件中操作,用vi或者vim打開,定位到46行(順便復習下vim命令,46j)
更改框中數值為你想要的數值,比如說5000
保存退出,用source命令重載下下 系統的profile使改動生效
看下結果,搞定!
2、修改記錄內容,記錄每條命令執行的時間
分兩種情況,一種是僅對當前終端生效,斷開後失效。
HISTTIMEFORMAT="%Y%m%d %H:%M:%S"
![技術分享圖片](http://i2.51cto.com/images/blog/201801/10/8a2543b4898b103662076e54918044c5.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
永久在/root/.bash_history增加這個內容需要更改/etc/profile文件,操作如下:
跟前面一個例子一樣,在/etc/profile文件中操作,用vi或者vim打開,定位到46行(順便復習下vim命令,46j)
在HISTSIZE行下加入“HISTTIMEFORMAT="%Y%m%d %H:%M:%S"”內容
保存退出,用source命令重載下下 系統的profile使改動生效
斷開連接重登下系統,看結果,搞定!
3、永久保存命令的歷史紀錄
只要給當前用戶的家目錄中的/root/.bash_history文件加上+a權限即可,即使你設定了HISTSIZE的大小,他仍然會記錄你輸入的所有命令。
![技術分享圖片](http://i2.51cto.com/images/blog/201801/10/e6ad04cfa8431d454a1cc1b03d62a81f.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
4、執行history記錄中最後一條命令
命令:!!(兩個感嘆號)
5、運行第XX條命令
命令:!X(數字)
6、執行歷史紀錄中最近的一條以條關鍵字開頭的那條歷史命令
比如我要執行最近一條init開頭的命令,輸入!init 他就會執行history記錄中最近的那條。可以看到是init 0.
Linux系統 shell基礎(一)(編輯中)