linux的内建命令和外部命令

摘要:

   Linux命令有内部命令(内建命令)和外部命令之分,内部命令和外部命令功能基本相同,但是其工作机制相差很大。本文就内建命令和外部命令做一下介绍。

一、内部命令(内建命令)

   内部命令,实际上是shell程序的一部分,其中包含的是一些比较简单的linux系统命令,这些命令由shell程序识别并在shell程序内部完成运行,通常在linux系统加载运行时shell就被加载并驻留在系统内存中。内部命令是写在bashy源码里面的,其执行速度比外部命令快,因为解析内部命令shell不需要创建子进程。比如:exit,history,cd,echo等。

   所以在内部命令被执行的时候是先去内存里面查找,然后再被执行。

二、外部命令

   外部命令是linux系统中的实用程序部分,因为实用程序的功能通常都比较强大,所以其包含的程序量也会很大,因此系统加载时并不随系统一起被加载到内存中。只有在需要时才被系统调用到内存。通常外部命令的实体并不包含在shell中,但是其命令执行过程是由shell程序控制的。shell程序管理外部命令执行的路径查找、加载存放,并控制命令的执行。外部命令是在bash之外额外安装的,通常放在/bin,/usr/bin,/sbin,/usr/sbin……等等。可通过“echo $PATH”命令查看外部命令的存储路径,比如:ls、vi等。

三、内部命令和外部命令的其他相关介绍

  1)如何区分二者

   判断一个命令是内部命令还是外部命令的方法是:type command

 

[root@localhoast ~]# type pwd
pwd is a shell builtin
[root@localhoast ~]# type vim
vim is /usr/bin/vi

   显示的builtin就表示该命令是内部(内建命令),显示出执行路径的命令就是外部命令。

 2)二者的执行过程

   内部命令被用户执行时系统会从内存中去调用,调用的速率快。外部命令被执行的时候,系统将会读取环境变量文件.bash_profile、/etc/profile去找PATH路径。

然后在提一下命令的调用,有些外部命令被使用过后,会存在在hash表中,当你再次输入该命令它的调用会是这样一个过程。

hash——>内置命令——>PATH   命令的调用其实应该是这样一个过程。hash的优先级最高,然后是内部命令,最后是外部命令。

[root@localhost ~]# pwd             
/root
[root@localhost ~]# ls
anaconda-ks.cfg  install.log  install.log.syslog
[root@localhost ~]# hash -l  //显示hash表
builtin hash -p /bin/cat cat
builtin hash -p /bin/ls ls

从hash表中可以看出,hash表不存放系统内置命令。

原创文章,作者:hanlln1,如若转载,请注明出处:http://www.178linux.com/52643

(4)
hanlln1hanlln1
上一篇 2016-10-18 16:36
下一篇 2016-10-18 16:44

相关推荐

  • linux基础知识

    基本命令,man自助使用手册,linux文件目录。

    Linux干货 2017-12-11
  • RPM软件包管理器及前端工具yum

    目前在linux系统之上软件安装方式最常见的有两种,分别是: dpkg:这个机制最早是由Debian Linux社区所开发出来的,透过dpkg的机制,Debian提供的软件就能够简单的安装起来,同时还能提供安装后的软件资讯,实在非常不错。只要是衍生于Debian的其他linux发行版,大多使用dpkg这个机制来管理软件的,包括B2D、Ubuntu等等。 RP…

    Linux干货 2016-08-20
  • 网络班26期-第1周课程作业

    1、描述计算机的组成及其功能? (1)CPU:计算机的大脑,计算机的运算,命令的控制功能,寄存器及缓存都由CPU功能承担; (2)内存:RAM,随机访问存储器,计算机的另一个核心功能,系统指令存放及运行的基础。 (3)输入设备:人工给计算机下指令的设备,例如鼠标,键盘等; (4)输出设备:计算机输出人工输入的执行命令的结果;例如,音响,显示屏等; …

    Linux干货 2017-01-10
  • Linux磁盘管理基础

    Linux磁盘管理基础 硬盘结构 文件系统与MBR、GTP 磁盘管理三步骤:分区、格式化、挂载 mount 硬盘结构 硬盘的基本组成材质是盘片,不同容量硬盘的盘片数不等。每个盘片有两面,都可记录信息。盘片表面上以盘片中心为圆心,不同半径的同心圆称为磁道,不同盘片相同半径的磁道所组成的圆柱称为柱面,每个磁道被分成许多扇形的区域,每个区域叫一个扇区,每个扇区可存…

    Linux干货 2016-09-01
  • linux 关于 AWK 解析

    关于awk awk是一个报告生成器,他拥有强大的文本格式化的能力。 其实我么可以利用awk命令将一些文本整理成我们想要的样子,比如把一些文本整理成“表”的样子。然后打印出来,至于格式化能力会举例出来,自然会明白。 awk是有Alfred Aho,Peter Weinberger好人Brian Kernighan 这三人创造的,awk由这三个人的姓氏的首个字母…

    2017-09-09
  • 马哥教育网络班22期+第四周课程练习

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@localhost ~]# cp -rf /etc/skel/ /home/tuser1 [root@localhost ~]# chmod&…

    Linux干货 2016-09-19