美文网首页
linux 内部命令和外部命令

linux 内部命令和外部命令

作者: 黑曼巴yk | 来源:发表于2019-10-17 15:04 被阅读0次

前言

Linux中的命令大致分为两类:内部命令和外部命令
内部命令也称shell内嵌命令,外部命令存放在一个文件中,需要时候在文件中查找,这些文件定义在$PATH
首先linux所有的都是文件,我们在操作系统加载的时候会加载shell表现为/bin/bash文件

[root@iZbp1ge7stkcnj5044oa81Z ~]# ll /bin/bash
-rwxr-xr-x. 1 root root 964608 Oct 31  2018 /bin/bash

内部命令

  • 内部命令可以通过enable命令来查看。
enable .
enable :
enable [
enable alias
enable bg
enable bind
enable break
enable builtin
enable caller
enable cd
// ...
  • 为什么需要内部命令
    shell本身开机就会运行,因此内部命令执行速度非常快。不需要临时去磁盘加载命令。

  • 判断内部命令

// 内部命令
[root@iZbp1ge7stkcnj5044oa81Z ~]# type type
type is a shell builtin
// 外部命令
[root@iZbp1ge7stkcnj5044oa81Z ~]# type who
who is /usr/bin/who

外部命令

外部命令表现为一个磁盘文件

  1. 查看外部命令的磁盘路径
  • 使用which命令查看
[root@iZbp1ge7stkcnj5044oa81Z ~]# which pwd
/usr/bin/pwd
  • 使用whereis命令查看
    whereis 不仅能查看文件路径,还能查看帮助文档的路径等
[root@iZbp1ge7stkcnj5044oa81Z ~]# whereis pwd
pwd: /usr/bin/pwd /usr/include/pwd.h /usr/share/man/man1/pwd.1.gz

命令执行过程

首先判断是否是内部命令 type pwd。如果是外部命令则通过$PATH来查找。我们看先$PATH 里面的值是多少?

[root@iZbp1ge7stkcnj5044oa81Z ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

我们只要执行过的命令都通过hash存在内存中。

[root@iZbp1ge7stkcnj5044oa81Z ~]# whereis pwd
pwd: /usr/bin/pwd /usr/include/pwd.h /usr/share/man/man1/pwd.1.gz
[root@iZbp1ge7stkcnj5044oa81Z ~]# type whereis
whereis is hashed (/usr/bin/whereis)

这里我们执行过whereis命令。下次执行时候显示whereis is hashed,说明是从内存中直接读取。我们通过hash命令可以查看缓存的路径

[root@iZbp1ge7stkcnj5044oa81Z ~]# hash
hash: hash table empty
[root@iZbp1ge7stkcnj5044oa81Z ~]# whereis pwd
pwd: /usr/bin/pwd /usr/include/pwd.h /usr/share/man/man1/pwd.1.gz
[root@iZbp1ge7stkcnj5044oa81Z ~]# hash
hits    command
   1    /usr/bin/whereis

相关文章

  • Linux命令笔记一:Linux命令(一)

    一、Linux目录树 二、Linux命令 Linux分为内部命令和外部命令 内部命令用help去查看,外部命令可以...

  • linux 命令帮助的获取

    一 Linux的外部命令与内部命令 外部命令 内部命令 内外部命令的区分 $ type cdcd is a she...

  • Linux如何获取帮助

    查看是内部命令还是外部命令? type COMMAND 在Linux系统中,内部命令和外部命令查看帮助文档时是有...

  • linux 内部命令和外部命令

    前言 Linux中的命令大致分为两类:内部命令和外部命令内部命令也称shell内嵌命令,外部命令存放在一个文件中,...

  • Linux相关使用介绍

    一、Linux内外部命令的判断方式以及命令的执行流程 1、Linux命令 Linux命令分为内部命令(shell自...

  • linux下的帮助命令

    一、获得命令帮助 1.1、内部命令与外部命令 简单来说,在linux系统中有存储位置的命令为外部命令; 没有存储位...

  • shell 命令

    Linux shell执行命令有三种: 内建命令, shell函数和外部命令 内部命令: shell程序本身包含的...

  • 如何在linux系统上获取命令的帮助信息 并描述man文档的章节

    命令可分内部命令和外部命令 内部命令帮助可用:# help COMMAND 外部命令帮助可用: (1) #COMM...

  • Linux 入门与帮助

    一、命令别名 1. 命令别名、内部命令、外部命令 (1) 优先级 命令别名 > 内部命令 > 外部命令 二、日期和...

  • 9、常用命令使用

    linux命令类型一般分为两种:内置命令和外部命令 1. 内置命令:在shell中内部建立的命令...

网友评论

      本文标题:linux 内部命令和外部命令

      本文链接:https://www.haomeiwen.com/subject/fwisuctx.html