日常总结-DAY2

日常总结-DAY2

内部命令与外部命令

  Linux命令中分为内部命令和外部命令,其中内部命令在系统启动中加载到内存中,可以供shell解释器直接使用,内部命令通常都是功能简单的命令。而外部命令通常保存在系统的磁盘中,只有当使用外部命令时才会去磁盘中加载外部命令。

  通常,使用type命令来判断一个命令是属于内部命令还是外部命令,基本命令格式如下:

  type    [command]

  当提示“XXX is a shell builtin”时,说明此命令为一个内建命令。

[root@centos7 ~]#type echo
echo is a shell builtin

  当提示“XXX is /usr/bin/who”时,说明此命令为一个内建命令,其中/usr/bin/who是命令所在文件夹位置。

[root@centos7 ~]#type who
who is /usr/bin/who

外部命令执行流程

  外部命令执行后,会将命令所在文件位置存放至缓存中,当再次使用缓存过的外部命令时,可以通过内存直接找到命令位置运行,以重复提高使用同一外部命令的效率。可以使用:
【hash】 命令查看当前缓存的外部命令。

[root@centos7 ~]#hash

hits	command
   2	/usr/bin/stat
   2	/usr/bin/man
   3	/usr/bin/ls
   1	/usr/bin/clear
  • 注:若外部命令的文件位置被移动,由于缓存中的命令的文件位置不存在,则运行此外部命令时会报错

可以通过 hash -r : 清除所有hash缓存

hash -r [command]:清除指定命令的hash缓存

所有命令的执行顺序

优先级从左往右从高到低为:

  别名--->内部命令--->缓存中的外部命令--->外部命令

猜你喜欢

转载自www.cnblogs.com/thomascyq/p/11574196.html
今日推荐