linux命令的別名及命令的執行


查看命令是否是別名

linux命令往往有默認的選項和參數,而這些默認的選項或者參數往往是通過別名來實現的。

如rm命令,就是rm -i的別名。

如何查看某條命令是不是別名呢,可以通過alias或者type來查看

alias 命令
type 命令

如下

[root@localhost vagrant]# alias rm
alias rm='rm -i'
[root@localhost vagrant]# type rm
rm is aliased to `rm -i'
[root@localhost vagrant]# 

 

 

創建別名

alias 別名='命令 選項' 
alias rm='rm -i'

刪除別名

unalias 別名
unalias rm

 

[root@localhost vagrant]# alias rm   //查看rm是否是別名
alias rm='rm -i'
[root@localhost vagrant]# type rm   //查看rm是否是別名
rm is aliased to `rm -i'
[root@localhost vagrant]# unalias rm  //刪除別名rm
[root@localhost vagrant]# alias rm   //再查看rm是不是別名
bash: alias: rm: not found    //別名rm不存在
[root@localhost vagrant]# type rm  
rm is /bin/rm
[root@localhost vagrant]# alias rm='rm -i'  //創建別名
[root@localhost vagrant]# alias rm   //再查看rm是不是別名
alias rm='rm -i'
[root@localhost vagrant]# 

 

結論: 命令的別名和命令本身可以重名,當有別名時,首先會執行別名而不是命令本身。

           命令的默認選項往往是通過創建同名別名來實現的,通過查看別名便可知道命令的默認選項

 

命令的執行

我們執行某條命令時,有時會輸入完整的命令路徑,而有時只是簡單的輸入命令

完整的命令路徑其實就是命令的執行文件,這種情況下會直接執行文件

而簡單的輸入命令則有兩種情況,如果是內部命令,則直接直接從內存中讀取並執行,

如果不是內部命令,及外部命名,則會在PATH 變量包含的多個路徑中逐個查找,直到找到並執行,找不到則提示該命令不存在。

 

內部命令和外部命令

內部命令由 Shell 自帶,會隨着系統啟動,可以直接從內存中讀取;內部命令指的是解釋器內部的命令,會被直接執行;

而外部命令僅是在系統中有對應的可執行文件,執行時需要讀取該文件。

上面說的直接輸入可執行文件的路徑和在PATH變量的路徑中查找命令的可執行文件都屬於外部命令

判斷內部命令和外部命令

type 命令
[root@localhost vagrant]# type pwd   //內部命令
pwd is a shell builtin
[root@localhost vagrant]# type top  //外部命令
top is /bin/top

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM