在Linxu环境下执行一条命令,看似相同,实际上命令是分为不同类型:
- bash内置命令:这种命令实际上是没有对应的可执行文件的,是bash内置的命令。
- 普通外部命令: 这种命令对应一个可执行文件,文件放在一个特定目录下。
- hashed外部命令:这种命令和普通外部命令的区别是,bash对于普通外部命令,会根据环境变量PATH依次搜索命令文件所在位置,找到后加载文件到内存中执行。而hashed命令是提前将命令文件位置进行hash映射(所谓哈希表)处理,在执行命令时,直接从hash表中找到目标位置,加载文件到内存中执行,这样执行效率更高。
- aliased命令:所谓的别名命令,这种命令实际是替身,其真身是另外一个。
下面是一个例子:
~> type pwd
pwd is a shell builtin
~> type cd
cd is a shell builtin
~> type echo
echo is a shell builtin
~> type python3
python3 is /usr/bin/python3
~> type cat
cat is hashed (/usr/bin/cat)
~> type ls
ls is aliased to `ls --color=auto'
~> type tensorboard
-bash: type: tensorboard: not found
解释:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。