内部命令VS外部命令
来源:互联网 发布:led屏编辑软件 编辑:程序博客网 时间:2024/06/07 23:46
http://blog.chinaunix.net/uid-25679817-id-3158845.html
Linux/Unix命令通常被分为两类:
内部命令:cd、source、fg
外部命令:ls、cat
我们来看看它们的区别。
内部命令:内部命令被构建在shell之中。当执行shell命令时,内部命令的执行速度非常快。这是因为没有其他的进程因为执行这条命令而被创建。比如说,当我们执行“cd”命令时,没有进程被创建。在执行过程中只是简单的改变当前的目录。
外部命令:外部命令并没有被构建在shell中。这些可执行的外部命令保存在一个独立的文件当中。当一个外部命令被执行时,一个新的进程即被创建同时命令被执行。比如说,当我们执行“cat”(通常被保存在/usr/bin目录下)命令时,然后/usr/bin/cat被执行。
如何得到内部命令列表?
如果你使用的是bash shell,你可以通过“help”命令得到所有内部命令列表
- $ help
- alias [-p] [name[=value] ... ] bg [job_spec ...]
- bind [-lpvsPVS] [-m keymap] [-f fi break [n]
- builtin [shell-builtin [arg ...]] caller [EXPR]
- case WORD in [PATTERN [| PATTERN]. cd [-L|-P] [dir]
- command [-pVv] command [arg ...] compgen [-abcdefgjksuv] [-o option
- .....
如何知道一个命令是内部命令还是外部命令?
你可以使用type命令:
- $ type cd
- cd is a shell builtin
- $ type cat
- cat is /bin/cat
如果命令为内部命令,则type命令会明确的指出该命令是shell内嵌的。如果命令时外部命令,type则会给出该命令的执行路径。
内部VS外部?
我们该使用外部命令还是内部命令或者哪一种命令更好?像这样的问题是没有任何意义的。因为大多数情况下我们只要达成我们的目标,而不必在意使用的是内部命令还是外部命令。
内部命令和外部命令最大的区别之处就是性能。内部命令由于构建在shell中而不必创建多余的进程,要比外部命令执行快得多。因此和执行更大的脚本道理一样,执行包含很多外部命令的脚本会损害脚本的性能。
我们并不是总要面对内部命令与外部命令的选择。但是在我们脚本联系的过程中只要我们认真的观察,我们可以发现有些地方我们可以避免使用外部命令。
比如说:将变量x与变量y求和赋予变量z。
外部命令:
- z=`expr $x+$y`
内部命令
- let z=x+y
let命令是shell的内嵌命令,然而expr则是外部命令。使用expr执行速度要慢一些。或许在一次性实例中这看起来微不足道。但是如果在执行大文件时,其区别则是显而易见的。
0 0
- 内部命令VS外部命令
- 内部命令VS外部命令
- 内部命令VS外部命令
- 内部命令与外部命令
- 内部命令和外部命令
- VS中nmake不是内部命令或外部命令,也不是可运行程序
- .不是内部或外部命令
- shall 内部命令 和 外部命令
- 3. Redhat内部命令和外部命令
- telnet不是内部命令或外部命令
- shell的内部命令和外部命令
- shell内部命令和外部命令
- Ant 不是内部命令或外部命令
- node 不是内部命令或外部命令
- SC不是内部命令或外部命令
- shell内部命令和外部命令
- SC不是内部命令或外部命令
- shell内部命令和外部命令
- NYOJ 79.拦截导弹(动态规划)
- 利用cmd(Windows)编译c\c++源程序
- 【Linux c】socket+thread【preIot project】
- Android沉浸式状态栏SystemBarTint的使用方法
- JSON与XML的优缺点比较
- 内部命令VS外部命令
- UVA 796 Critical Links 求桥 .
- android端实现http服务器,具备文件上传等功能,纯JAVA实现,无依赖包
- PHP定时执行任务 crontab
- Html特殊字符
- HTML基础篇——a标签
- 三极管三种基本放大电路
- 谈谈关于内存对齐与补齐
- 判断一个数是否是完数