1. 程式人生 > >Linux程式設計 10 (shell外部命令與內建命令,alias ,type命令)

Linux程式設計 10 (shell外部命令與內建命令,alias ,type命令)

一.  內部命令

  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命令如下所示:      

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