說說Linux shell外部命令與內建命令

大雄45發表於2022-01-21
導讀 有內部 (內建命令)和外部命令之分,內部命令和外部命令功能基本相同,但也有些細微差別。
內部命令

內部命令不需要使用子程式來執行,它們已經和 編譯成一體,作為shell工具的組成部分存在。不需要藉助外部程式檔案來執行。它們是一些比較簡單的 命令,如exit,history,cd,echo等。

要分割槽是外部命令還是內部命令可以使用type 來檢視,如下圖檢視cd是內部還是外部命令:

說說Linux shell外部命令與內建命令說說Linux shell外部命令與內建命令

命令別名

alias 命令也是一個內建命令,允許你為常用的命令和引數建立另一個名稱,從而減少輸入。在系統中已經設定好了一些常用的命令的別名。檢視當前可用的別名使用alias -p如下圖所示:

說說Linux shell外部命令與內建命令說說Linux shell外部命令與內建命令

下面透過alias 命令來建立屬於自己的別名。把ls -li 長列表命令引數改別名為li。

說說Linux shell外部命令與內建命令說說Linux shell外部命令與內建命令

一但定義好了別名就可以隨時在shell中使用,但要注意的是隻有在當前程式中才有效。下面演示在子shell中使用別名無效,只有退出子shell才行。

說說Linux shell外部命令與內建命令說說Linux shell外部命令與內建命令

外部命令

外部命令是存在於bash shell之外的程式,它們不是shell程式的一部分,外部命令程式通常位於/bin, /usr/bin, /sbin, /usr/sbin中。 ps就是一個外部命令,使用type檢視如下所示:

說說Linux shell外部命令與內建命令說說Linux shell外部命令與內建命令

所有外部命令都會被一個子程式來執行。ps的父程式是bash shell PID 2486,如下所示:

說說Linux shell外部命令與內建命令說說Linux shell外部命令與內建命令

使用type的小技巧

當命令是外部命令時,type還會顯示外部命令所在路徑,如下圖,檢視service和ps的路徑:

說說Linux shell外部命令與內建命令說說Linux shell外部命令與內建命令

根據路徑提示,可以找到命令所在目錄,如找service命令如下所示:

說說Linux shell外部命令與內建命令說說Linux shell外部命令與內建命令

總結:這篇介紹的兩種不同型別的命令:內部命令和外部命令。外部命令會建立出一個包含全新環境的子程式,而內部命令則不會。

原文來自:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2853127/,如需轉載,請註明出處,否則將追究法律責任。

相關文章