linux系统中命令一般分为内部命令和

不及物动词 其他 37

回复

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

    外部命令两种类型。

    内部命令是指直接嵌入在shell中的命令,由shell本身来执行,不需要调用外部程序。内部命令比如cd、echo、exit等,它们在执行过程中不需要创建新的进程,具有较高的执行效率。

    外部命令是指独立的可执行文件,需要通过路径来调用,并且需要创建新的进程来执行。外部命令比如ls、grep、cat等,它们通常是由C/C++等语言编写的可执行文件,通过系统调用来与内核进行交互。

    为了方便使用外部命令,Linux提供了一个环境变量PATH来存储可执行文件的路径。当我们输入一个命令时,系统会在PATH变量指定的路径中查找对应的可执行文件,并执行它。如果找不到对应的可执行文件,系统会提示“command not found”。

    在使用命令时,我们可以通过which命令来查看一个命令是否是内部命令或外部命令。如果which命令返回结果为路径,则说明该命令是外部命令;如果which命令返回结果为内部命令,则说明该命令是内部命令。

    总结一下,通过查看which命令的结果,我们可以判断一个命令是属于内部命令还是外部命令。对于内部命令,系统会直接执行,不需要创建新的进程;对于外部命令,系统会通过路径来调用对应的可执行文件,并创建新的进程来执行。使用内部命令可以提高执行效率,而使用外部命令可以获得更丰富的功能和灵活性。

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

    外部命令两种。内部命令是由Shell提供的,其代码被编译进Shell程序中,可以直接在Shell中运行。而外部命令是由独立的可执行文件提供的,可以通过Shell调用执行。

    1. 内部命令的执行速度更快。由于内部命令的代码被编译进Shell程序中,所以它们的执行速度会更快。而外部命令需要通过系统调用来执行,会有额外的开销。

    2. 内部命令可以直接访问Shell的内部数据结构。由于内部命令是由Shell提供的,它们可以直接访问Shell维护的内部数据结构,如环境变量、别名等。而外部命令无法直接访问这些数据结构,需要通过Shell提供的接口来间接地访问。

    3. 内部命令不需要独立的可执行文件。由于内部命令的代码被编译进Shell程序中,所以它们不需要独立的可执行文件。这使得内部命令的安装和更新更加方便,只需要更新Shell程序即可。

    4. 外部命令通常具有更强的灵活性。外部命令通常是由独立的可执行文件提供的,这使得它们可以独立于Shell存在,可以在不同的Shell中使用。外部命令还可以通过环境变量来配置其行为,如PATH变量可以指定外部命令的搜索路径。

    5. 内部命令和外部命令的功能可能存在差异。由于内部命令和外部命令是由不同的实现提供的,所以它们的功能可能存在差异。有些功能可能只有内部命令支持,有些功能可能只有外部命令支持。所以在使用命令时需要根据具体需求选择合适的命令。

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

    外部命令。内部命令是由shell自带的命令,位于shell的内部,不需要通过外部程序来执行。而外部命令则是由独立的可执行文件组成的命令,需要通过系统的PATH环境变量来查找和执行。

    内部命令
    内部命令是指由shell自带的命令,位于shell的内部,不需要通过外部程序来执行。内部命令会直接调用shell的内部函数来执行,因此其执行速度较快。

    常见的内部命令有:
    1. cd:用于切换当前工作目录。
    2. echo:用于输出指定的字符串。
    3. pwd:用于显示当前工作目录的路径。
    4. history:用于显示历史命令。
    5. alias:用于创建命令别名。

    外部命令
    外部命令是由独立的可执行文件组成的命令,需要通过系统的PATH环境变量来查找和执行。外部命令可能已经安装在系统的某个路径下,也可能是用户自行安装的。

    常见的外部命令有:
    1. ls:用于列出目录的内容。
    2. cp:用于复制文件或目录。
    3. mv:用于移动或重命名文件或目录。
    4. rm:用于删除文件或目录。
    5. grep:用于在文件中查找匹配的文本。

    外部命令执行流程
    当在shell中执行一个外部命令时,系统会按照以下步骤进行处理:

    1. 系统会首先检查命令是否为内部命令,如果是内部命令,则直接由shell执行内部函数。
    2. 如果命令不是内部命令,则系统会通过PATH环境变量查找命令的可执行文件。
    3. 它会依次在PATH环境变量中的目录中查找命令的可执行文件,一旦找到就会执行。
    4. 如果在所有的目录中都没有找到命令的可执行文件,则会提示“command not found”。

    总结
    在Linux系统中,命令分为内部命令和外部命令。内部命令是由shell自带的命令,位于shell的内部,不需要通过外部程序来执行。外部命令是由独立的可执行文件组成的命令,需要通过系统的PATH环境变量来查找和执行。

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

400-800-1024

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

分享本页
返回顶部