国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

Linux命令執行過程(新手必讀)

2024-08-27 23:57:11
字體:
來源:轉載
供稿:網友

 前面講過,在 linux 系統中“一切皆文件”,Linux 命令也不例外。那么,當編輯完成 Linux 命令并回車后,系統底層到底發生了什么事情呢?

簡單來說,Linux 命令的執行過程分為如下 4 個步驟。

1) 判斷路徑

判斷用戶是否以絕對路徑或相對路徑的方式輸入命令(如 /bin/ls),如果是的話直接執行。

2) 檢查別名

Linux 系統會檢查用戶輸入的命令是否為“別名命令”。要知道,通過 alias 命令是可以給現有命令自定義別名的,即用一個自定義的命令名稱來替換原本的命令名稱。

例如,我們經常使用的 rm 命令,其實就是 rm -i 這個整體的別名:

[root@localhost ~]# alias rm
alias rm='rm -i'

這使得當使用 rm 命令刪除指定文件時,Linux 系統會要求我們再次確認是否執行刪除操作。例如:

[root@localhost ~]# rm a.txt <-- 假定當前目錄中已經存在 a.txt 文件
rm: remove regular file 'a.txt'? y  <-- 手動輸入 y,即確定刪除
[root@localhost ~]#

這里可以使用 unalias 命令,將 Linux 系統設置的 rm 別名刪除掉,執行命令如下:

[root@localhost ~]# alias rm
alias rm='rm -i'
[root@localhost ~]# unalias rm
[root@localhost ~]# rm a.txt
[root@localhost ~]#  <--直接刪除,不再詢問


注意,這里僅是為了演示 unalisa 的用法,建議讀者刪除 rm 別名之后,再手動添加到系統中,執行如下命令即可再次成功添加:

[root@localhost ~]# alias rm='rm -i'

3) 判斷是內部命令還是外部命令

Linux命令行解釋器(又稱為 shell)會判斷用戶輸入的命令是內部命令還是外部命令。其中,內部命令指的是解釋器內部的命令,會被直接執行;而用戶通常輸入的命令都是外部命令,這些命令交給步驟四繼續處理。

內部命令由 Shell 自帶,會隨著系統啟動,可以直接從內存中讀取;而外部命令僅是在系統中有對應的可執行文件,執行時需要讀取該文件。

判斷一個命令屬于內部命令還是外部命令,可以使用 type 命令實現。例如:

[root@localhost ~]# type pwd
pwd is a shell builtin  <-- pwd是內部命令
[root@localhost ~]# type top
top is /usr/bin/top  <-- top是外部命令

4) 查找外部命令對應的可執行文件

當用戶執行的是外部命令時,系統會在指定的多個路徑中查找該命令的可執行文件,而定義這些路徑的變量,就稱為 PATH 環境變量,其作用就是告訴 Shell 待執行命令的可執行文件可能存放的位置,也就是說,Shell 會在 PATH 變量包含的多個路徑中逐個查找,直到找到為止(如果找不到,Shell 會提供用戶“找不到此命令”)。

PATH 環境變量的改變,會直接影響 Shell 查找 Linux 命令的過程,有關 PATH 環境變量(是什么、如何查看、如何修改等),可閱讀《html" target="_blank" style="border: none; text-decoration-line: none; color: rgb(0, 125, 187);">Linux PATH環境變量》一文做詳細了解。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 罗定市| 辽中县| 霞浦县| 黄大仙区| 分宜县| 德保县| 广州市| 信宜市| 呼伦贝尔市| 新河县| 白山市| 黄浦区| 宁都县| 哈巴河县| 周宁县| 阿尔山市| 大同县| 吴川市| 和田县| 类乌齐县| 于田县| 吐鲁番市| 长葛市| 连山| 香河县| 泗洪县| 古丈县| 百色市| 石阡县| 九龙坡区| 梓潼县| 石棉县| 理塘县| 界首市| 米脂县| 湘乡市| 通海县| 大庆市| 长丰县| 宁阳县| 桂林市|