Linux内置命令和外部命令

xiaohai 2020-10-17 21:56:02 1589人围观 标签: Linux 
简介Linux内置命令和外部命令,什么是linux的内置命令,什么是linux的外部命令。
1、Linux的命令可以分为内部命令和外部命令:
  • 内置命令在系统启动时就调入内存,是常驻内存的,所以执行效率高。
  • 而外部命令是系统的软件功能,用户需要时才从硬盘中读入内存。
2、type - Display information about command type

查看当前系统的命令是否为内置命令和外部命令

实例:

[root@localhost ~]# type history
history is a shell builtin  #这个表示是内部命令
[root@localhost ~]# type mysql
mysql is /usr/bin/mysql #表示外部命令
3、BASH_BUILTINS(内部命令如下)
   alias, bg, bind, break, builtin, caller, cd, command, compgen, 
complete, compopt,  continue,  declare,  dirs,  disown,  echo,enable,  
eval,  exec, exit, export, false, fc, fg, getopts, hash, help,history, 
jobs, kill, let, local, logout, mapfile, popd, printf,  pushd,pwd,  
read, readonly, return, set, shift, shopt, source, suspend, test,times, 
trap, true, type, typeset, ulimit, umask, unalias, unset, wait

可以通过命令来进行查看:compgen -b

4、内置命令和外部命令的总结

在RHEL6中我们说which只能在PATH变量中搜索命令的绝对路径,内置命令是内置在bash中的,所以我们找不到命令的绝对路径,但是,在RHEL7中好像优化了这么一个特点,内置命令在PAHT环境中能找出命令的绝对路径

可以使用which和whatis来查看

[root@localhost  ~]# which history
/usr/bin/which: no history in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/apps/php/bin:/root/bin)
[root@localhost ~]# which mysql
/usr/bin/mysql

[root@localhost ~]# whatis history
history (1)          - bash built-in commands, see bash(1)
history (3)          - GNU History Library
[root@izwz9gipf37wcbyspk8o6bz ~]# whatis mysql
mysql (1)            - the MySQL command-line tool
```