首頁 > 軟體

Linux shell外部命令與內建命令,alias ,type命令

2020-06-16 16:45:44

一.  內部命令

  Linux命令有內部命令(內建命令)和外部命令之分,內部命令和外部命令功能基本相同,但也有些細微差別。內部命令不需要使用子進程來執行,它們已經和shell編譯成一體,作為shell工具的組成部分存在。不需要借助外部程式檔案來執行。它們是一些比較簡單的linux系統命令,如exit,history,cd,echo等。

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

  1.1命令別名

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

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

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

二.外部命令

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

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

  2.1 使用type的小技巧
    當命令是外部命令時,type還會顯示外部命令所在路徑,如下圖,檢視service和ps的路徑:
    
    根據路徑提示,可以找到命令所在目錄,如找service命令如下所示:
    

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


IT145.com E-mail:sddin#qq.com