【什麼是shell】
簡單點理解,就是系統跟計算機硬件交互時使用的中間介質,它只是系統的一個工具。實際上,在shell和計算機硬件之間還有一層東西那就是系統內核了。打個比方,如果把計算機硬件比作一個人的軀體,而系統內核則是人的大腦,至於shell,把它比作人的五官似乎更加貼切些。回到計算機上來,用戶直接面對的不是計算機硬件而是shell,用戶把指令告訴shell,然後shell再傳輸給系統內核,接着內核再去支配計算機硬件去執行各種操作。
1)記錄命令歷史
我們敲過的命令,linux是會有記錄的,預設可以記錄1000條歷史命令。這些命令保存在用戶的家目錄中的.bash_history文件中。有一點需要你知道的是,只有當用戶正常退出當前shell時,在當前shell中運行的命令纔會保存至.bash_history文件中。
與命令歷史有關的有一個有意思的字符那就是”!”了。常用的有這麼幾個應用:(1)!!(連續兩個”!”),表示執行上一條指令;(2)!n(這裏的n是數字),表示執行命令歷史中第n條指令,例如”!100”表示執行命令歷史中第100個命令;(3)!字符串(字符串大於等於1),例如!ta,表示執行命令歷史中最近一次以ta爲開頭的指令。
按tab鍵,它可以幫你補全一個指令,也可以幫你補全一個路徑或者一個文件名。連續按兩次tab鍵,系統則會把所有的指令或者文件名都列出來。
3)別名
前面也出現過alias的介紹,這個就是bash所特有的功能之一了。我們可以通過alias把一個常用的並且很長的指令別名一個簡潔易記的指令。如果不想用了,還可以用unalias解除別名功能。直接敲alias會看到目前系統預設的alias:
alias語法很簡單,alias [命令別名]=[’具體的命令’]