1. 程式人生 > >linux命令分類及優先度

linux命令分類及優先度

shadow shell 所有 同時 簡練 mman color nal 技術

一丶liunx分類
linux命令可大致分為三類 內置命令,外部命令及alias命令(別名)(可通過type comment來查詢是什麽命令)
1 內置命令(builtin),內置命令實際上是shell程序的一部分,包含一些比較簡練的liunx系統命令,由shell程序識別並在shell程序內部完成運作。
技術分享圖片註:此為type查詢的內部命令

    查詢所有激活的內置命令 enable
*   [root@centos7 ~]# enable 
enable .
enable :

enable [
enable cd
... ...*
可以將內置命令禁用,如 enable -n comment (comment代指某一指令,以下皆同

)
技術分享圖片
顯示所有已禁用的內部命令 enable -n
技術分享圖片
若想重新啟用已禁掉的內置命令可 enable comment
技術分享圖片
2 外部命令,外部指令是linux系統中的實用程序部分,由於包含的程序量過大,並不會一開機就被加載入系統內存中,而是在需要時才會被調入內存。(通過shell程序管理外部命令執行的路徑查找、加載存放,並控制命令的執行。)
技術分享圖片註:此為type查詢的外部命令
外部命令分為hash緩存命令和路徑執行,凡是被執行過的命令會被調入緩存,而這個緩存便是hash,hash記錄了你最近所有執行過的外部命令
顯示所有被緩存的命令路徑 hash
技術分享圖片
清空所有的緩存 hash -r
技術分享圖片
按路徑執行又可分為直接輸入相關路徑執行和輸入命令後自動搜索路徑執行,自動搜索路徑的目錄可用echo ¥PATH查看
技術分享圖片
如上圖所示,以冒號為分隔 從左往右搜索,若同一命令在兩個文件夾內存在,則將第一個搜尋到的命令存入hash中並執行。
3 alias,alias命令指的是用戶設置命令的別名,以簡寫命令,提高操作效率。
顯示所有的別名信息 alias
技術分享圖片
設置一個別名 alias 別名=‘command -選項 參數‘
技術分享圖片
刪除一個已設置的別名 unalias 別名
技術分享圖片

二丶優先度
若假設一條命令同時存在於內置命令,外部命令,alias中
技術分享圖片
技術分享圖片
技術分享圖片
直接輸入comment進行測試
技術分享圖片
可得第一個為alias,從別名中刪除該命令後測試
技術分享圖片
第二個為內置命令,將其禁用後再測試
技術分享圖片
技術分享圖片
第三個為hash,將緩存刪除後最後測試
技術分享圖片
由此可知根據同一命令在系統中輸出的優先度顯示分別為alias>內置命令>外部命令(hash>path)

linux命令分類及優先度