查看命令为内置命令还是外部命令
? ? ?查看命令為內(nèi)置命令還是外部命令---type
?????? 有木有 ? 有的用戶在用一般用戶身份執(zhí)行ifconfig eth0? 會(huì)出現(xiàn)“-bash: ifconfig :command not found?”的字樣,因?yàn)閕fconfig這個(gè)命令是放置在/sbin目錄下的,你可以通過(guò)echo $PATH 命令查看你當(dāng)前用戶的PATH中并沒(méi)有設(shè)置/sbin目錄,所以無(wú)法執(zhí)行。
??????? 因?yàn)閕fconfig是外部命令,執(zhí)行它時(shí),系統(tǒng)會(huì)依照PATH尋找每個(gè)目錄查詢文件名為ifconfig的可執(zhí)行文件,如果PATH中含有關(guān)于其的可執(zhí)行文件,那么它就會(huì)順利執(zhí)行,相反就會(huì)“-bash:fconfig :command not found?”。
????????為了方便shell的操作,其實(shí)bash內(nèi)置了很多命令,如:cd ,umask, type....,它們都是內(nèi)置在bash中的。那我們?nèi)绾卧趺粗酪粋€(gè)命令是外部命令還是內(nèi)置命令呢?
?????? type的用法架構(gòu):
type [options] command
options:
如果不加任何參數(shù)時(shí),會(huì)顯示command為外部命令還是內(nèi)部命令
-t :當(dāng)加入-t時(shí),其結(jié)果會(huì)出現(xiàn)這些字眼:
?????? file:??? 表示為外部command;
?????? alias: 表示其為命令別名所設(shè)置的別名;
?????? builtin:表示其為bash內(nèi)置command
-p:如果你的command是外部命令時(shí),它才會(huì)顯示完整的文件名;否則? 不顯示任何字符。
-a :會(huì)有PATH變量定義的路徑,將所有的關(guān)于command這個(gè)命令的都列出來(lái),包含alias。
范例一:
#type cd
cd? is a shell builtin????? 《===未加任何參數(shù),顯示的結(jié)果
#type? -t? ls
alias
#type?? -t? cd
builtin
#type -t mkdir
file
#type? -a? ls
ls? is? aliased to `ls? --color ==tty`
ls is /bin/ls
#type? -a? cat
cat is /bin/cat
對(duì)號(hào)入座,參考上面的參數(shù)介紹,再上機(jī)運(yùn)行下相信你對(duì)判斷外部命令還是內(nèi)置命令掌握的就OK了。
?看到最后的人加額外的獎(jiǎng)勵(lì)哦:
記不記得剛你剛看到的那個(gè)用一般用戶可能你沒(méi)法執(zhí)行ifconfig這個(gè)命令,其實(shí)有兩種解決方法了:
1:將ifconfig命令的路徑加到你用戶的PATH中去。
PATH=“$PATH”: /sbin
2:你可以使用絕對(duì)路徑的方法
/bin/ifconfig eth0
好啦,看完就可以休息,休息一會(huì)兒啦!
本文轉(zhuǎn)自 kuchuli 51CTO博客,原文鏈接:http://blog.51cto.com/lgdvsehome/621925,如需轉(zhuǎn)載請(qǐng)自行聯(lián)系原作者
總結(jié)
以上是生活随笔為你收集整理的查看命令为内置命令还是外部命令的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Microsoft Dynamics C
- 下一篇: 流程DEMO-补打卡