内键命令和外部命令

命令的基本格式

COMMAND  [OPTIONS…]  [ARGUMENTS…] 

      命令 (COMMAND)

      OPTIONS(选项):用于启用或关闭命令的某个或某些功能

         短选项:-c  例如:-l、 -h、 -t、 -a   等

         长选项:- -word  例如:- -all、 – -help、  – -update 等

      ARGUMENTS(参数):命令的作用对象,如文件名、用户名等

     [ ]:为可选项


命令的执行过程


  输入命令回车后,系统提请特定的shell程序找到键入命令所对应的可执行程序或代码,并由其分析后提交给内核分配资源将其运行起来


SHELL


   在Linux系统中,Shell提供了用户与内核进行交互操作的接口,它接收用户输入的命令并把它送人内核去操作,因此,shell也被称为Linux的命令解释器

   显示系统使用的shell

        echo  $SHELL

        内键命令和外部命令

   显示当前系统使用的所有shell

       cat  /etc/shells

       内键命令和外部命令

内部命令和外部命令


   在shell中可执行的命令分为内键命令和外部命令

      内键命令:集成在系统shell类型中(如bash),通过某命令形式提供,不同的shell类型所含的内键命令不同

           help   内键命令列表

           enable   查看该系统shell类型中的所有内键命令

           enable  command   启用内部命令

           enable  -n  command   禁用内部命令

           enable  -n   查看系统禁用内部命令

           例如:

           内键命令和外部命令

     外部命令:在当前系统的某文件系统路径下有对应的可执行程序文件,表现成磁盘一个一个的独立文件,以文件路径的形式存在(如:usr/sbin/ifconfig)

           例如:

           内键命令和外部命令

    查看指定的命令是内键命令还是外部命令

          type  COMMAND

          type  -a  COMMAND  查看命令的全部类型

          type  -P  COMMAND  查看外部命令的文件路径

          例如:

          内键命令和外部命令


内键命令和外部命令的优先级

     内键命令:集成在系统shell类型中(如bash),系统开机就在内存中了,内键命令的执行直接系统调用

     外部命令:系统文件系统路径下对应的可执行程序文件,外部命令的执行依靠于系统$PATH变量下的文件路径,其中外部命令的文件路径存放在其中,    对应的外部文件却没有存放在其中,在不知道具体文件路径的情况下,系统严格按照$PATH变量下的文件路径一级一级进行寻找,找寻不到就无法执行,    除非告知具体文件路径才可执行

     echo  $PATH

     内键命令和外部命令

     当外部命令执行过一次后,外部命令相对应的文件路径就缓存到内存里了,重启之后就不在了

     内键命令和外部命令

     当把缓存到内存里的外部命令删除后,外部命令就无法执行了,所以缓存进内存里的不是外部命令的文件而是外部命令的文件路径

     综上所述,内键命令的优先于外部命令


原创文章,作者:huliyuqiangwei,如若转载,请注明出处:http://www.178linux.com/76577

(0)
huliyuqiangweihuliyuqiangwei
上一篇 2017-05-22 22:03
下一篇 2017-05-23 10:14

相关推荐

  • 初识LINUX

    初识LINUX 一、计算机的组成 二、Linux的发行版本 发行版:数百种之多,主要分为: Debian分支:ubuntu、mint、knopix Slackware分支:S.u.S.E–>SLES、OpenSUSE RedHat分支: Redhat–>Centos   Fedora Core Gent…

    Linux干货 2016-09-17
  • N21_第6周_vim

    N21_第6周_vim 请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; 2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符; 3、删除/tmp/…

    Linux干货 2016-08-15
  • iptables实验3 关于内网外网的地址转换及端口转换

    地址属于内核,而不属于网卡!!!!     网络防火墙的实现(主要是forward链) 172.16.100.68(A)和172.16.100.67(B) 192.168.12.10(B)和192.168.12.77(C)(VNET2) B作为C的网关   配置B主机的网卡一个为192.168.1.72,另一个为172.16.2…

    Linux干货 2016-10-30
  • 修复引导启动

    修复MBR 备份MBR: dd if=/dev/sda of=/root/mbr.bak  bs=1  count=512  破坏 dd if=/dev/zero of=/dev/sda  bs=1 count=446 这里只要小于等于446即可。 借助安装光盘修复 装入光盘,在光盘引导界面选择 然后全部默认进入救援命令界面 切换根目录 使用grub-ins…

    2017-12-24
  • Linux – 计算机基础知识体系

    一、认识计算机的组成      计算机组成(computer composition)指的是系统结构的逻辑实现,包括机器机内的数据流和控制流的组成及逻辑设计等。 计算机一般是由硬件系统和软件系统这两部分组成,硬件系统包括:CPU、内存、硬盘、输入和输出设备(键盘鼠标、显示器等),软件系统包括:系统软件自身、用…

    Linux干货 2017-02-19
  • 处理文本的工具sed,vim 编辑器的使用 Linux版

    处理文本的工具sed Stream EDitor 行编辑器 sed一次处理一行的内容,处理时,将当前处理的行存储在临时缓冲区,称为“模式空间”,接着用sed命令处理缓冲区中的内容,处理完成后,将缓冲区的内容送往屏幕,接着处理下一行不断重复,直到末尾。            一次处理一行 文件&#82…

    Linux干货 2016-08-11