1. 程式人生 > >Linux系統 shell基礎(一)(編輯中)

Linux系統 shell基礎(一)(編輯中)

初始 輸入 分享 用戶命令 解釋器 sts ima 理解 操作

shell是操作系統中重要的應用,尤其對linux這種命令行模式的操作系統,shell具有重要的意義。

一、什麽是shell

shell是一個命令解釋器,提供用戶和機器之間的交互。每次我們登錄系統後,出現的界面就是shell,相當於我們在界面輸入命令,shell把我們輸入的內容轉換成系統能夠理解的內容傳遞給系統去執行。shell支持特定的語法,有點像c語言,支持邏輯判斷,if while語句。
技術分享圖片
這就是基本的shell。
centos7默認的shell是bash,系統中還支持其他類型的shell,比如zsh、ksh。

二、歷史變量(HISTSIZE)介紹及其參數

centos7系統中當前用戶輸入的命令都儲存在用戶的家目錄下,比如root用戶命令就存在/root/.bash_history文件中。

技術分享圖片
這個文件能儲存的命令的數量由HISTSIZE變量決定。這個變量初始值為1000
技術分享圖片
每次退出終端時,你敲過的命令就會保存在/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"
技術分享圖片

永久在/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的大小,他仍然會記錄你輸入的所有命令。

命令:chattr +a ~/.bash_history
技術分享圖片

4、執行history記錄中最後一條命令
命令:!!(兩個感嘆號)
技術分享圖片

5、運行第XX條命令
命令:!X(數字)
技術分享圖片

6、執行歷史紀錄中最近的一條以條關鍵字開頭的那條歷史命令
比如我要執行最近一條init開頭的命令,輸入!init 他就會執行history記錄中最近的那條。可以看到是init 0.
技術分享圖片
技術分享圖片

Linux系統 shell基礎(一)(編輯中)