Linux学习之内建命令和外部命令详解
来源:互联网 发布:淘宝运营指数指是什么 编辑:程序博客网 时间:2024/06/08 00:43
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 pwdpwd is a shell builtin
[root@localhoast ~]# type vimvim 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表不存放系统内置命令。
文章来源:运维部落
- Linux学习之内建命令和外部命令详解
- Linux内建命令和外部命令
- linux的内建命令和外部命令
- Linux内建命令和外部命令(整理)
- Linux中内部命令和外部命令
- Linux中内部命令和外部命令
- shell内建命令和外部命令
- 内部命令和外部命令
- Linux 命令学习之apt命令详解
- Linux 命令学习之dpkg命令详解
- Linux 命令学习之apt命令详解
- 区分Linux内建命令和外部命令——pwd
- 区分Linux内建命令和外部命令——pwd
- 区分Linux内建命令和外部命令——pwd
- Linux ipcs 命令和ipcrm命令详解
- Linux基础命令详解和命令大全
- Linux ipcs 命令和ipcrm命令详解
- linux 学习理解 & 命令详解
- js判断手机网站,手机浏览器检测,并跳转到手机网站代码
- Intel汇编程序设计-高级过程(上)
- iOS高级编程之Blocks的应用场景
- 通过构造方法或者工厂方法创建实例的区别
- apache ab压力测试工具的参数详解
- Linux学习之内建命令和外部命令详解
- 机器学习相关领域
- 用数据库实现通讯录(删除和搜索联系人)
- keyshot实时3D渲染软件(32位) 最新破解版下载
- 图像中直线的检测——Hough变换原理
- mongdb学习
- maven常见问题总结
- ffmpeg 编译Android支持的所有cpu架构的共享库
- [20160815]vim入门命令总结