簡單點理解,就是系統跟計算機硬件交互時使用的中間介質,它只是系統的一個工具。實際上,在shell和計算機硬件之間還有一層東西那就是系統內核了。打個比方,若是把計算機硬件比做一我的的軀體,而系統內核則是人的大腦,至於shell,把它比做人的五官彷佛更加貼切些。回到計算機上來,用戶直接面對的不是計算機硬件而是shell,用戶把指令告訴shell,而後shell再傳輸給系統內核,接着內核再去支配計算機硬件去執行各類操做。shell
Shell是一個命令解釋器,提供用戶和機器之間的交互,支持特定的語法,好比邏輯判斷、循環。每一個用戶均可以有本身特定的shell,CentOS7的默認shell爲bash(Bourne Agin Shell),常見的還有zsh(power-shell)、ksh(Korn shell)。bash
語法: history [-c]
-c:=clear 清除內存中的命令,不能刪除配置文件中的歷史命令工具
顯示使用過的命令歷史,默認保存1000條使用過的命令(注:此令須要是在正常關機操做狀況下的處1000條命令)!spa
該變量決定命令歷史保存的命令的數目。內存
搜索關鍵字"HIST"找到‘HISTSIZE=1000’,在此更改其數字,保存退出,而後執行命令‘source /etc/profile’刷新該配置文件纔會生效。io
直接爲‘HISTTIMEFORMAT’賦值便可,不過此時該格式只適用於當前終端。若是要其使用於全部用戶,則須要將其寫入history配置文件並刷新後生效。zsh
即,使命令歷史記錄只能寫入不能被刪除!變量
使用文件特殊權限,爲‘.bash_history’文件配置‘a’權限(只可追加,不可刪除),限於正常關機操做。配置
‘!’的用法:‘!n’(n表明數字),表示運行命令歷史中的第n條命令;‘!word’,表示運行上一次以該word開頭的命令。!! 連續兩個 `!', 表示執行上一條指令。file
eg:
按一次tab能夠補全一個命令或參數(須要安裝包bash-completion,並重啓系統);按兩次tab能夠顯示以某字母開頭的全部命令或文件名。
語法: alias [命令別名]=[具體命令] 設置別名
取消別名:unalias [命令別名]
通配符‘*’表明零個或多個任意字符
通配符‘?’表明一個任意字符
中括號‘[]’,「ls [0-9].txt」表示0-9區間內的任意.txt文件
花括號‘{}’,「ls {1,2,3}.txt」表示括號內任意.txt文件
輸入重定向用於改變命令的輸入,輸出重定向用於改變命令的輸出。
「>,>>,<,2>,2>>」
‘>’:輸出重定向
‘>>’:追加劇定向
‘2>’:錯誤重定向
‘<’:輸入重定向:右邊輸入到左邊
說明: 使用ls命令查看 {1,2}.txt aaaa.txt,1.txt和2.txt文件存在,可使用ls查看,aaaa.txt不存在,使用ls查看會報錯,‘> 1.txt 2> 3.txt’意思是將正確信息保存到1.txt,將錯誤信息保存到3.txt。
說明: 使用ls命令查看 {1,2}.txt aaaa.txt,1.txt和2.txt文件存在,可使用ls查看,aaaa.txt不存在,使用ls查看會報錯,&>’意思是將正確和錯誤信息保存到a.txt。