在学习 刘遄老师的书时 遇到一些问题 不是很理解,百度后,写下这份总结
------------------------书籍原文---------------------------------------------------
-------------------------------------------------------------------------------------
前文中曾经讲到,在 Linux 系统中一切都是文件,Linux 命令也不例外。那么,在用
户执行了一条命令之后,Linux 系统中到底发生了什么事情呢?简单来说,命令在 Linux 中的
执行分为 4 个步骤。
第一步:判断用户是否以绝对路径或相对路径的方式输入命令(如/bin/ls),如果是的话
则直接执行。
第二步:Linux 系统检查用户输入的命令是否为“别名命令”,即用一个自定义的命令
名称来替换原本的命令名称。可以用 alias 命令来创建一个属于自己的命令别名linux命令大全,格式为
“alias 别名=命令”。若要取消一个命令别名,则是用 unalias 命令,格式为“unalias 别名”。
我们之前在使用 rm 命令删除文件时,Linux 系统都会要求我们再确认是否执行删除操作linux命令大全,
其实这就是 Linux 系统为了防止用户误删除文件而特意设置的 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 ‘anaconda-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 解释器判断用户输入的是内部命令还是外部命令。内部命令是解释器内部
的指令,会被直接执行;而用户在绝大部分时间输入的是外部命令,这些命令交由步骤 4 继
续处理。可以使用“type 命令名称”来判断用户输入的命令是内部命令还是外部命令。
第四步:系统在多个路径中查找用户输入的命令文件,而定义这些路径的变量叫作 PATH,可
以简单地把它理解成是“解释器的小助手”,作用是告诉 Bash 解释器待执行的命令可能存放
的位置,然后 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