在學(xué)習(xí) 劉遄老師的書時 遇到一些問題 不是很理解,百度后,寫下這份總結(jié)
------------------------書籍原文---------------------------------------------------
-------------------------------------------------------------------------------------
前文中曾經(jīng)講到,在 Linux 系統(tǒng)中一切都是文件,Linux 命令也不例外。那么,在用
戶執(zhí)行了一條命令之后,Linux 系統(tǒng)中到底發(fā)生了什么事情呢?簡單來說,命令在 Linux 中的
執(zhí)行分為 4 個步驟。
第一步:判斷用戶是否以絕對路徑或相對路徑的方式輸入命令(如/bin/ls),如果是的話
則直接執(zhí)行。
第二步:Linux 系統(tǒng)檢查用戶輸入的命令是否為“別名命令”,即用一個自定義的命令
名稱來替換原本的命令名稱?梢杂 alias 命令來創(chuàng)建一個屬于自己的命令別名linux命令大全,格式為
“alias 別名=命令”。若要取消一個命令別名,則是用 unalias 命令,格式為“unalias 別名”。
我們之前在使用 rm 命令刪除文件時,Linux 系統(tǒng)都會要求我們再確認(rèn)是否執(zhí)行刪除操作linux命令大全,
其實這就是 Linux 系統(tǒng)為了防止用戶誤刪除文件而特意設(shè)置的 rm 別名命令,接下來我們
把它取消掉:
```
[root@linuxprobe ~]# ls
anaconda-ks.cfg Documents initial-setup-ks.cfg Pictures Templates
Desktop Downloads Music Public Videos
[root@linuxprobe ~]# rm anaconda-ks.cfg
rm: remove regular file ‘a(chǎn)naconda-ks.cfg’? y
[root@linuxprobe~]# alias rm
alias rm='rm -i'
[root@linuxprobe ~]# unalias rm
[root@linuxprobe ~]# rm initial-setup-ks.cfg
[root@linuxprobe ~]#
```
第三步:Bash 解釋器判斷用戶輸入的是內(nèi)部命令還是外部命令。內(nèi)部命令是解釋器內(nèi)部
的指令,會被直接執(zhí)行;而用戶在絕大部分時間輸入的是外部命令,這些命令交由步驟 4 繼
續(xù)處理?梢允褂谩皌ype 命令名稱”來判斷用戶輸入的命令是內(nèi)部命令還是外部命令。
第四步:系統(tǒng)在多個路徑中查找用戶輸入的命令文件,而定義這些路徑的變量叫作 PATH,可
以簡單地把它理解成是“解釋器的小助手”,作用是告訴 Bash 解釋器待執(zhí)行的命令可能存放
的位置,然后 Bash 解釋器就會乖乖地在這些位置中逐個查找。PATH 是由多個路徑值組成的
變量,每個路徑值之間用冒號間隔,對這些路徑的增加和刪除操作將影響到 Bash 解釋器對
Linux 命令的查找。
[root@linuxprobe ~]# echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
[root@linuxprobe ~]# PATH=$PATH:/root/bin
[root@linuxprobe ~]# echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/root/bin