linux(内部、外部、别名、缓存)命令及其优先级

内部命令: 指的是集成于Shell解释器程序(如Bash)内部的一些特殊指令,也成为内建(Built-IN)指令。内部命令 属于Shell的一部分,所以并没有单独对应的系统文件,只要Shell解释器被运行,内部指令也就自动载入内存了,用户可以直接使用。内部命令无需从硬盘中重新读取文件,因此执行效率更高。例:echo 、pwd、cd、help 、hash等。

  • 查看内部命令:如用help命令


    linux(内部、外部、别名、缓存)命令及其优先级_第1张图片
    linux(内部、外部、别名、缓存)命令及其优先级_第2张图片

外部命令:指的是Linux系统中能够完成特定功能的脚本文件或二进制程序,每个外部命令对应了系统中的一个文件,是属于Shell解释器程序之外的命令,所以称为外部命令。Linux系统必须知道外部命令对应的文件位置,才能够由Shell加载并执行。外部命令是在bash之外额外安装的,通常放在/bin:/usr/bin:/sbin:/usr/sbin……等等。例:ls 、 bc、 chvt 、init等。

  • 查看外部命令的路径:echo $PATH


别名命令:Linux系统提供了一个有用的工具叫alias,可以让我们将一些需要频繁使用的但又过于冗长的命令设置一个别名,这样一来,以后只需输入一个简短的别名就可以达到同样的作用。

  • 查看别名命令:alias


    linux(内部、外部、别名、缓存)命令及其优先级_第3张图片
  • 别名的命名 例: alias cdnet='cd /etc/sysconfig/network-scripts/'
    取消别名:unalias cdnet

缓存命令:缓存命令分为内部缓存命令与外部缓存命令。内部缓存命令即为系统每次执行玩一次外部命令都会将其加载到内存中缓存,以便下次调取命令的时候省去去硬盘寻找命令的时间,直接从内存中读取命令执行。外部缓存命令即为每次注销、关机或者重启的时候,系统都会将缓存在内存中的外部命令与执行过的内部命令写入到硬盘的.bash_history文件中,这跟日志文件差不多,记录下来系统的命令使用历史,以便在系统非正常情况下排错。

  • 显示缓存过的命令:hash


    linux(内部、外部、别名、缓存)命令及其优先级_第4张图片

如何判定一个命令是否为内部命令or外部命令?

type:确定命令是否为内部命令或外部命令


linux(内部、外部、别名、缓存)命令及其优先级_第5张图片

它们的优先级

判定优先级需先了解命令:

help:查看内部命令

enable:启、禁用内部命令

hash:缓存执行过的命令

1.以echo为例:它是内部命令又是外部命令



2.
linux(内部、外部、别名、缓存)命令及其优先级_第6张图片

从上面可以看出内部命令优先于外部命令执行

linux(内部、外部、别名、缓存)命令及其优先级_第7张图片

从上面可以看出别名优先于内部命令

linux(内部、外部、别名、缓存)命令及其优先级_第8张图片

最后得出:别名命令>内部命令>缓存命令>外部命令!!

你可能感兴趣的:(linux(内部、外部、别名、缓存)命令及其优先级)