一. 內部命令 Linux命令有內部命令(內建命令)和外部命令之分,內部命令和外部命令功能基本相同,但也有些細微差別。內部命令不需要使用子進程來執行,它們已經和shell編譯成一體,作為shell工具的組成部分存在。不需要藉助外部程式文件來運行。它們是一些比較簡單的linux系統命令,如exit,h ...
一. 內部命令
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命令如下所示:
總結:這篇介紹的兩種不同類型的命令:內部命令和外部命令。外部命令會創建出一個包含全新環境的子進程,而內部命令則不會。