linux外部命令和内部命令

不及物动词 其他 34

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    Linux中的命令分为两种类型:外部命令和内部命令。

    外部命令,也称为可执行文件命令,是独立于Shell的可执行文件。这些命令通常位于系统的/bin、/usr/bin、/sbin、/usr/sbin等目录下,它们是用C语言、C++语言或其他编程语言编写的。外部命令使用时需要通过Shell启动一个子进程来执行。

    内部命令,也称为Shell内建命令,是Shell自身提供的命令。这些命令通常是作为Shell解释器的一部分,在Shell进程的内存空间中执行。由于内部命令与Shell紧密相关,因此它们的执行速度相对较快。

    外部命令和内部命令在使用方式和功能上有一些区别。下面是它们的一些特点:

    1. 执行速度:由于内部命令是直接在Shell进程中执行的,所以执行速度比外部命令要快。这是因为启动一个子进程需要一定的时间。

    2. 语法解释:内部命令由Shell解释器负责解析执行,可以直接使用Shell提供的语法和特性。而外部命令则需要通过Shell将用户输入的命令传递给操作系统进行解析执行。

    3. 可扩展性:由于外部命令是独立的可执行文件,可以通过编写新的命令或者安装第三方软件包来扩展系统功能。而内部命令只能通过升级Shell或者使用Shell提供的扩展机制来实现功能的扩展。

    4. 环境变量:外部命令在执行时可以使用系统的环境变量,而内部命令则无法直接访问系统的环境变量。但是内部命令可以修改Shell进程的环境变量,这些变量会影响后续命令的执行。

    根据以上特点,我们可以根据实际情况选择使用外部命令或者内部命令。一般来说,如果我们需要频繁地执行某个命令,或者需要使用系统的环境变量,那么可以选择外部命令。如果我们只是需要在Shell中进行一些简单的操作,或者需要使用Shell的特性,那么可以选择内部命令。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    Linux是一个开源的操作系统,具有丰富的命令行工具。这些命令可以分为两类:外部命令和内部命令。

    1. 外部命令:
    外部命令是独立的可执行文件,可以在Linux系统中作为独立的进程运行。这些命令通常是由磁盘上的可执行文件形式存在,例如/bin、/sbin、/usr/bin、/usr/sbin这些目录下存储着大量的外部命令。外部命令的执行需要通过完整的路径名或者环境变量$PATH来指定。常见的外部命令有ls、cp、mv、rm、chmod等。

    2. 内部命令:
    内部命令是指由shell解释器提供的命令,它们在shell解释器的内存中作为内置函数或特殊命令存在。这些命令通常用来执行一些操作,而不需要创建新的进程。它们可以在shell中直接运行,而不需要指定路径。常见的内部命令有cd、echo、export、source、history等。

    区分外部命令和内部命令的一个简单方法是使用type命令。例如,我们可以使用”type cd”命令来检查cd命令是内部命令还是外部命令。如果输出是”cd is a shell builtin”,则表示cd是内部命令;如果输出是”cd is /usr/bin/cd”,则表示cd是外部命令。

    3. 执行方式:
    外部命令在执行时需要创建一个新的进程,并将程序加载到该进程的内存空间中执行。这会产生一定的系统开销。而内部命令则直接在shell解释器的进程中执行,不需要创建新的进程,因此执行速度更快。

    4. 特性:
    外部命令通常具有更复杂的功能和选项,能够执行一些底层的系统操作。而内部命令通常具有更简单的功能,用于完成一些常见的操作,如文件操作、进程管理等。

    5. 扩展性:
    由于外部命令是独立的可执行文件,可以通过编写新的程序文件来扩展系统的功能。而内部命令则需要修改shell解释器的源代码才能进行扩展。因此,外部命令比内部命令更加灵活和可扩展。

    总结来说,外部命令和内部命令在Linux系统中都起到了重要的作用。外部命令具有更复杂的功能和选项,执行速度稍慢,但可以通过编写新的程序文件进行扩展。内部命令执行速度更快,功能相对简单,但无需创建新的进程,可以直接在shell解释器中执行。对于日常的系统管理和操作任务,我们可以根据具体需求选择使用外部命令还是内部命令。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    Linux系统中的命令可以分为外部命令和内部命令两种类型。

    1. 外部命令(External Commands)
    外部命令是指独立于Shell的可执行文件,它们通常位于Linux系统的/bin、/usr/bin、/sbin、/usr/sbin等目录下。外部命令是由独立的可执行文件组成,可以通过使用绝对路径或者将这些目录添加到环境变量的PATH中来访问。

    外部命令的优点在于它们可以独立于Shell,具有较高的执行效率和灵活性。外部命令通常由C语言、C++等编程语言写成,并通过编译生成可执行文件。一些常见的外部命令包括ls、cp、mv、rm、mkdir等。

    2. 内部命令(Internal Commands)
    内部命令是包含在Shell解释器内部的命令,不需要新建一个进程执行。Shell解释器在执行这些命令时,会直接调用内部实现,从而提高了执行的效率。

    内部命令的优点在于它们与操作系统内核紧密结合,执行速度较快,并且可以直接访问Shell解释器的内部资源。一些常见的内部命令包括cd、echo、export、source等。

    3. 区分内部命令和外部命令的方法
    在Linux系统中,可以通过使用type命令来查看一个命令是内部命令还是外部命令。下面是使用type命令的示例:
    “`
    $ type ls
    ls is aliased to `ls –color=auto’
    $ type cd
    cd is a shell builtin
    $ type echo
    echo is a shell builtin
    “`
    由上述示例可以看出,ls是外部命令(即可执行文件),cd和echo是内部命令。

    4. 执行外部命令和内部命令的操作流程
    对于外部命令,用户可以直接输入命令名称,并附带相应的参数和选项。具体的执行流程如下:
    1) Shell解释器解析用户输入的命令,将命令和参数分离。
    2) Shell按照环境变量PATH的路径顺序在指定的目录中查找命令的可执行文件。
    3) Shell启动一个子进程,并将用户输入的命令及其参数传递给子进程。
    4) 子进程执行命令,并将结果返回给Shell。
    5) Shell等待子进程的执行结果,并将结果显示在终端上。

    对于内部命令,用户输入命令时,Shell解释器直接调用内部命令的实现。具体的执行流程如下:
    1) Shell解释器解析用户输入的命令,将命令和参数分离。
    2) Shell通过查找内部命令列表,确定命令是内部命令。
    3) Shell调用相应的内部命令实现执行命令,并将结果显示在终端上。

    总结:
    外部命令和内部命令是Linux系统中常见的两种命令类型。外部命令是独立于Shell的可执行文件,内部命令是包含在Shell解释器内部的命令。对于外部命令,Shell会启动一个子进程执行命令;而对于内部命令,Shell会直接调用内部命令的实现。了解这两种命令类型的区别和执行流程,有助于我们更好地理解和使用Linux系统中提供的各种命令工具。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部