R1-005 Shell外部命令的执行过程是什么样的
2023-04-10 14:25:00
R1
R1-005 Shell外部命令的执行过程是什么样的
当我们在终端中输入一个命令时,Shell会首先检查命令是否为内部命令,如果是,则直接执行该命令;如果不是,则会检查该命令是否为外部命令,如果是,则会调用相应的外部命令执行程序来执行该命令;如果命令既不是内部命令也不是外部命令,则会提示“命令 not found”错误信息。
那么,到底是什么样的命令会被认为是内部命令,什么样的命令会被认为是外部命令呢?
一般来说,Shell内部命令是由C语言编写的,外部命令是由其他语言编写的,比如Perl、Python等。
当我们输入一个命令时,Shell首先会检查该命令是否为内部命令,如果是,则直接执行该命令;如果不是,则会检查该命令是否为外部命令,如果是,则会调用相应的外部命令执行程序来执行该命令;如果命令既不是内部命令也不是外部命令,则会提示“命令 not found”错误信息。
那么,到底是什么样的命令会被认为是内部命令,什么样的命令会被认为是外部命令呢?
一般来说,Shell内部命令是由C语言编写的,外部命令是由其他语言编写的,比如Perl、Python等。
举个例子来说明一下,比如我们输入命令行“ls”来列出当前目录下的文件和目录,这里的“ls”就是一个内部命令,当我们输入该命令时,Shell会直接执行它。
而对于一个外部命令来说,比如我们要使用Python来编写一个简单的脚本,我们可以这样写:
#!/usr/bin/python
print "Hello, world!"
然后保存为一个文件,比如叫做“hello.py”,然后我们可以在命令行中输入“hello.py”来执行该脚本,这里的“hello.py”就是一个外部命令。
当我们输入“hello.py”命令时,Shell会首先检查该命令是否为内部命令,如果不是,则会检查该命令是否为外部命令,如果是,则会调用相应的外部命令执行程序来执行该命令;在这里,由于“hello.py”是一个外部命令,因此Shell会调用Python解释器来执行该命令。
总结一下,Shell外部命令的执行过程就是这样的:首先检查命令是否为内部命令,如果不是,则检查命令是否为外部命令,如果是,则调用相应的外部命令执行程序来执行该命令。
相关文章