一、命令分類
Linux命令分為兩類,具體為內(nèi)部命令和外部命令
內(nèi)部命令:
指shell內(nèi)部集成的命令,此類命令無需人為安裝,開機后自動運行在內(nèi)存中,命令help查看所有內(nèi)部命令的詳情,如cd、type、echo、time、true等。
外部命令:
指通過外部介質(zhì)安裝的命令工具包,如通過yum、rpm等方式安裝,具體安裝路徑在$PATH下。
命令查看:
type查看命令分類,內(nèi)部命令顯示 shell相關(guān)信息,外部命令則顯示$PATH路徑,如下圖:
time屬于內(nèi)部命令,date屬于外部命令。
二、命令執(zhí)行順序
在命令執(zhí)行過程中,命令形態(tài)主要分為4類:alias別名命令、內(nèi)部命令、hash緩存命令和外部命令。
實例:echo即是內(nèi)部命令又是外部命令linux命令,以echo為例實驗證明其執(zhí)行順序
1. 將/bin/echo 復制到/usr/local/bin/下,用which -a查看echo的路徑($PATH中/usr/local/bin路徑優(yōu)先于/bin,則echo優(yōu)先使用/usr/local/bin/下的echo)
2.查看內(nèi)部echo,并關(guān)閉內(nèi)部命令的echo,使用echo命令在hash中形成記錄,并查看記錄
3. 刪除/usr/local/bin下的echo,hash中任然存echo的路徑/usr/local/binlinux命令,再次使用echo “welcome to xi'an”
結(jié)論:執(zhí)行hash中的命令優(yōu)先$PATH中的命令
4. 開啟內(nèi)部命令echo,再次執(zhí)行echo “welcome to xi'an”
結(jié)論:說明內(nèi)部命令優(yōu)先于hash緩存命令和外部命令
5. 定義別名alias echo=“hostname”,如果echo 輸出是hostname的內(nèi)容時,則表明alias比內(nèi)部命令優(yōu)先
總結(jié):命令執(zhí)行順序為alias——內(nèi)部命令——hash緩存——外部命令
三、命令分類及查找基本命令
1. type command 查看是否是內(nèi)部命令
2. which -a| --skip-alias command 查看所有包含command的路徑|不查看別名的路徑
3. enable -n command 關(guān)閉內(nèi)部命令
4. hash -l 顯示hash緩存 -d 清楚具體緩存命令路徑 -r 刪除所有命令路徑
5. alias 定義別名 ualias取消別名
本文永久更新鏈接地址: