Linux教程

Linux命令的类型:如何看清一条命令的“真身”是什么?

本文主要是介绍Linux命令的类型:如何看清一条命令的“真身”是什么?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

在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

解释:

  • pwdcdecho都是bash的内置命令;
  • python3是普通的外部命令;
  • cat是hashed外部命令;
  • ls是一个别名命令,其真实命令是ls --color=auto
这篇关于Linux命令的类型:如何看清一条命令的“真身”是什么?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!