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